Launch Windows as the Guest VM on ACRN

This tutorial describes how to launch Windows as a Guest (WaaG) VM on the ACRN hypervisor.

ACRN Service VM Setup

Follow the steps in this Getting Started Guide for ACRN Industry Scenario with Ubuntu Service VM to set up ACRN based on Ubuntu and launch the Service VM.

Setup for Using Windows as the Guest VM

In the following steps, you’ll first create a Windows image in the Service VM, and then launch that image as a Guest VM.

Verified version

  • Windows 10 Version:
    • Microsoft Windows 10 Enterprise, 10.0.17134 Build 17134
    • Microsoft Windows 10 Enterprise LTSC Evaluation, 10.0.17763 Build 17763
  • Windows graphics driver:
    • igfx_win10_100.7212.zip

Create a Windows 10 image in the Service VM

Create a Windows 10 image to install Windows 10 onto a virtual disk.

Download Win10 ISO and drivers

  1. Download Windows 10 LTSC ISO.
    • Select ISO-LTSC and click Continue.
    • Complete the required info. Click Continue.
    • Select the language and x86 64-bit. Click Download ISO and save as windows10-LTSC-17763.iso.
  2. Download the Intel DCH Graphics Driver.
  3. Download the Oracle Windows driver.
    • Sign in. If you do not have an Oracle account, register for one.
    • Select Download Package. Key in Oracle Linux 7.6 and click Search.
    • Click DLP: Oracle Linux 7.6 to add to your Cart.
    • Click Checkout, which is located at the top-right corner.
    • Under Platforms/Language, select x86 64-bit. Click Continue.
    • Check I accept the terms in the license agreement. Click Continue.
    • From the list, right check the item labeled Oracle VirtIO Drivers Version for Microsoft Windows 1.x.x, yy MB, and then Save link as …. Currently, it is named V982789-01.zip.
    • Click Download. When the download is complete, unzip the file. You will see an ISO named winvirtio.iso.

Create a raw disk

Run these commands on the Service VM:

$ sudo apt-get install qemu-utils
$ mkdir /home/acrn/img
$ cd /home/acrn/img
$ qemu-img create -f raw win10-ltsc.img 30G

Prepare the script to create an image

  1. Copy /usr/share/acrn/samples/nuc/launch_win.sh to install_win.sh:

    $ cp /usr/share/acrn/samples/nuc/launch_win.sh /home/acrn/img/install_win.sh
    
  2. Edit the acrn-dm command line in install_win.sh as follows:

    Note

    Make sure you use GVT-g -s 2,pci-gvt -G "$2" in the acrn-dm command line. Currently, we do not support creating a windows image by GVT-d.

    • Change -s 3,virtio-blk,./win10-ltsc.img to your path to the Windows 10 image.
    • Add -s 6,xhci,1-5:1-9. You may need to change 1-5:1-9 to match the ports of the USB keyboard/mouse and flash on your platform.
    • Add -s 8,ahci,cd:./windows10-LTSC-17763.iso to point to the Win10 ISO.
    • Add -s 9,ahci,cd:./winvirtio.iso to point to your path to the winvirtio iso.

Install Windows 10 by GVT-g

Note

Make sure you have configured your monitor and display according to 3 of Boot Windows with GVT-g on ACRN.

  1. Run install_win.sh. When you see the UEFI shell, input exit.

  2. Select Boot Manager and boot from Win10 ISO.

  3. When the display reads Press any key to boot from CD or DVD on the monitor, press any key in the terminal on the Host side.

    ../_images/windows_install_1.png
    ../_images/windows_install_2.png
    ../_images/windows_install_3.png
  4. Click Load driver.

    ../_images/windows_install_4.png
  5. Click Browser and go to the drive that includes the virtio Windows drivers. Select all under vio\w10\amd64. Install the following drivers into the image:

    • Virtio-balloon
    • Virtio-net
    • Virtio-rng
    • Virtio-scsi
    • Virtio-serial
    • Virtio-block
    • Virtio-input

    Note

    Be sure to unselect Hide Drivers that aren’t compatible with this computer’s hardware near the bottom of the page.

    ../_images/windows_install_5.png
  6. Click Next.

    ../_images/windows_install_6.png
  7. Continue with the installation.

    ../_images/windows_install_7.png
  8. Verify that the system restarts.

    ../_images/windows_install_8.png
  9. Configure your system when Windows completes its restart cycle.

    ../_images/windows_install_9.png
  10. Verify that the Windows desktop displays after the Windows installation is complete.

    ../_images/windows_install_10.png
  11. Copy the Intel DCH Graphics Driver into Windows and install in safe mode. The display driver is updated to 7212.

Boot Windows on ACRN with a default configuration

  1. Modify the /usr/share/acrn/samples/nuc/launch_win.sh script to specify the Windows image that is generated above.

  2. Run launch_win.sh. The WaaG desktop displays on the HDMI monitor.

    Note

    We support GVT-g and GVT-d while launching Windows guest. If you use GVT-g, you can set up Weston in the Service VM, and set up Weston as the desktop environment in the Service VM in order to experience Windows with the AcrnGT local display feature. If you use GVT-d, set DVMT Pre-Allocated to 64MB and set PM Support to Enabled in the BIOS. Then, only Windows displays.

ACRN Windows verified feature list

Items Details Status
IO Devices Virtio block as the boot device Working
  AHCI as the boot device Working
  AHCI CD-ROM Working
  Virtio network Working
  Virtio input - mouse Working
  Virtio input - keyboard Working
  GVT-g GOP & VNC remote display Working
GVT-g GVT-g without local display Working with 3D benchmark
  GVT-g with local display Working with 3D benchmark
GVT-d GVT-d with local display Working
Tools WinDbg Working
Test cases Install Windows 10 from scratch OK
  Windows reboot OK
  Windows shutdown OK
Built-in Apps Microsoft Edge OK
  Maps OK
  Microsoft Store OK
  3D Viewer OK

Known limitations

  • The cursor is not visible with the GVT-g local display.

Secure boot enabling

Refer to the steps in Enable Secure Boot in Windows for secure boot enabling.

Activate Windows 10

If you use a trial version of Windows 10, you might find that some apps and features do not work or that Windows 10 automatically gets shut down by the Windows licensing monitoring service. To avoid these issues, obtain a licensed version of Windows.

For Windows 10 activation steps, refer to Activate Windows 10.