The hypervisor host domain is configured through a buildfile, exactly like a QNX OS image.
For detailed instructions about how to use QNX buildfiles, including buildfile structure, contents, and syntax, see the OS Image Buildfiles chapter in the QNX SDP Building Embedded Systems guide.
The buildfile for a hypervisor host differs from buildfiles for standard QNX OS images as follows:
Includes instructions for including the virtualization module (libmod_qvm.a). You add this module just like you add an adaptive partitioning (APS) module. For example, a buildfile for the hypervisor host for a supported ARM platform might begin as follows:
[+compress] [image=0x40100000] [uid=0 gid=0] [virtual=aarch64le,raw] boot = { [+keeplinked] startup-rcar_h3 -P1 -W -vv [+keeplinked module=qvm module=aps] PATH=/proc/boot:/sbin:/bin:/usr/bin:/opt/bin/sbin:/usr/sbin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib procnto-smp-instr -ae -v }
Of particular interest in this example is module=qvm, which brings the virtualization module into the build.
Includes instructions to include and start the qvm, and other code that will run in the hypervisor host domain. For example, the following includes and starts a qvm process instance and assembles a VM:
qvm
Includes the paths to the qvm configuration files that the different instances of the qvm process should use when creating and assembling VMs, and indicates where to place these configuration files in the image. For example:
/vm/config/qnx7.qvmconf = guests/qnx7/qnx7.qvmconf
Includes virtual device modules (vdev-*.so) in the shared object list. For example:
vdev-8259.so vdev-ser8250.so vdev-timer8254.so vdev-mc146818.so vdev-virtio-console.so vdev-virtio-blk.so vdev-virtio-net.so vdev-shmem.so vdev-pckeyboard.so vdev-ioapic.so vdev-pci-dummy.so vdev-hpet.so vdev-pl011.so vdev-vgpu-gvtg.so vdev-progress.so