diff --git a/assets/win10arm.xml b/assets/win10arm64.xml similarity index 100% rename from assets/win10arm.xml rename to assets/win10arm64.xml diff --git a/assets/win11arm.xml b/assets/win11arm64.xml similarity index 100% rename from assets/win11arm.xml rename to assets/win11arm64.xml diff --git a/src/install.sh b/src/install.sh index 44892cf..07638db 100644 --- a/src/install.sh +++ b/src/install.sh @@ -3,17 +3,17 @@ set -Eeuo pipefail : "${MANUAL:=""}" : "${DETECTED:=""}" -: "${VERSION:="win11arm"}" +: "${VERSION:="win11arm64"}" if [[ "${VERSION}" == \"*\" || "${VERSION}" == \'*\' ]]; then VERSION="${VERSION:1:-1}" fi -[[ "${VERSION,,}" == "11" ]] && VERSION="win11arm" -[[ "${VERSION,,}" == "win11" ]] && VERSION="win11arm" +[[ "${VERSION,,}" == "11" ]] && VERSION="win11arm64" +[[ "${VERSION,,}" == "win11" ]] && VERSION="win11arm64" -[[ "${VERSION,,}" == "10" ]] && VERSION="win10arm" -[[ "${VERSION,,}" == "win10" ]] && VERSION="win10arm" +[[ "${VERSION,,}" == "10" ]] && VERSION="win10arm64" +[[ "${VERSION,,}" == "win10" ]] && VERSION="win10arm64" CUSTOM="custom.iso" @@ -65,8 +65,8 @@ getVersion() { local name="$1" local detected="" - [[ "${name,,}" == *"windows 11"* ]] && detected="win11arm" - [[ "${name,,}" == *"windows 10"* ]] && detected="win10arm" + [[ "${name,,}" == *"windows 11"* ]] && detected="win11arm64" + [[ "${name,,}" == *"windows 10"* ]] && detected="win10arm64" echo "$detected" return 0 @@ -235,10 +235,10 @@ getESD() { local winCatalog size case "${VERSION,,}" in - win11arm) + win11arm64) winCatalog="https://go.microsoft.com/fwlink?linkid=2156292" ;; - win10arm) + win10arm64) winCatalog="https://go.microsoft.com/fwlink/?LinkId=841361" ;; *) @@ -407,10 +407,10 @@ extractESD() { local edition imageIndex imageEdition case "${VERSION,,}" in - win11arm) + win11arm64) edition="11 pro" ;; - win10arm) + win10arm64) edition="10 pro" ;; *) diff --git a/src/power.sh b/src/power.sh index 172f8e6..1d5abb5 100644 --- a/src/power.sh +++ b/src/power.sh @@ -11,7 +11,6 @@ QEMU_PTY="/run/shm/qemu.pty" QEMU_LOG="/run/shm/qemu.log" QEMU_OUT="/run/shm/qemu.out" QEMU_END="/run/shm/qemu.end" -BOOT_LINE="starting Boot0002" rm -f /run/shm/qemu.* touch "$QEMU_LOG" @@ -23,6 +22,19 @@ _trap() { done } +ready() { + + [ -f "$STORAGE/windows.boot" ] && return 0 + [ ! -f "$QEMU_PTY" ] && return 1 + + local line="Windows Boot Manager" + if grep -Fq "$line" "$QEMU_PTY"; then + return 0 + fi + + return 1 +} + finish() { local pid @@ -41,12 +53,11 @@ finish() { done fi - if [ ! -f "$STORAGE/windows.boot" ] && [ -f "$QEMU_PTY" ]; then - if grep -Fq "$BOOT_LINE" "$QEMU_PTY"; then - if [ -f "$STORAGE/$BASE" ]; then - rm -f "$STORAGE/$BASE" - touch "$STORAGE/windows.boot" - fi + if [ ! -f "$STORAGE/windows.boot" ] && [ -f "$STORAGE/$BASE" ]; then + # Remove CD-ROM ISO after install + if ready; then + rm -f "$STORAGE/$BASE" + touch "$STORAGE/windows.boot" fi fi @@ -126,11 +137,9 @@ _graceful_shutdown() { finish "$code" && return "$code" fi - if [ ! -f "$STORAGE/windows.boot" ] && [ -f "$QEMU_PTY" ]; then - if ! grep -Fq "$BOOT_LINE" "$QEMU_PTY"; then - info "Cannot send ACPI signal during Windows setup, aborting..." - finish "$code" && return "$code" - fi + if ! ready; then + info "Cannot send ACPI signal during Windows setup, aborting..." + finish "$code" && return "$code" fi # Send ACPI shutdown signal