Edge Microvisor Toolkit supports SR-IOV (Single Root Input/Output Virtualization), which allows it to serve as a host OS for virtualization of other operating systems, running as a guest OS in a virtual machine.
The guide provides instructions on how to perform automated script-based deployment of guest Ubuntu 22.04 and Windows 11 Enterprise operating systems, using virtual machines on Intel IoT platforms using libvirt toolkit on KVM/QEMU hypervisor/emulator.
Table of contents:
| Supported Intel IoT platform | Detailed Name |
|---|---|
| PTL-H | Panther Lake H |
| BTL | Bartlett Lake |
| TWL | Twin Lake |
| ARL | Arrow Lake |
| ASL | Amston Lake |
| MTL | Meteor Lake |
| RPL-PS | Raptor Lake PS |
| RPL-P | Raptor Lake P |
| ADL-N | Alder Lake N |
Ubuntu 22.04 LTS 2024 Engineering Release Candidate - a host operating system that is used to prepare the guest OS images.
Note: Contact your Intel representative for more details on this resource.
| OS | Details |
|---|---|
| Ubuntu 22.04 | 6.12 kernel- lts-v6.12.76-linux-260309T025316Z |
| Windows 11 | IoT Enterprise |
| Device | Ubuntu 22.04 | Windows 11 IoT Enterprise |
|---|---|---|
| Storage | Sharing | Sharing |
| iGPU * | SR-IOV | virtio-gpu, SR-IOV, GVT-d* |
| Display* | SR-IOV | SR-IOV or GVT-d* |
| Audio | emulation | emulation |
| USB inputs (mouse/keyboard) | Passthrough or emulation | Passthrough or emulation |
| LAN | Virtual NAT | Virtual NAT |
| External PCI Ethernet Adapter | Passthrough | Passthrough |
| External USB Ethernet Adapter | Passthrough | Passthrough |
| TSN i225/i226 Ethernet Adapter | Passthrough | Passthrough |
| Wi-fi | Passthrough | Passthrough |
| Bluetooth | Passthrough | Passthrough |
| SATA controller | Passthrough | Passthrough |
| USB Controller | Passthrough | Passthrough |
| Serial Controller | Passthrough** | Passthrough** |
| NPU | Passthrough | Passthrough |
| IPU | Passthrough | Passthrough |
| TPM | Passthrough | SW emulation |
Note: When a device is a passthrough to a guest VM, it can be used by that VM only and will not be available to any other VM or host.
** Not Validated in this release.
The kvm-multios repository contains
configuration and setup scripts required for preparing kernel-based virtual
machines on Intel IoT platforms. This guide uses the
v0.19.0 release tag.
For more details, refer to
the documentation.
The Ubuntu host operating system is used to prepare the guest OS images that will be used in virtual machines on Edge Microvisor Toolkit serving as hypervisor.
-
Configure BIOS settings.
To check IFWI/ BIOS Version, refer to the host operating system. Make sure the following settings are configured:
Name Menu Setting Intel Virtualization Technology (VMX) Intel Advanced Menu -> CPU Configuration -> VMX Enable Intel VT for Directed I/O (VT-d) Intel Advanced Menu -> System Agent (SA) Configuration -> VT-d Enable -
Flash the host device.
-
Download the Ubuntu 22 host image.
Note: Use the
ubuntu-22.04-desktop-amd64+intel-iot-215-custom.img.bz2base OS image provided in the host resources. -
Flash the drive.
Replace
/dev/nvme0n1with your drive:sudo bmaptool copy --nobmap ubuntu-22.04-desktop-amd64+intel-iot-215-custom.img.bz2 /dev/nvme0n1
-
Reboot into the Ubuntu 22 host.
-
-
Download and run the
installer.shscript.Note: The script is provided in the host resources.
chmod +x installer.sh sudo ./installer.sh RPL sudo reboot
Check the tag version and clone the kvm-multios repository.
cd ~
git clone -b <tag> https://github.com/intel/kvm-multios.gitMake sure the host platform meets the following requirements:
-
it has sufficiently large disk allocation for
/varduring installation of OS,Note: The default storage path for libvirt for all guest domain disk images and other usage is at
/var. -
it has a physical display monitor connected prior to the installation,
-
it is setup as per platform release BSP guide and booted accordingly,
-
it has a network connection and Internet access
-
proxy variables (http_proxy, https_proxy, no_proxy) are set appropriately in
/etc/environmentif required for the network access, -
it is updated by running
sudo apt update, -
it has a current date/ time set up,
-
a user already logged into the UI home screen prior to any operations, or a user account set to auto-login, as required for VM support with Intel GPU SR-IOV.
For more details, refer to the prerequisites.
cd kvm-multios
./host_setup/ubuntu/setup_host.sh -u GUINow that the host has been set up, you can prepare Ubuntu 22.04 and Windows 11 Enterprise operating systems for your virtual machines.
Open a terminal window in the host, and run the following command to start automated creation of the Ubuntu VM image.
./guest_setup/ubuntu/ubuntu_setup.sh --force --viewerOnce the installation has completed, the VM image will be in the shutdown state.
The ubuntu.qcow2 VM image will be located in the /var/lib/libvirt/images/
directory. The image must be copied to an appropriate host machine with
SR-IOV support.
For more details, refer to the Ubuntu VM installation guide.
-
Download Windows 11 ISO image.
Download Windows 11 24H2 Enterprise Evaluation at https://www.microsoft.com/en-us/evalcenter/evaluate-windows-11-enterprise.
-
Create a no-prompt Windows installation ISO image.
For more details, refer to the Windows VM installation guide.
Important:
- This step is required only for a fully-automated setup without any human intervention.
- This step is optional if you are able to monitor the initial boot during the installation and respond when prompted with "Press Any Key To Boot From...".
-
Download the Windows 11 OS patch 26100.7922.
-
Download the required .msu files:
-
KB5043080:
https://catalog.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/d8b7f92b-bd35-4b4c-96e5-46ce984b31e0/public/windows11.0-kb5043080-x64_953449672073f8fb99badb4cc6d5d7849b9c83e8.msu
-
KB5077241:
https://catalog.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/66b28d24-251c-4c0a-8a19-82bc599deac3/public/windows11.0-kb5077241-x64_739bca934f7f45038f9752637f632afa52c35f75.msu
-
-
Copy the .msu files to the
unattend_win11folder:cp windows11.0-kb5043080-x64_953449672073f8fb99badb4cc6d5d7849b9c83e8.msu ./guest_setup/ubuntu/unattend_win11/windows-updates_01.msu cp windows11.0-kb5077241-x64_739bca934f7f45038f9752637f632afa52c35f75.msu ./guest_setup/ubuntu/unattend_win11/windows-updates_02.msu
-
-
Prepare the iGFX driver.
-
Download the driver .zip package:
Note: Contact your Intel representative for more details on this resource.
-
Copy the package to the
unattend_win11folder:cp GFX-prod-hini-releases* ./guest_setup/ubuntu/unattend_win11/Driver-Release-64-bit.zip
-
-
Prepare the Intel Graphics SR-IOV ZeroCopy driver.
-
Download the
ZCBuild_<version>_Installer.zippackage:Note: Contact your Intel representative for more details on this resource.
-
Copy the
ZCBuild_xxxx_Installer.zipto theunattend_win11folder:
cp ZCBuild_*_Installer.zip ./guest_setup/ubuntu/unattend_win11/ZCBuild_MSFT_Signed_Installer.zip -
-
Create the guest Windows 11 VM image.
Use the sc
./guest_setup/ubuntu/win11_setup.sh -p client --force --viewer
The guest OS image will be located at:
/var/lib/libvirt/images/window11.qcow2. The image must be copied to an appropriate host machine with SR-IOV support.
Note: If you are installing with a standard ISO file, you will be prompted to "Press Any Key To Boot From..." during the initial boot. If you miss this prompt, press the ESC key until you reach the BIOS setup screen, then select “reset” to start over again.