doc: update WaaG doc

Update batch script documentation and add reference to source of
material.  Also some grammar cleanup in a few places.

Include an updated install_by_vga_gsg.tar.gz with an updated script with
copyright/licensing added.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This commit is contained in:
David B. Kinder 2019-07-18 12:03:38 -07:00 committed by David Kinder
parent a4abeaf980
commit be44e138fd
4 changed files with 92 additions and 92 deletions

View File

@ -1,45 +0,0 @@
REM VirtIO Driver Injection by Derek Seaman
REM www.derekseaman.com
REM Version 1.0
REM Place Windows boot.wim and install.wim in C:\Wim
REM Create a directory C:\Mount and leave it empty
REM Mount the VirtIO ISO to the D drive
REM Echo off
Set IDX=1
REM Modify boot.wim file to inject drivers
dism /Mount-Wim /WimFile:C:\Wim\boot.wim /Index:%IDX% /MountDir:C:\mount
dism /image:C:\mount /Add-Driver "/driver:d:\balloon\w10\amd64\balloon.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\NetKVM\w10\amd64\netkvm.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viorng\w10\amd64\viorng.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioscsi\w10\amd64\vioscsi.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioserial\w10\amd64\vioser.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viostor\w10\amd64\viostor.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioinput\w10\amd64\vioinput.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\cui_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\HdBusExt.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\iigd_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\IntcDAud.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\msdk.inf"
dism /unmount-wim /mountdir:c:\mount /commit
REM Modify install.wim to inject drivers
dism /Mount-Wim /WimFile:C:\WIM\install.wim /Index:%IDX% /MountDir:C:\mount
dism /image:C:\mount /Add-Driver "/driver:d:\balloon\w10\amd64\balloon.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\NetKVM\w10\amd64\netkvm.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viorng\w10\amd64\viorng.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioscsi\w10\amd64\vioscsi.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioserial\w10\amd64\vioser.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viostor\w10\amd64\viostor.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioinput\w10\amd64\vioinput.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\cui_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\HdBusExt.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\iigd_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\IntcDAud.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\msdk.inf"
dism /unmount-wim /mountdir:c:\mount /commit

View File

@ -1,6 +0,0 @@
set inputdir=C:\Dev\Temp\wim\windows10-17763-107-LTSC
set outputiso=C:\Dev\Temp\wim\mkisofs_iso\windows10-17763-107-LTSC-Virtio-Gfx.iso
set label="WIN10_17763_107_LTSC_VIRTIO_GFX"
set biosboot=boot/etfsboot.com
set efiboot=efi/microsoft/boot/efisys.bin
C:\Dev\Temp\wim\cdrtools-3.01.a23-bootcd.ru-mkisofs\mingw\mkisofs.exe -iso-level 4 -l -R -UDF -D -volid %label% -b %biosboot% -no-emul-boot -boot-load-size 8 -hide boot.catalog -eltorito-alt-boot -eltorito-platform efi -no-emul-boot -b %efiboot% -o %outputiso% %inputdir%

View File

@ -9,7 +9,7 @@ Hardware setup
The following Intel Kaby Lake NUCs are verified: The following Intel Kaby Lake NUCs are verified:
.. csv-table:: .. csv-table::
:header: "Platform Model", "Bios Version", "Download Link" :header: "Platform Model", "BIOS Version", "BIOS Download Link"
"NUC7i7DNHE", "DNKBLi7v.86A.0052.2018.0808.1344", "`link <https://downloadcenter.intel.com/download/28886?v=t>`__" "NUC7i7DNHE", "DNKBLi7v.86A.0052.2018.0808.1344", "`link <https://downloadcenter.intel.com/download/28886?v=t>`__"
"NUC7i5DNHE", "DNKBLi5v.86A.0060.2018.1220.1536", "`link <https://downloadcenter.intel.com/download/28885?v=t>`__" "NUC7i5DNHE", "DNKBLi5v.86A.0060.2018.1220.1536", "`link <https://downloadcenter.intel.com/download/28885?v=t>`__"
@ -131,19 +131,18 @@ Pre-install drivers and re-generate Windows ISO
#. Create a folder on the ``C:`` drive called ``Mount``, so you have a folder ``C:\Mount`` #. Create a folder on the ``C:`` drive called ``Mount``, so you have a folder ``C:\Mount``
#. Right click the downloaded ``virtio-win-0.1.141.iso`` and select ``Mount``. The ISO will be mounted to a drive; #. Right click the downloaded ``virtio-win-0.1.141.iso`` and select ``Mount``. The ISO will be mounted to a drive;
in my case, it is ``D:`` for example, drive ``D:``
#. Unzip the downloaded Windows graphics driver ``dch_win64_25.20.100.6444.exe`` to a folder, #. Use ``7-zip`` or similar utility to unzip the downloaded Windows graphics driver
in my case, it is unzipped to ``C:\Dev\Temp\wim\dch_win64_25.20.100.6444`` ``dch_win64_25.20.100.6444.exe`` to a folder,
for example, to ``C:\Dev\Temp\wim\dch_win64_25.20.100.6444``
.. note:: We use ``7-zip`` to unzip this ``dch_win64_25.20.100.6444.exe`` driver.
#. Right click the downloaded Windows ISO, for example, ``windows10-17763-107-LTSC.iso``, select ``Mount``, #. Right click the downloaded Windows ISO, for example, ``windows10-17763-107-LTSC.iso``, select ``Mount``,
the ISO will be mounted to a drive; in my case, it is ``E:`` the ISO will be mounted to a drive; for example, drive ``E:``
#. Copy ``E:\sources\boot.wim and E:\sources\install.wim`` to ``C:\WIM`` #. Copy ``E:\sources\boot.wim`` and ``E:\sources\install.wim`` to ``C:\WIM``
#. Depending on your Windows ISO image, varying amounts of images may be included in the ``WIM``. #. Depending on your Windows ISO image, more than one image may be included in the ``WIM``.
Run ``dism /get-wiminfo /wimfile:C:\WIM\install.wim`` with administrator privileges. Run ``dism /get-wiminfo /wimfile:C:\WIM\install.wim`` with administrator privileges.
Select the ``Index`` you want. For ``windows10-17763-107-LTSC.iso``, Select the ``Index`` you want. For ``windows10-17763-107-LTSC.iso``,
there is only one ``Index``; it is ``1`` there is only one ``Index``; it is ``1``
@ -151,33 +150,64 @@ Pre-install drivers and re-generate Windows ISO
.. figure:: images/install_wim_index.png .. figure:: images/install_wim_index.png
:align: center :align: center
#. Download the `Virtio-Inject.bat #. Create a batch file named ``virtio-inject-boot.bat`` [1]_ to modify
<https://raw.githubusercontent.com/projectacrn/acrn-hypervisor/master/doc/scripts/Virtio-Inject.bat>`_ ``boot.wim`` to inject drivers (using the mounted Windows ISO drive
to a folder in your Windows PC. (``D:``), image Index (``1``), and folder where the unzipped Windows
graphics drivers were placed, from the previous steps (update this
batch file as needed)::
.. note:: If ``virtio-win-0.1.141.iso`` is mounted to a different drive than ``D:``, you need to change the REM virt-inject-boot
``driver:d`` in the script according to your case. Set IDX=1
.. note:: If you unzipped the Windows graphics driver to a different folder, you must change REM Modify boot.wim file to inject drivers
``c:\Dev\Temp\wim\dch_win64_25.20.100.6444`` according to your case. dism /Mount-Wim /WimFile:C:\Wim\boot.wim /Index:%IDX% /MountDir:C:\mount
dism /image:C:\mount /Add-Driver "/driver:d:\balloon\w10\amd64\balloon.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\NetKVM\w10\amd64\netkvm.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viorng\w10\amd64\viorng.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioscsi\w10\amd64\vioscsi.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioserial\w10\amd64\vioser.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viostor\w10\amd64\viostor.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioinput\w10\amd64\vioinput.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\cui_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\HdBusExt.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\iigd_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\IntcDAud.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\msdk.inf"
dism /unmount-wim /mountdir:c:\mount /commit
#. Open a command prompt as administrator and go to the folder in which you saved the above ``Virtio-Inject.bat`` Run this ``virtio-inject-boot.bat`` script in a command prompt
and run ``Virtio-Inject.bat``. Make sure no errors occur during the script execution. running as administrator. It may take 4-5 minutes to run, depending on
your Windows system performance.
.. note:: The execution of the script will take several minutes depending on your working Windows performance. #. Similarly, create another batch file named
It will take about 8 minutes on a (KBL NUCi5 + 16G memory) Windows 10 machine. ``virtio-inject-install.bat`` [1]_ to modify ``install.wim`` to inject
drivers (and verify the ISO drive, image Index, and drivers folder)::
.. note:: You can split the script above into two parts; one injects drivers into ``boot.wim``, REM virt-inject-install
and the other injects drivers into ``install.wim``. Execute them one at a time if you return Set IDX=1
one of the following errors:
- *0xc1420113*: The user attempted to mount to a directory that already contained a mounted image. REM Modify install.wim to inject drivers
This is not supported. dism /Mount-Wim /WimFile:C:\WIM\install.wim /Index:%IDX% /MountDir:C:\mount
dism /image:C:\mount /Add-Driver "/driver:d:\balloon\w10\amd64\balloon.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\NetKVM\w10\amd64\netkvm.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viorng\w10\amd64\viorng.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioscsi\w10\amd64\vioscsi.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioserial\w10\amd64\vioser.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\viostor\w10\amd64\viostor.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:d:\vioinput\w10\amd64\vioinput.inf" /forceunsigned
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\cui_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\HdBusExt.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\iigd_dch.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\IntcDAud.inf"
dism /image:C:\mount /Add-Driver "/driver:c:\Dev\Temp\wim\dch_win64_25.20.100.6444\Graphics\msdk.inf"
dism /unmount-wim /mountdir:c:\mount /commit
- *0xc1420127*: The specified image in the specified wim is already mounted for read/write access. Run this script in a command prompt running as administrator. It may also
take 4-5 minutes to run, depending on your Windows system performance.
#. ``C:\WIM\boot.wim`` and ``C:\WIM\install.wim`` will be updated after you have executed ``Virtio-Inject.bat``
successfully. The following drivers have been pre-installed into the image: #. After running these two scripts the files ``C:\WIM\boot.wim`` and ``C:\WIM\install.wim``
will be updated to install these drivers into the image:
- Virtio-balloon - Virtio-balloon
- Virtio-net - Virtio-net
@ -188,7 +218,7 @@ Pre-install drivers and re-generate Windows ISO
- Virtio-input - Virtio-input
- Windows graphics drivers - Windows graphics drivers
#. Use 7-zip to unzip the downloaded Windows ISO to a folder; in my case, it is unzipped to #. Use 7-zip to unzip the downloaded Windows ISO to a folder; for example, into
``C:\Dev\Temp\wim\windows10-17763-107-LTSC`` ``C:\Dev\Temp\wim\windows10-17763-107-LTSC``
#. Delete ``C:\Dev\Temp\wim\windows10-17763-107-LTSC\sources\boot.wim`` and #. Delete ``C:\Dev\Temp\wim\windows10-17763-107-LTSC\sources\boot.wim`` and
@ -197,17 +227,28 @@ Pre-install drivers and re-generate Windows ISO
#. Copy ``C:\WIM\boot.wim`` and ``C:\WIM\install.wim`` to ``C:\Dev\Temp\wim\windows10-17763-107-LTSC\sources`` #. Copy ``C:\WIM\boot.wim`` and ``C:\WIM\install.wim`` to ``C:\Dev\Temp\wim\windows10-17763-107-LTSC\sources``
#. Download and unzip `cdrtools-3.01.a23-bootcd.ru-mkisofs.7z #. Download and unzip `cdrtools-3.01.a23-bootcd.ru-mkisofs.7z
<http://reboot.pro/index.php?app=core&module=attach&section=attach&attach_id=15214>`_ to a folder; in my case, <http://reboot.pro/index.php?app=core&module=attach&section=attach&attach_id=15214>`_ to a folder;
it is unzipped to ``C:\Dev\Temp\wim\cdrtools-3.01.a23-bootcd.ru-mkisofs`` for example, to ``C:\Dev\Temp\wim\cdrtools-3.01.a23-bootcd.ru-mkisofs``
#. Download the `mkisofs_both_legacy_and_uefi.bat #. Create a batch file named ``mkisofs_both_legacy_and_uefi.bat``
<https://raw.githubusercontent.com/projectacrn/acrn-hypervisor/master/doc/scripts/mkisofs_both_legacy_and_uefi.bat>`_ containing (update folder names as needed to reflect where the
to a folder in your Windows PC. referenced files are located on your system, and ``inputdir``,
``outputiso`` and ``mkisofs.exe`` path, downloaded by the previous
step)::
.. note:: Change these parameters to your case: ``inputdir``, ``outputiso``, set inputdir=C:\Dev\Temp\wim\windows10-17763-107-LTSC
``mkisofs.exe path`` set outputiso=C:\Dev\Temp\wim\mkisofs_iso\windows10-17763-107-LTSC-Virtio-Gfx.iso
set label="WIN10_17763_107_LTSC_VIRTIO_GFX"
set biosboot=boot/etfsboot.com
set efiboot=efi/microsoft/boot/efisys.bin
C:\Dev\Temp\wim\cdrtools-3.01.a23-bootcd.ru-mkisofs\mingw\mkisofs.exe \
-iso-level 4 -l -R -UDF -D -volid %label% -b %biosboot% -no-emul-boot \
-boot-load-size 8 -hide boot.catalog -eltorito-alt-boot \
-eltorito-platform efi -no-emul-boot -b %efiboot% -o %outputiso% \
%inputdir%
#. The ISO will be generated in ``outputiso`` to the location you specified in the script above. Run this ``mkisofs_both_legacy_and_uefi.bat`` script. The resulting
ISO will be generated in ``outputiso`` location you specified.
Create Raw Disk Create Raw Disk
--------------- ---------------
@ -220,9 +261,11 @@ Run these commands on the Service OS::
Install Windows 10 Install Windows 10
------------------ ------------------
Currently, the ACRNGT OVMF GOP driver is not ready; thus, a special VGA version is used to install Windows 10 Currently, the ACRNGT OVMF GOP driver is not ready; thus, a special VGA
on ACRN from scratch. The ``acrn.elf``, ``acrn-dm`` and ``OVMF`` binaries are included in the version is used to install Windows 10 on ACRN from scratch. The
`tarball <https://raw.githubusercontent.com/projectacrn/acrn-hypervisor/master/doc/tutorials/install_by_vga_gsg.tar.gz>`_ ``acrn.elf``, ``acrn-dm`` and ``OVMF`` binaries are included in the
`tarball
<https://raw.githubusercontent.com/projectacrn/acrn-hypervisor/master/doc/tutorials/install_by_vga_gsg.tar.gz>`_
together with the script used to install Windows 10. together with the script used to install Windows 10.
#. Uncompress ``install_by_vga_gsg.tar.gz`` to the Service OS:: #. Uncompress ``install_by_vga_gsg.tar.gz`` to the Service OS::
@ -372,4 +415,12 @@ Device configurations of acrn-dm command line
to install the virtio Windows driver later. Make sure it points to your VirtIO ISO path. to install the virtio Windows driver later. Make sure it points to your VirtIO ISO path.
* *--ovmf /root/bios/OVMF.fd*: * *--ovmf /root/bios/OVMF.fd*:
Make sure it points to your OVMF binary path. Make sure it points to your OVMF binary path
References
**********
.. [1]
These virtio drivers injecting batch script are based on Derek Seaman's IT blog about
`injecting VirtIO Drivers into Windows
<https://www.derekseaman.com/2015/07/injecting-kvm-virtio-drivers-into-windows.html>`_.