Updated: October 28, 2024 |
The hypervisor host domain is configured through a buildfile, exactly like a QNX OS image.
For details about how to write QNX buildfiles, including buildfile structure, contents, and syntax, see the OS Image Buildfiles chapter in the QNX Neutrino Building Embedded Systems guide.
The buildfile for a hypervisor host differs from buildfiles for standard QNX OS images in the following sections:
[+compress] [image=0x40100000] [uid=0 gid=0] [virtual=aarch64le,raw] boot = { [+keeplinked] startup-rcar_h3 -P1 -W -vv [+keeplinked module=qvm] 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.
qvm
/vm/config/qnx71.qvmconf = guests/qnx71/qnx71.qvmconf
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
The buildfile should include only components required by the hypervisor host.
You should remove all components that aren't required, so that they don't get included in the hypervisor host image. For example, if a device (e.g., USB) is passed through to a guest, the hypervisor host (or another guest) may not also have access to the device, so you should remove the driver from the hypervisor host buildfile (see pass in the VM Configuration Reference chapter).
If your hypervisor system will pass through PCI devices, you must include the pci_server-qvm_support.so module in your hypervisor host. For instructions, see pci-server in the QNX Neutrino Utilities Reference.