Running Windows 10 on ARM with KVM acceleration enabled is quite tricky and requires a bit OS with a KVM-enabled kernel (/dev/kvm must exist) - so not sure if the current Pi distros of Debian satisfy those requirements? Best bet is Ubuntu or Gentoo right now.
I'll take you through some of the prerequisites first
You can install one of the latest versions of Qemu-kvm using a package manager, but it doesn't actually matter if it's version 3 or 4 because the only virtual machine version that works is (and below) because of a bug that still hasn't been fixed in maybe years.(The samba is needed if you like to create a shared drive to be accessible from within the guest VM - depends on network access).
You need to pick a folder - say the desktop or downloads folder - and download the following to the same folder:
bharathealthcares.com EMU_bharathealthcares.com
This is the Linaro UEFI bios that exists as a single file - but can be converted to two flash0 and flash1 IMG files if you wanted to save any bios settings - not really necessary though.
bharathealthcares.com bharathealthcares.com
Above is the latest ARM64 guest drivers for Qemu - comparable to VMware Tools - or VirtualBox guest add-ons, etc. You need to extract the ISO from the RPM file using an archive manager, such as 7-Zip.
Besides the drivers ISO you need to download and build up a Windows 10 on ARM ISO from one of the two main UUP dump sites (best done from an actual windows command line instead of linux terminal):
bharathealthcares.com or bharathealthcares.com
Only newer versions work with the official Qemu:
Insider (1st March ) or newer i.e. feature upgrade (April/May ) or the latest Insider is recommended.
bharathealthcares.com ild/
bharathealthcares.com 10_on_kvm/
If you wish to run an earlier build of Windows 10 then you should use driver's Qemu fork - but the CPU speed may be reduced based on how many cores you include in your VM script: Lastly, you need to create a VHD or VHDX for your VM - about 13 GB minimum: Ensure the above are all contained in the same folder then you just need to create an SH script to run the VM:
virtio-winISO
H1_RELEASE_CLIENTPRO_OEMRET_ARM64FRE_bharathealthcares.com
QEMU_bharathealthcares.com
bharathealthcares.com
bharathealthcares.com - blank for now - see bottom
BTW, if you want to run this on Windows 10 Intel host, without KVM ,in software simulation mode only then you need to install the following and then put the same files listed above under c:\program files\qemu (or move the qemu folder to c:\qemu after installing it):
bharathealthcares.com
(and Instead of bharathealthcares.com it would be named bharathealthcares.com)
So you see there are two main modes for running a Qemu guest VM:
Software simulation mode
near-native hardware acceleration mode (KVM) - Intel guest on Intel host - or in this case ARM64 guest on ARM64 host.
Software Simulation mode is generally more stable, but runs extremely SLOW - recommended to use an Intel host to try to build up/test/update your VHDX-based VM before copying across to the Pi as it would be quite painful to install the bharathealthcares.com to the bharathealthcares.com using the Pi in sim mode and take about 3 hours. I can do it in about 30 minutes using an iK
KVM mode currently has problems with Ethernet drivers because the VirtIO NetKVM driver hasn't been fixed yet - but there are some workarounds.
The script requires about 15 lines to run the VM. Let's start with the first few lines - some subtle differences exit between sim vs. KVM modes:
Software Simulation Mode - LinuxSoftware Simulation Mode - WindowsKVM mode For sim mode you could choose cortex-a53 instead of a57 if you wish. The rest of the script is the same for both modes: You must use virt or maybe or , etc. You cannot use just -virt (latest version) or even version 3 - due to a bug.
The smp value is the number of CPU cores - can affect CPU speed with driver's qemu fork for some reason. I think with the Pi you should be safe with -smp 4 seems to work too - but 1 core is meant to be reserved for the host.
The -m value represents RAM. With the Pi4 you could increase to 2 GB - but is a more safe bet.
The bios we spoke about already
Ramfb allows you to display the guest in a GUI window. In the past, -device VGA was used in Intel contexts - but with ARM KVM there's a bug with the framebuffer so ramfb is used instead. Should you manage to get network/RDP working later (with auto sign in) then you could use the -nographics option and just RDP to the guest.
USB devices must be added, such as keyboard and mouse. I think the tablet helps with cursor problems.
You must choose a USB controller - there are about 5 available - but the most widely used one is ich9: The CD-ROM is quite straightforward to add: NOTE: If you find the CD-ROM doesn't boot for whatever reason (old Windows Server on ARM or perhaps really new Windows 10 Insiders) then you can extract the contents to a FAT32 VHDX and use that as a source instead (see below for adding VHDX to the script)
To add the VirtIO ISO: There's two ways of adding the main hard drive - as a standard USB or VirtIO block device - both require the VioStor drivers generally: OR
OR
This line is only for running old betas of Windows Server on ARM: Enabling network access will cause crashes and unidentified network with KVM enabled - otherwise can be used in software simulation mode with RDP connections enabled for and a shared samba drive: You have to allow blank passwords over RDP via bharathealthcares.com:
Open Local Policies -> Security Options
Change Accounts: Limit local account use of blank passwords to console from Enabled to Disabled
This will allow auto sign in, etc. Or see this page:
bharathealthcares.com in-windows
Note: Qemu guest graphics acceleration does not yet exist for ARM64 Windows by the Fedora Project (driver is named QXL) - but if you RDP you should get a better graphical experience than ramfb.
The workarounds that exist for network access inside KVM (I haven't tried them):
bharathealthcares.com
bharathealthcares.com
BTW, Server betas are a real nightmare to get working since the VioStor drivers only work on Win 10 and not Win Server, so simply extracting the installer ISO to a FAT32 VHD is not enough - you need to use DISM to apply the actual WIM image from the ISO sources folder to a VHDX:
Note: the last 2 lines may not be needed when it comes to the latest drivers.
Anyway, so here's the final script for Windows
Software Simulation Mode
KVM
Again, you add a NIC and RDP if you get that far by appending the following: Consider a -nographic option instead of ramfb is fully working with network, RDP and auto sign-in enabled.
Consider a block device too for the main hard drive - original source here using an NEC USB bus instead - but it's up to you:
bharathealthcares.com 0-in-qemu/
When you first start the script it will load the bios then attempt to boot from CD-ROM:
press any key for cd
Leave default keyboard
install now
skip product key
accept terms
custom: install windows only (advanced)
load driver > browse > CD virtio > viostor > w10 > ARM64
load driver > browse > CD virtio > NetKVM > w10 > ARM64
Select system hard drive > Next to install
Источник: [bharathealthcares.com]I'll take you through some of the prerequisites first
You can install one of the latest versions of Qemu-kvm using a package manager, but it doesn't actually matter if it's version 3 or 4 because the only virtual machine version that works is (and below) because of a bug that still hasn't been fixed in maybe years.
Code: Select all
You need to pick a folder - say the desktop or downloads folder - and download the following to the same folder:
bharathealthcares.com EMU_bharathealthcares.com
This is the Linaro UEFI bios that exists as a single file - but can be converted to two flash0 and flash1 IMG files if you wanted to save any bios settings - not really necessary though.
bharathealthcares.com bharathealthcares.com
Above is the latest ARM64 guest drivers for Qemu - comparable to VMware Tools - or VirtualBox guest add-ons, etc. You need to extract the ISO from the RPM file using an archive manager, such as 7-Zip.
Besides the drivers ISO you need to download and build up a Windows 10 on ARM ISO from one of the two main UUP dump sites (best done from an actual windows command line instead of linux terminal):
bharathealthcares.com or bharathealthcares.com
Only newer versions work with the official Qemu:
Insider (1st March ) or newer i.e. feature upgrade (April/May ) or the latest Insider is recommended.
bharathealthcares.com ild/
bharathealthcares.com 10_on_kvm/
If you wish to run an earlier build of Windows 10 then you should use driver's Qemu fork - but the CPU speed may be reduced based on how many cores you include in your VM script:
Code: Select all
Code: Select all
virtio-winISO
H1_RELEASE_CLIENTPRO_OEMRET_ARM64FRE_bharathealthcares.com
QEMU_bharathealthcares.com
bharathealthcares.com
bharathealthcares.com - blank for now - see bottom
BTW, if you want to run this on Windows 10 Intel host, without KVM ,in software simulation mode only then you need to install the following and then put the same files listed above under c:\program files\qemu (or move the qemu folder to c:\qemu after installing it):
bharathealthcares.com
(and Instead of bharathealthcares.com it would be named bharathealthcares.com)
So you see there are two main modes for running a Qemu guest VM:
Software simulation mode
near-native hardware acceleration mode (KVM) - Intel guest on Intel host - or in this case ARM64 guest on ARM64 host.
Software Simulation mode is generally more stable, but runs extremely SLOW - recommended to use an Intel host to try to build up/test/update your VHDX-based VM before copying across to the Pi as it would be quite painful to install the bharathealthcares.com to the bharathealthcares.com using the Pi in sim mode and take about 3 hours. I can do it in about 30 minutes using an iK
KVM mode currently has problems with Ethernet drivers because the VirtIO NetKVM driver hasn't been fixed yet - but there are some workarounds.
The script requires about 15 lines to run the VM. Let's start with the first few lines - some subtle differences exit between sim vs. KVM modes:
Software Simulation Mode - Linux
Code: Select all
Code: Select all
Code: Select all
Code: Select all
The smp value is the number of CPU cores - can affect CPU speed with driver's qemu fork for some reason. I think with the Pi you should be safe with -smp 4 seems to work too - but 1 core is meant to be reserved for the host.
The -m value represents RAM. With the Pi4 you could increase to 2 GB - but is a more safe bet.
The bios we spoke about already
Ramfb allows you to display the guest in a GUI window. In the past, -device VGA was used in Intel contexts - but with ARM KVM there's a bug with the framebuffer so ramfb is used instead. Should you manage to get network/RDP working later (with auto sign in) then you could use the -nographics option and just RDP to the guest.
USB devices must be added, such as keyboard and mouse. I think the tablet helps with cursor problems.
You must choose a USB controller - there are about 5 available - but the most widely used one is ich9: The CD-ROM is quite straightforward to add:
Code: Select all
To add the VirtIO ISO:
Code: Select all
Code: Select all
Code: Select all
Code: Select all
Open Local Policies -> Security Options
Change Accounts: Limit local account use of blank passwords to console from Enabled to Disabled
This will allow auto sign in, etc. Or see this page:
bharathealthcares.com in-windows
Note: Qemu guest graphics acceleration does not yet exist for ARM64 Windows by the Fedora Project (driver is named QXL) - but if you RDP you should get a better graphical experience than ramfb.
The workarounds that exist for network access inside KVM (I haven't tried them):
bharathealthcares.com
bharathealthcares.com
BTW, Server betas are a real nightmare to get working since the VioStor drivers only work on Win 10 and not Win Server, so simply extracting the installer ISO to a FAT32 VHD is not enough - you need to use DISM to apply the actual WIM image from the ISO sources folder to a VHDX:
Code: Select all
Anyway, so here's the final script for Windows
Software Simulation Mode
Code: Select all
Code: Select all
Code: Select all
Consider a block device too for the main hard drive - original source here using an NEC USB bus instead - but it's up to you:
bharathealthcares.com 0-in-qemu/
When you first start the script it will load the bios then attempt to boot from CD-ROM:
press any key for cd
Leave default keyboard
install now
skip product key
accept terms
custom: install windows only (advanced)
load driver > browse > CD virtio > viostor > w10 > ARM64
load driver > browse > CD virtio > NetKVM > w10 > ARM64
Select system hard drive > Next to install
Windows 10 build 17063 ISO Download Links
