Building the host

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 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-safety.a kernel module, which requires adding a [module=qvm-safety] 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-safety] LD_LIBRARY_PATH=/usr/lib:/lib:/lib/dll procnto-smp-instr
      DANGER

      When using the QHS, you must specify that you want the safety variant of the kernel module, by adding [module=qvm-safety] instead of [module=qvm].

      The same requirement of using the -safety variant applies when adding vdevs and the SMMUMAN service.

      For more information, see 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-safety = qvm-safety
      /bin/qvm-check = qvm-check
    • The vdev-*.so file for every vdev you want to make available for your guests. For example:

      vdev-8259-safety.so
      vdev-hpet-safety.so
      vdev-ioapic-safety.so
      ...
      vdev-virtio-console-safety.so
      vdev-virtio-input-safety.so
      vdev-virtio-net-safety.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-safety = smmuman-safety
      /bin/smmu-rcar3-safety.so = smmu-rcar3-safety.so
      /etc/smmuman/rcar-h3-safety.smmu = ./smmuman-config/rcar-h3-safety.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.