Add AArch64 and Snapdragon ISO support - #156
Draft
gilgm12 wants to merge 7 commits into
Draft
Conversation
Adds `--arch x86_64|aarch64` to bin/omarchy-iso-make and branches everywhere the
build assumed x86_64. The x86_64 path is unchanged: profiledef output is
byte-identical and the configurator's mirror JSON resolves to the same value.
Arch Linux ARM differs from Arch in ways that are not configuration:
* the kernel package is linux-aarch64, not linux, and it installs /boot/Image
rather than vmlinuz-*, which archiso hard-globs in four places
* packages are .pkg.tar.xz, not .pkg.tar.zst
* archiso is not packaged at all, so mkarchiso comes from the pinned submodule
and mkinitcpio-archiso supplies the initramfs hooks separately
* the repo layout is $arch/$repo, with a third base repo [alarm], no
[multilib] and no [arch-mact2]
The subtlest: linux-aarch64 owns /etc/mkinitcpio.d/linux-aarch64.preset, so the
profile cannot ship a replacement, and the stock preset builds against
/etc/mkinitcpio.conf -- which omarchy-settings replaces with the target system's
hooks. The live initramfs then contains no archiso hook and the ISO panics on
boot, having built without complaint. customize_airootfs.sh rebuilds it against
archiso's config after pacstrap and fails the build when the hooks are absent.
Package lists are filtered through builder/aarch64-excludes.packages everywhere
they are consumed: the live ISO list, the offline mirror, the lists the ISO
ships, and the expected-package count. Filtering only some of them yields an ISO
that builds and then fails partway through installing.
test/unit/iso-structure-test.sh checks a built ISO for the invariants separating
"built" from "bootable", including the archiso hook. It skips when no ISO exists.
Mirrors stay out of tracked files: OMARCHY_PKGS_MIRROR, OMARCHY_BASE_MIRROR and
OMARCHY_EXTRA_PKGBUILDS override them per build, so no personal mirror is
committed and the defaults work once pkgs.omarchy.org publishes aarch64.
Builds and passes structural verification. Not yet booted or installed; see
alarm-iso.md for what remains and for errors in plans/aarch64-support.md.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ing screen-blanking during LUKS prompt.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
linux-aarch64kernel layout into Limine while supporting both legacypkgbaseand currentmodules.builtinhook discoveryRegression coverage
The initial 2026-09-05 artifact exposed a package-coupling regression at the end of installation:
limine-mkinitcpio-hook1.38 changed kernel discovery, while the embedded installer only recognized the older hook. The artifact test now extracts both the installer and the actual hook package from the ISO and verifies that they are compatible.installer does not recognize the embedded Limine modules.builtin hookHardware status
Test artifact
omarchy-2026.09.05-aarch64-local.isoSHA-256:
9c4d51a67c3b53b331fce9aca0deceabaaee853df86457ac455f5d52ef280fb4