User Tools

Site Tools


develop:msysarm64-en

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)


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:

  1. Create the VM using the ARM64 VHDX downloaded from Microsoft.
  2. 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.
  3. 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.
  4. 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.
  5. CD to D:
  6. then run the spice-guest-tools-xxxxx.exe
  7. reboot after the install.


MSYS2

Prepare

  1. Open the MSYS2 shell
  2. Uncomment the clangarm64 config in /etc/pacman.conf
  3. Run pacman -Suy
  4. 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
develop/msysarm64-en.txt · Last modified: 2024/11/01 12:23 by rjversluis