Document:Installing Windows Core build 16236 on QEMU

Prerequisites[edit | edit source]

The following requirements used in order to install this build onto a virtual machine are listed below:

  • A copy of QEMU v6.2.0, modified for Windows ARM32 compatibility
  • A version of the TianoCore EDK II firmware designed for ARM32 emulation (included above), to be placed in the QEMU installation directory under fw/QEMU_EFI_1512_driver1998.fd
  • One virtual hard disk image (for storing the operating system)

Instructions[edit | edit source]

Open diskpart and then type:

create vdisk file="C:\CoreOS16236\hdd.vhd" maximum=65536 type=expandable
select vdisk file="C:\CoreOS16236\hdd.vhd"
attach vdisk
convert gpt
create partition efi size=100
format quick fs=fat32
assign letter=f
create partition primary size=1400
format quick
assign letter=g

Use DISM to apply the MainOS.wim:

dism /apply-image /imagefile:C:\Inkman\MainOS.wim /index:1 /applydir:G:\

Switch back to diskpart and type:

create partition primary size=277
format quick fs=ntfs
assign mount=G:\OSData
create partition primary
format quick
assign mount=G:\Data
exit

Use DISM to apply the Data.wim:

dism /apply-image /imagefile:C:\Inkman\Data.wim /index:1 /applydir:G:\Data

Unzip OSData.zip to G:\OSData.

Copy EFIESP partition content from other ARM32 Windows Phone build and execute:

bcdboot G:\WINDOWS /s F:\

Unzip EFIESP.zip to F:\.

Paste and run the contents of the below script onto a batch file within the QEMU installation directory.

set MAIN="C:\CoreOS16236\hdd.vhd"

qemu-system-arm ^
    -M virt,highmem=false -cpu cortex-a15 -smp cores=4,threads=2 -m 4096 ^
    -device usb-kbd,id=kbd -device usb-tablet,id=mice ^
    -drive id=SD,if=none,file=%MAIN% -device sd-card,drive=SD ^
    -bios fw\QEMU_EFI_1512_driver1998.fd -device VGA ^
    -rtc base=2017-07-07,clock=vm ^
    --accel tcg,thread=multi

The virtual system may need to be restarted multiple times to get the reference composer loaded properly.