Building QNX guests

Just like QNX systems built to run directly on hardware, a QNX system built to run as a guest in a QNX Hypervisor environment uses a BSP, which supplies the architecture-specific components.

The qvm configuration sets up the VM in which a guest will run. In most cases, building a QNX guest requires only building a bootable image, as you would for a non-virtualized environment.

Note:

When building QNX guests:

  • Remember that the VM in which a guest will run must match the guest's expectations: architecture, board-specifics, memory and CPUs, devices, etc. (see Assembling and configuring VMs in the Configuration chapter).
  • Be sure to use the architecture-specific guest BSP for your guest's OS version (6.6 or 7.0) and your board's architecture, not the board-specific board BSP.
  • If you add pass-through devices to your guest and these devices require drivers from the board-specific BSP, copy these drivers into the appropriate locations in the guest BSP's prebuilt/ directory.

Download QNX guest BSPs

Architecture-specific QNX guest BSPs are available from the QNX Software Center, as shown in the figure below.

Figure 1. Architecture-specific guest BSPs in the QNX Software Center.

Building a QNX Neutrino OS 7.0 guest

To build a QNX Neutrino OS 7.0 guest, assuming that since you are working with the QNX Hypervisor 2.0 you already have QNX SDP 7.0 on your system:

  1. Set up your environment variables so that you can build QNX SDP 7.0 in your guest BSP's root directory. This should be the location referenced by the QNX7_GUEST_BSP_LOCATION variable. The default is images/guest_bsps/qnx700/.
  2. If you haven't already done so, from the QNX Software Center, download the “QNX Neutrino Hypervisor Guest (SDP 7.0) for generic virtual machines” BSP for an x86 or ARM guest.
  3. Unzip and place the QNX guest BSP in the location referenced by QNX7_GUEST_BSP_LOCATION. For example:

    # unzip ~/Downloads/BSP_hypervisor-guest-x86_64_br-mainline_be-700_SVN832288_JBN22.zip \
    	-d $QNX7_GUEST_BSP_LOCATION
  4. If you make changes to your guest BSP, from the guest BSP root directory, run make.

If you have no more changes to make, you can rebuild the entire hypervisor system and create a new disk image:

  1. Make sure that your environment is properly set up for QNX SDP 7.0 builds in your HHBSP's root directory.
  2. Go to the HHBSP's root directory and run make to build a new hypervisor bootable disk image with the new guest IFSs.

Building a QNX Neutrino OS 6.6 guest

To build a QNX Neutrino OS 6.6 guest you need to start by updating your 6.6 release:

  1. From the QNX download site (www.qnx.com/download/), download and install the QNX SDP 6.6.

    CAUTION:
    If you already have QNX SDP 6.6, you must get the latest updates, as they include changes required for running in a virtualized environment.
  2. Set up your environment variables so that you can build QNX SDP 6.6 in your guest BSP's root directory. This should be the location referenced by the QNX660_GUEST_BSP_LOCATION variable. The default is images/guest_bsps/qnx660/.

When you have your QNX SDP 6.6 environment ready:

  1. If you haven't already done so, from the QNX Software Center, download the “QNX Neutrino Hypervisor Guest (SDP 6.6) for generic virtual machines” BSP for an x86 or ARM guest, as needed.
  2. Unzip and place the QNX guest BSP in the location referenced by the QNX660_GUEST_BSP_LOCATION variable. For example:

    # unzip ~/Downloads/BSP_hypervisor-guest-x86_br-660_be-660_SVN832288_JBN21.zip \
    	-d $QNX660_GUEST_BSP_LOCATION
  3. If you make changes to your guest BSP, from the guest BSP root directory, run make.

If you have no more changes to make, you can rebuild the entire hypervisor system and create a new disk image:

  1. Make sure that your environment is properly set up for QNX SDP 7.0 builds in your HHBSP's root directory.
  2. Go to the HHBSP's root directory and run make to build a new hypervisor bootable disk image with the new guest IFSs.