Getting started with QEMU

This section describes how to build, launch, and navigate within QEMU. If you want to run the image with the default resolution (720p) and no Vulkan support, you can skip ahead to the "Launching QEMU" section. However, it's recommended to upgrade to QEMU version 10. Refer to "QEMU version and recommended options" below.

Upgrade to QEMU 10

The following steps describe how to upgrade to QEMU 10:

  1. Install dependencies needed for building QEMU:

    • Ubuntu 22.04:
      sudo apt install bison flex libepoxy-dev meson ninja-build pkg-config python3-pip python3-venv python3-tomli sphinx
      sudo apt install libcairo2-dev libgif-dev libglib2.0-dev libjpeg8-dev libpango1.0-dev libpixman-1-dev libsdl2-dev libvirglrenderer-dev
    • Ubuntu 24.04:
      sudo apt install bison flex libepoxy-dev meson ninja-build pkg-config python3-full python3-pip sphinx
      sudo apt install libcairo2-dev libgif-dev libglib2.0-dev libjpeg8-dev libpango1.0-dev libpixman-1-dev libsdl2-dev libvirglrenderer-dev
  2. Install the Vulkan SDK:

    • Ubuntu 22.04:
      wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
      sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list http://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list
      sudo apt update
      sudo apt install vulkan-sdk
    • Ubuntu 24.04:
      wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
      sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-noble.list http://packages.lunarg.com/vulkan/lunarg-vulkan-noble.list
      sudo apt update
      sudo apt install vulkan-sdk vulkan-tools
  3. Build an up-to-date libvirglrenderer:

    • Ubuntu 22.04:
      git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git
      cd virglrenderer
      git checkout virglrenderer-1.1.1
      meson setup -Dvenus=true build/
      sudo meson install -C build
    • Ubuntu 24.04:
      sudo apt remove libvirglrenderer1
      git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git
      cd virglrenderer
      git checkout virglrenderer-1.1.1
      meson setup -Dvenus=true build/ --prefix=/usr
      sudo meson install -C build
  4. Ensure the latest mesa packages are installed:

    sudo add-apt-repository ppa:kisak/kisak-mesa
    sudo apt update
    sudo apt upgrade
    sudo apt install libsdl2-2.0-0 libsndio7.0 libgl1-mesa-dri libgl1
    sudo ldconfig
  5. Build QEMU 10 from source (installs under /usr/local by default):

    wget https://download.qemu.org/qemu-10.1.2.tar.xz
    tar xvJf qemu-10.1.2.tar.xz
    cd qemu-10.1.2
    ./configure --enable-kvm --enable-opengl --enable-sdl --enable-virglrenderer
    make
    sudo make install
  6. Add a link under /usr/local for the bridge.conf file. If /etc/qemu/bridge.conf:

    1. Exists, link to it with the following command:

      sudo mkdir -p /usr/local/etc/qemu
      sudo ln -s /etc/qemu/bridge.conf /usr/local/etc/qemu/bridge.conf
    2. Doesn't exist, create the file and link to it with the following command:

      sudo mkdir -p /usr/local/etc/qemu
      sudo mkdir -p /etc/qemu
      sudo sh -c 'echo "allow virbr0" >>> /etc/qemu/bridebridge.conf' 
      sudo ln -s /etc/qemu/bridge.conf /usr/local/etc/qemu/bridge.conf

Launching QEMU

  1. Source your QNX SDP. Navigate to your SDP installation (typically ~/qnx800) in a terminal and enter:

    source qnxsdp-env.sh
  2. Navigate to the qemu folder that you built in the previous "Get the image" section.

  3. Run the following command to start the VM with the default CPUs (8), default RAM (4GB), default resolution (720p), and no Vulkan support:

    mkqnximage --run
    Note:

    Some projects may require more RAM to build successfully.

    The welcome screen (demolauncher) appears:



    The QNX sample applications available from the welcome screen include:

    Feature:Icon:
    Terminal
    GTK+4 Demo
    QNX Developer Desktop
    GLES gears Demo
    GLES maze Demo
    README
Page updated: