Using Hybrid Mode on the NUC¶
ACRN hypervisor supports a hybrid scenario where the User VM (such as Zephyr or Clear Linux) runs in a pre-launched VM or in a post-launched VM that is launched by a Device model in the Service VM. The following guidelines describe how to set up the ACRN hypervisor hybrid scenario on the Intel NUC, as shown in Figure 45.
Prerequisites¶
- Use the Intel NUC Kit NUC7i7DNHE.
- Connect to the serial port as described in Connecting to the serial port.
- Install GRUB on your SATA device or on the NVME disk of your NUC.
Update Ubuntu GRUB¶
Perform the following to update Ubuntu GRUB so it can boot the hypervisor and load the kernel image:
Append the following configuration in the
/etc/grub.d/40_custom
file:menuentry 'ACRN hypervisor Hybird Scenario' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e23c76ae-b06d-4a6e-ad42-46b8eedfd7d3' { recordfail load_video gfxmode $linux_gfx_mode insmod gzio insmod part_gpt insmod ext2 echo 'Loading hypervisor Hybrid scenario ...' multiboot --quirk-modules-after-kernel /boot/acrn.32.out module /boot/zephyr.bin xxxxxx module /boot/bzImage yyyyyy }
Note
The module
/boot/zephyr.bin
is the VM0 (Zephyr) kernel file. The paramxxxxxx
is VM0’s kernel file tag and must exactly match thekernel_mod_tag
of VM0 which is configured in thehypervisor/scenarios/hybrid/vm_configurations.c
file. The multiboot module/boot/bzImage
is the Service VM kernel file. The paramyyyyyy
is the bzImage tag and must exactly match thekernel_mod_tag
of VM1 in thehypervisor/scenarios/hybrid/vm_configurations.c
file. The kernel command line arguments used to boot the Service VM are located in the header filehypervisor/scenarios/hybrid/vm_configurations.h
and are configured by the SOS_VM_BOOTARGS macro.Modify the
/etc/default/grub
file as follows to make the GRUB menu visible when booting:# GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=false
Update GRUB:
$ sudo update-grub
Reboot the NUC. Select the ACRN hypervisor Hybrid Scenario entry to boot the ACRN hypervisor on the NUC’s display. The GRUB loader will boot the hypervisor, and the hypervisor will start the VMs automatically.
Hybrid Scenario Startup Checking¶
- Use these steps to verify that the hypervisor is properly running:
- Log in to the ACRN hypervisor shell from the serial console.
- Use the vm_list command to verify that the pre-launched VM and Service VM are launched successfully.
- Use these steps to verify all VMs are running properly:
- Use the
vm_console 0
to switch to VM0 (Zephyr) console. It will display Hello world! acrn. - Enter Ctrl+Spacebar to return to the ACRN hypervisor shell.
- Use the
vm_console 1
command to switch to the VM1 (Service VM) console. - Verify that the VM1’s Service VM can boot up and you can log in.
- ssh to VM1 and launch the post-launched VM2 using the ACRN device model launch script.
- Go to the Service VM console, and enter Ctrl+Spacebar to return to the ACRN hypervisor shell.
- Use the
vm_console 2
command to switch to the VM2 (User VM) console. - Verify that VM2 can boot up and you can log in.
- Use the
Refer to the ACRN Shell Commands for more information about available commands.