Building the host

Updated: October 28, 2024

After you have downloaded the hypervisor package and configured your build environment, all of the components needed to build the hypervisor host should be on your development host system at $QNX_TARGET.

Configuring the BSP buildfile and building the image

  1. If you need a BSP other than the ones provided in the hypervisor package, download the BSP to your work area on your development host (see Downloading a board-specific host BSP in this chapter).
  2. As needed, modify your BSP buildfile to include the files you need. These include:
    • The libmod_qvm.a kernel module, which requires adding a [module=qvm] prefix to the buildfile line that includes procnto*. For example, change:

      LD_LIBRARY_PATH=/usr/lib:/lib:/lib/dll procnto-smp-instr
      to:
      [module=qvm] LD_LIBRARY_PATH=/usr/lib:/lib:/lib/dll procnto-smp-instr
      DANGER
      You can use the non-safety variant of the kernel module in systems that don't need to be safety-certified. But if you're building a safety-related system, you must load the safety variant of the kernel module by adding [module=qvm-safety] instead of [module=qvm]. In this case, you shouldn't read this guide but instead read the QNX Hypervisor for Safety 2.2 User's Guide and the QNX Hypervisor for Safety 2.2 Safety Manual.
    • The hypervisor files: qvm and, optionally for x86, the qvm-check utility. For example:
      /sbin/qvm = qvm
      /bin/qvm-check = qvm-check
    • The vdev-*.so file for every vdev you want to make available for your guests. For example:
      vdev-8259.so
      vdev-hpet.so
      vdev-ioapic.so
      ...
      vdev-virtio-console.so
      vdev-virtio-input.so
      vdev-virtio-net.so
    • The smmuman service, architecture, and board support libraries, and configuration files. For example, for a QNX hypervisor system on a supported Renesas R-Car H3 board:
      /bin/smmuman = smmuman
      /bin/smmu-rcar3.so = smmu-rcar3.so
      /etc/smmuman/rcar-h3.smmu = ./smmuman-config/rcar-h3.smmu
  3. If you will use the shmem-host shared memory sample application for testing, download the HHBSP (see The HHBSP framework), and copy the file from the HHBSP's prebuilt/ directory to your BSP's prebuilt/ directory.
  4. Include the VM configuration files (*.qvmconf) for the VMs you will run in your hypervisor system.
  5. From your BSP's root directory, run make to build the host IFS.

If the host build succeeds, you can now build the guests (i.e., IFSs for QNX guests, and kernels, initrd files, disks, etc. for Linux guests) and assemble the host and the guests into an image that you can transfer to your target.