Table of Contents
Windows 11 ARM64
Introduction
This page describes how to Build a native Windows 11 ARM64 Rocrail package.
To save money for an ARM64 based test system, a Virtualiser is used for running Windows 11 ARM64 Preview.
The used development PC is a Mac Mini with a M1 CPU. (ARM64)
Links
- Windows Software Entwicklungskit (Just a link for an ARM64 PC.)
-
-
UTM
UTM is used to visualise Windows 11 ARM64 on a Mac with M1/M2 CPU.
The easiest way is to create a Windows 11 ISO with CrystalFetch.
See for more information and instructions: https://docs.getutm.app/guides/windows/
The Windows11_InsiderPreview_Client_ARM64_en-us_xxxxx.VHDX
can be imported into UTM to virtualize Windows 11 ARM64.
The Windows Setup does not find a network adapter.
This solution can be found in Internet:
- Create the VM using the ARM64 VHDX downloaded from Microsoft.
- Start the VM and immediately press Escape, use the UEFI bios to change the resolution to 1024x768. F10 ( On my Apple keyboard, I needed to press the fn key with F10. )to save then ESC twice and Restart.
- Let windows boot to the first screen. While it is doing its thing, use the CD icon on the top of the window to attach the spice-guest-tools-xxxx.iso to the VM.
- When Windows asks you for the Country. Stop right there. Press Shift-F10 ( On my Apple Keyboard, I needed to press the fn key with Shift and F10. ) to bring up a Windows command line.
- CD to D:
- then run the spice-guest-tools-xxxxx.exe
- reboot after the install.
MSYS2
Prepare
- Open the MSYS2 shell
- Uncomment the clangarm64 config in /etc/pacman.conf
- Run pacman -Suy
- Install clang for example: pacman -S mingw-w64-clang-aarch64-clang
Open a MSYS2 CLANGARM64 shell.
Install Utilities
- pacman -Suy (update)
- pacman -S mingw-w64-clang-aarch64-clang
- pacman -S git
- pacman -S make
- pacman -S tar
- pacman -S zip
- pacman -S mingw-w64-clang-aarch64-lldb (debugger)
- pacman -S sshpass
MSYS2 Notes
The MSYS2 is a Unix like shell and uses the same package manager as ArchLinux; pacman.
After opening a shell the working directory is in context of MSYS2.
To change this to the Windows User context:
cd c: cd Users/<username>
Its a good tradition to create a new directory for the Rocrail and wxWidgets build process:
mkdir Projects cd Projects git clone <Rocrail repository link> git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git
Rocrail Server
Get Sources
git clone <repository link> cd Rocrail
Make Parameters
General make parameters to override the default gcc compiler name:
make PLATFORM=WIN64 CPP=cc CC=cc LNK=cc SHARED=--shared server
wxWidgets
Get Sources
git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git cd wxWidgets mkdir winbuild cd winbuild git checkout v3.2.6
Configure & Build
../configure --with-msw --enable-unicode --disable-shared --enable-graphics_ctx --enable-monolithic --enable-stc --enable-debug=no make -j4 make install
Update
git pull --recurse-submodules
Rocview
Make Parameters
General make parameters:
make PLATFORM=WIN64 GENSUFFIX=.exe CPP=cc CC=cc LNK=cc SHARED=--shared WX_FLAGS="`wx-config --cflags`" WXCONFIG=wx-config LIBGCC=-lc++
Rocview & Rocview
With the make parameters for Rocrail and Rocview combined on one line the whole source tree can be compiled.
Make Parameters
cd Rocrail make -j4 PLATFORM=WIN64 GENSUFFIX=.exe CPP=cc CC=cc LNK=cc SHARED=--shared WX_FLAGS="`wx-config --cflags`" WXCONFIG=wx-config LIBGCC=-lc++ fromtar
ZIP Installer
rocrail/package/zipper.sh WINARM64 Windows
Result:
$ ls -l package/ total 25988 -rw-r--r-- 1 rjver rjver 26609279 Dec 11 09:10 Rocrail-Windows-WINARM64.zip drwxr-xr-x 1 rjver rjver 0 Dec 11 09:10 history