feat: add raspi-arch branch for Arch Linux ARM on Raspberry Pi - #7
Draft
LJLee37 wants to merge 1 commit into
Draft
feat: add raspi-arch branch for Arch Linux ARM on Raspberry Pi#7LJLee37 wants to merge 1 commit into
LJLee37 wants to merge 1 commit into
Conversation
New branch (forked from raspi's tree) covering a headless Arch Linux ARM (ALARM) install, scoped like raspi (CLI-only) rather than the GNOME/Steam-heavy x86_64 arch branch. ALARM's install procedure differs fundamentally from x86 Arch's pacstrap+GRUB flow: - install-sdcard.sh replaces install1.sh: run on a separate host to partition/format the SD card and extract a prebuilt ALARM rootfs tarball with bsdtar (not pacstrap, since the Pi has no OS to pacstrap from yet; bsdtar instead of tar to preserve xattrs/ACLs). - install-firstboot.sh replaces install2.sh: adds the ALARM-specific pacman-key --populate archlinuxarm step, drops GRUB/grub-mkconfig (the Pi boots via firmware + config.txt, not GRUB), drops mkinitcpio/initramfs (unneeded for a stock boot) and intel-ucode (x86-only). Accepts a Pi model argument to swap in the linux-rpi-16k kernel that Pi 5 currently needs in place of the generic aarch64 kernel. - Removed raspi's apt-based install.sh (wrong package manager for ALARM) and replaced it with the two scripts above. - backup.sh adapted from raspi's: ALARM mounts the boot partition at /boot rather than /boot/firmware. - set.sh: same clone-path fix as the other branches (~/gitRepos/settingfiles, not .../Personal/settingfiles). - .vimrc/.zshrc/init.vim reused verbatim from raspi, unchanged -- these are architecture-independent. Written against a Raspberry Pi 4 Model B (64-bit); see README and script comments for Pi 3/5 notes and the caveat that ALARM's exact procedure should be re-verified at archlinuxarm.org before a new install.
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.
This is not meant to be merged into
raspi. The newraspi-archbranchhas already been pushed directly to
raspi-arch(same content as this PR'shead,
claude/settingfiles-restructure-raspi-arch-uk2buw-raspi-arch) — therewas no existing
raspi-archbranch to open a normal "into" PR against, sothis PR exists purely to give you a reviewable diff.
raspiis used as thebase only because it's the closest sibling in scope (both are headless/CLI),
which keeps the diff to just the files that actually differ. Once you're
happy with it, just close this PR without merging;
raspi-archalreadystands on its own as a branch.
Summary
Companion to the cleanup PRs on
master/arch/macOS/ubuntu/alpine/raspi. Adds the newraspi-archbranch: a headless Arch Linux ARM (ALARM) install for Raspberry Pi, scoped likeraspi(CLI-only — no GNOME/Steam like the x86_64archbranch has).ALARM's install procedure is fundamentally different from x86 Arch's
pacstrap+GRUB flow, soarch's scripts couldn't be reused as-is:install-sdcard.sh(replacesinstall1.sh) — run on a separate Linux host with the SD card/USB drive attached (the Pi has no OS yet at this point). Partitions/formats the media and extracts a prebuilt ALARM rootfs tarball withbsdtar(extended attributes/ACLs can be dropped by plaintar).install-firstboot.sh(replacesinstall2.sh) — run on the Pi after first boot. Adds the ALARM-specificpacman-key --init/--populate archlinuxarmstep; drops GRUB/grub-mkconfigentirely (the Pi boots via firmware +config.txt, not GRUB); dropsmkinitcpio/initramfs (not needed for a stock boot) andintel-ucode(x86-only). Takes a Pi-model argument to swap in thelinux-rpi-16kkernel that a Pi 5 currently needs in place of the generic aarch64 kernel the tarball ships with.backup.shadapted fromraspi's: ALARM mounts the boot partition at/boot, not/boot/firmware.set.sh: same~/gitRepos/settingfilespath fix as the other branches..vimrc/.zshrc/init.vimreused verbatim fromraspi— unchanged, since shell/editor config is architecture-independent.raspi's apt-basedinstall.shwas removed (wrong package manager for ALARM) — flagging per the task's instruction to call out deletions before/while doing them.Written against a Raspberry Pi 4 Model B (64-bit), using the generic
ArchLinuxARM-rpi-aarch64-latest.tar.gzimage (ALARM's docs list this as also covering the Pi 3 and 400). The Pi 5 has no dedicated ALARM image as of this writing —install-firstboot.sh 5swaps in the kernel package the community currently recommends there, but this is inherently more fragile than the Pi 3/4 path. I verified the core steps (tarball URL pattern,bsdtar,pacman-keysequence, fstab entries, no-GRUB boot, Pi 5 kernel caveat) against multiple current third-party guides during this session, sincearchlinuxarm.orgitself blocked automated fetches — please re-check https://archlinuxarm.org for your specific model before a real install, as ALARM's supported devices and exact procedure do change over time.Hardcoded personal values (carried forward from raspi/arch for consistency, left as-is)
ljlee, default hostnameraspi-arch(both overridable viaUSERNAME/HOSTNAME_VALUEenv vars ininstall-firstboot.sh— the hostname is a placeholder, not a real personal value, since raspi-arch has no prior hostname to reuse)ko_KR/ja_JP/eo(ported fromarch/install2.shfor consistency)192.168.35.203(ported fromraspi/backup.sh)Asia/Seoul(ported fromarch/install1.sh, with thezoneinfotypo already fixed)Test plan
bash -n install-sdcard.sh/bash -n install-firstboot.sh— both pass (checked locally).vimrc/.zshrc/init.vimare byte-identical toraspi's (checked locally)Generated by Claude Code