Reproducible ArchLinuxARM builds for ARM boards and emulators — right from Docker.
This project automates building and exporting ArchLinuxARM root filesystems and Raspberry Pi images using multi-stage Docker builds.
You can build:
- 🧱 Minimal ArchLinuxARM base rootfs
- ⚙️ Full system with kernel, SSH, and systemd networking
- 🌌 AstroArch — a KDE-based astrophotography environment (KStars, INDI, PHD2, etc.)
- 💾 Ready-to-flash
.imgfiles for Raspberry Pi or for generic aarch64 devices
All builds are reproducible and run entirely on x86_64 using QEMU emulation.
git clone https://github.com/devDucks/ArchLinuxARM.git
cd ArchLinuxARMdocker run --rm --privileged multiarch/qemu-user-static --reset -p yesmake build-minimalmake build-aarch64make build-astroarchEach build exports its rootfs tarball (/archlinuxarm-aarch64-rootfs.tar or /astroarch-rootfs.tar).
| Target | Description |
|---|---|
build-minimal |
Minimal base ArchLinuxARM rootfs (Dockerfile.base). |
build-aarch64 |
Full ArchLinuxARM with kernel, SSH, locale, DHCP. |
build-aarch64-rootfs |
Exports the aarch64 rootfs tarball. |
build-astroarch |
AstroArch desktop with KDE + INDI stack. |
build-astroarch-rootfs |
Exports the AstroArch rootfs tarball. |
prepare-rpi-img |
Creates a bootable Raspberry Pi image (archarm-rpi-aarch64.img). |
- Based on Alpine
- Installs
pacman,arch-install-scripts - Bootstraps
ArchLinuxARM aarch64rootfs - Exports
/archlinuxarm-aarch64-rootfs.tar
- Based on
archlinuxarm-basic - Sets mirrors and initializes pacman keys
- Installs:
glibc,linux-aarch64,nano,openssh - Configures
systemd-networkd(DHCP) - Enables SSH (
root/alarm) - Fixes locale (
locale.genrebuild)
- Adds AstroMatto repository
- Tweaks pacman (
ILoveCandy, disable timeout) - Installs:
- KDE Plasma desktop
- KStars + Ekos
- INDI drivers
- PHD2 guiding
- VNC tools (tigervnc)
- XRDP to access the environment via RDP
- Exports
/astroarch-rootfs.tar
- Creates a bootable
.img(archarm-rpi-aarch64.img) - Partitions disk →
/boot(FAT32),/(ext4) - Copies rootfs
- Applies UUIDs, mount points, fsck, etc.
make prepare-rpi-imgThe result is:
archarm-rpi-aarch64.img
You can now boot the .img just created using qemu, run ./scripts/start_qemu.sh
you can then login into the system make your changes and shutdown now.
This will leave you with a ready to be flashed image wich includes your custom changes
Flash it to an SD card:
sudo dd if=archarm-rpi-aarch64.img of=/dev/sdX bs=4M status=progress
syncThen insert the SD card into your Pi and boot — SSH will be ready via DHCP.
| Image | User | Password | Notes |
|---|---|---|---|
| ArchLinuxARM | root | alarm | SSH enabled by default |
| -------------- | ------ | ------- | ------------------------ |
| AstroArch | astronaut | astro | SSH enabled by default |
Mirrors used during build (/etc/pacman.d/mirrorlist):
Server = http://dk.mirror.archlinuxarm.org/$arch/$repo
Server = http://de3.mirror.archlinuxarm.org/$arch/$repo
Server = http://eu.mirror.archlinuxarm.org/$arch/$repo
Server = http://fl.us.mirror.archlinuxarm.org/$arch/$repo
You can modify mirrors in Dockerfiles or via build args.
AstroArch is a preconfigured ArchLinuxARM environment for astrophotography setups.
Includes:
- 🪩 KDE Plasma Desktop
- 🌠 KStars + Ekos
- 🔭 INDI drivers
- 📷 PHD2 guiding
- 🖥️ Remote access via VNC or RDP
Built for Raspberry Pi 5 observatories and headless rigs.
├── dockerfiles/
│ ├── Dockerfile.base
│ ├── Dockerfile.aarch64
│ └── Dockerfile.astroarch
├── scripts/
│ └── build_img.sh
├── Makefile
└── README.md
- License: MIT
- Maintainers: devDucks 🦆
- Based on: ArchLinuxARM
- Inspired by: AstroArch Linux Distro
“Build once, flash anywhere — the Arch way.”
✨ Made with ❤️ by devDucks