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