From 361ecd977a72700ebdf37dc44c8bdbf1284c7715 Mon Sep 17 00:00:00 2001 From: Guofang Date: Sun, 18 Oct 2026 15:42:35 +0800 Subject: [PATCH] Pick the Arm64 rustup and Qt builds on Arm64 Windows Co-Authored-By: Claude Sonnet 5.5 --- seediso/windows11/40-Install-Rustup.bat | 13 +++++++++++-- seediso/windows11/60-Install-Qt6.bat | 20 ++++++++++++++++---- windows11-arm64-install-speed.md | 4 ++-- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/seediso/windows11/40-Install-Rustup.bat b/seediso/windows11/40-Install-Rustup.bat index 783e15e..0e85a01 100644 --- a/seediso/windows11/40-Install-Rustup.bat +++ b/seediso/windows11/40-Install-Rustup.bat @@ -7,8 +7,17 @@ rem The default msvc toolchain needs the MSVC Build Tools (see 20-Install-MSVC-A set "INSTALLER=%TEMP%\rustup-init.exe" -echo Downloading rustup-init... -curl.exe -L --fail -o "%INSTALLER%" https://win.rustup.rs/x86_64 +rem PROCESSOR_ARCHITEW6432 holds the real architecture when this runs under emulation. +set "ARCH=%PROCESSOR_ARCHITECTURE%" +if defined PROCESSOR_ARCHITEW6432 set "ARCH=%PROCESSOR_ARCHITEW6432%" +if /i "%ARCH%"=="ARM64" ( + set "RUSTUP_ARCH=aarch64" +) else ( + set "RUSTUP_ARCH=x86_64" +) + +echo Downloading rustup-init (%RUSTUP_ARCH%)... +curl.exe -L --fail -o "%INSTALLER%" https://win.rustup.rs/%RUSTUP_ARCH% if errorlevel 1 ( echo Download failed. pause diff --git a/seediso/windows11/60-Install-Qt6.bat b/seediso/windows11/60-Install-Qt6.bat index 427b30a..f8a12cd 100644 --- a/seediso/windows11/60-Install-Qt6.bat +++ b/seediso/windows11/60-Install-Qt6.bat @@ -3,13 +3,25 @@ setlocal title Install Qt 6 rem Qt is not available from winget, so this uses the standalone aqtinstall (aqt) to fetch it. -rem The msvc2022_64 build needs the MSVC Build Tools (see 20-Install-MSVC-Admin.bat). +rem The msvc2022 builds need the MSVC Build Tools (see 20-Install-MSVC-Admin.bat). set "QT_VERSION=6.10.3" -set "QT_ARCH=win64_msvc2022_64" set "QT_ROOT=C:\Qt" set "AQT=%TEMP%\aqt.exe" +rem PROCESSOR_ARCHITEW6432 holds the real architecture when this runs under emulation. +set "ARCH=%PROCESSOR_ARCHITECTURE%" +if defined PROCESSOR_ARCHITEW6432 set "ARCH=%PROCESSOR_ARCHITEW6432%" +if /i "%ARCH%"=="ARM64" ( + set "QT_HOST=windows_arm64" + set "QT_DIR=msvc2022_arm64" +) else ( + set "QT_HOST=windows" + set "QT_DIR=msvc2022_64" +) +set "QT_ARCH=win64_%QT_DIR%" + +rem aqt has no Arm64 build; the x64 one runs under emulation on Arm64 Windows. echo Downloading aqtinstall... curl.exe -L --fail -o "%AQT%" https://github.com/miurahr/aqtinstall/releases/download/v3.3.0/aqt_x64.exe if errorlevel 1 ( @@ -19,13 +31,13 @@ if errorlevel 1 ( ) echo Installing Qt %QT_VERSION% (%QT_ARCH%) to %QT_ROOT% ... -"%AQT%" install-qt windows desktop %QT_VERSION% %QT_ARCH% --outputdir "%QT_ROOT%" +"%AQT%" install-qt %QT_HOST% desktop %QT_VERSION% %QT_ARCH% --outputdir "%QT_ROOT%" set "RC=%ERRORLEVEL%" del "%AQT%" >nul 2>&1 if "%RC%"=="0" ( - echo Done. Use -DCMAKE_PREFIX_PATH=%QT_ROOT%\%QT_VERSION%\msvc2022_64 with CMake. + echo Done. Use -DCMAKE_PREFIX_PATH=%QT_ROOT%\%QT_VERSION%\%QT_DIR% with CMake. ) else ( echo aqt exited with code %RC%. ) diff --git a/windows11-arm64-install-speed.md b/windows11-arm64-install-speed.md index 0072a74..ba8ffd3 100644 --- a/windows11-arm64-install-speed.md +++ b/windows11-arm64-install-speed.md @@ -151,8 +151,8 @@ vm-images/build-windows-install-disk.sh [--force] ISO [OUTPUT.img] (`virtio-win-gt-arm64.msi`,含 NetKVM、viostor 等),但我没确认它在哪个发行版里发布。 arm64 的网卡是 virtio-net,驱动装不上就没有网络,后面联网下载的 `.bat` 会失败。 可选方案:换含 arm64 MSI 的 ISO,或在脚本里用 `pnputil` 从 `NetKVM\w11\ARM64` 装驱动。**未验证、未修改。** -- **x64 安装脚本**:`40-Install-Rustup.bat` 下载 `x86_64` 安装器、`60-Install-Qt6.bat` 下载 `aqt_x64.exe`, - 在 Arm Windows 上靠模拟运行,装出来的是 x64 版本。 +- **安装脚本的架构**:(已修改)`40-Install-Rustup.bat` 和 `60-Install-Qt6.bat` 按 `PROCESSOR_ARCHITECTURE` 选择 + `aarch64` 的 rustup-init 和 `win64_msvc2022_arm64` 的 Qt。aqt 没有 Arm64 版,`aqt_x64.exe` 仍靠模拟运行,只负责下载。 - **按键提示**:用 USB 光驱(原方式)时,Arm 版 ISO 会显示 "Press any key to boot from CD or DVD",几秒内不按键会掉进 UEFI Shell。 磁盘镜像方式不经过这个提示。曾经加过自动按键逻辑,按要求已删除。 - **显卡**:arm64 配置用 `ramfb`。`virtio-gpu-pci` 会让画面冻结在 "Start boot option"(QEMU 固件的 virtio-gpu 输出在 Windows 引导管理器处冻结)。