Skip to content

devDucks/ArchLinuxARM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐧 ArchLinuxARM Docker Builder

Buildx Architecture License GitHub Actions GHCR

Reproducible ArchLinuxARM builds for ARM boards and emulators β€” right from Docker.


πŸ“¦ Overview

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 .img files for Raspberry Pi or for generic aarch64 devices

All builds are reproducible and run entirely on x86_64 using QEMU emulation.


πŸš€ Quick Start

Clone the repository

git clone https://github.com/devDucks/ArchLinuxARM.git
cd ArchLinuxARM

Enable QEMU for cross-architecture builds

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

Build the minimal ArchLinuxARM image

make build-minimal

Build the full ArchLinuxARM (with kernel, SSH, networking)

make build-aarch64

Build AstroArch (KDE + astrophotography tools)

make build-astroarch

Each build exports its rootfs tarball (/archlinuxarm-aarch64-rootfs.tar or /astroarch-rootfs.tar).


🧰 Make Targets

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).

🧱 Image Structure

πŸ”Ή dockerfiles/Dockerfile.base

  • Based on Alpine
  • Installs pacman, arch-install-scripts
  • Bootstraps ArchLinuxARM aarch64 rootfs
  • Exports /archlinuxarm-aarch64-rootfs.tar

πŸ”Ή dockerfiles/Dockerfile.aarch64

  • 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.gen rebuild)

πŸ”Ή dockerfiles/Dockerfile.astroarch

  • 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

πŸ”Ή scripts/build_img.sh

  • Creates a bootable .img (archarm-rpi-aarch64.img)
  • Partitions disk β†’ /boot (FAT32), / (ext4)
  • Copies rootfs
  • Applies UUIDs, mount points, fsck, etc.

πŸ’Ύ Build an AstroArch Raspberry Pi Image

make prepare-rpi-img

The 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
sync

Then insert the SD card into your Pi and boot β€” SSH will be ready via DHCP.


πŸ” Default Credentials

Image User Password Notes
ArchLinuxARM root alarm SSH enabled by default
-------------- ------ ------- ------------------------
AstroArch astronaut astro SSH enabled by default


🌍 Mirror List

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 at a Glance

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.


πŸ“ Project Layout

β”œβ”€β”€ dockerfiles/
β”‚   β”œβ”€β”€ Dockerfile.base
β”‚   β”œβ”€β”€ Dockerfile.aarch64
β”‚   └── Dockerfile.astroarch
β”œβ”€β”€ scripts/
β”‚   └── build_img.sh
β”œβ”€β”€ Makefile
└── README.md

🧾 License & Credits


β€œBuild once, flash anywhere β€” the Arch way.”

✨ Made with ❀️ by devDucks

About

bootstrapping scripts to start an ArchLinuxARM system from scratch

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors