- build-unified.sh: master build script (16 hooks, kernel 7.0.0-rc7) - config/package-lists: Debian package selections - assets: Alfred Commander extension tarball - docs: ARM64 investigation, kernel upgrade roadmap
3.7 KiB
3.7 KiB
Alfred Linux — ARM64 Build Investigation
Executive Summary
- ✅ Cross-compilation possible but native ARM64 builds recommended for production
- Each target differs: Generic ARM64 UEFI, Raspberry Pi, Apple Silicon = separate boot chains
- Effort: 4–8h (generic ARM64), 8–16h (RPi), 20–40h (Apple Silicon)
- Recommendation: Start with native ARM64 build server, generic ARM64 first; defer Apple Silicon
1. Cross-Compilation vs Native Builds
| Factor | Cross-Compile (x86_64) | Native (ARM64) |
|---|---|---|
| Speed | 3–5× slower (QEMU) | 1× baseline |
| Reliability | Potential edge cases | Most reliable |
| Setup | Moderate (qemu-user-static) | Simple |
| Cost | $0 (use existing server) | €10–500/mo (Hetzner ARM64 VPS) |
| Best for | Experimentation | Production releases |
Recommendation: Native ARM64 build server (Hetzner CAX21 ~€10/mo)
2. Boot Methods by Target
Generic ARM64 (UEFI servers/laptops)
- Boot: UEFI firmware → GRUB2 EFI → kernel
- Package:
grub-efi-arm64 - Complexity: Medium
- live-build:
--bootloader grub-efi-arm64 --arch arm64
Raspberry Pi 4/5
- Boot: GPU firmware → EEPROM → config.txt → kernel
- Packages:
raspberrypi-kernel,raspberrypi-bootloader,raspberrypi-firmware - Image:
.img(NOT ISO) — FAT32 boot + ext4 root - Complexity: High
Apple Silicon
- Boot: Asahi Linux m1n1 → custom kernel
- Status: NOT in mainline Debian
- Recommendation: Defer to v2.2+
3. Implementation Plan
Phase 1: Generic ARM64 (Week 1, 4–8 hours)
- Add
--arch arm64parameter tobuild-unified.sh - Conditional bootloader: GRUB-EFI for ARM64, syslinux for x86
- Create
9999-arm64-efi-grub.hook.binary - Test on native ARM64 server
- Publish ARM64 ISO
# build-unified.sh additions
ARCH="${1:-amd64}"
if [[ "$ARCH" == "arm64" ]]; then
LB_BOOTLOADER="grub-efi-arm64"
LB_KERNEL_FLAVOUR="generic"
fi
Phase 2: Raspberry Pi (Week 2–3, 8–16 hours)
- Add
--target rpi5parameter - RPi firmware hook + config.txt generation
.imgoutput instead of ISO (--image-type hdd)- Test on Pi 5 hardware
- RPi installation guide on alfredlinux.com/docs
Phase 3: CI/CD (Week 3–4)
- Permanent ARM64 build server
- Nightly builds via cron
- Auto-upload to alfredlinux.com
- Multi-arch download page
4. Effort Estimates
| Target | Hours | Prerequisites | Status |
|---|---|---|---|
| Generic ARM64 UEFI | 4–8 | GRUB-EFI knowledge, ARM64 server | Ready to start |
| Raspberry Pi 4/5 | 8–16 | RPi hardware, firmware blobs | Phase 2 |
| Apple Silicon | 20–40+ | Asahi Linux partnership | Deferred |
| CI/CD pipeline | 6–12 | ARM64 server, testing infra | Phase 3 |
5. Checklist
Phase 1: Generic ARM64
- Update build-unified.sh for
--arch arm64 - Add GRUB-EFI ARM64 conditional
- Create ARM64 binary hook
- Test on ARM64 server
- Publish test ISO
Phase 2: Raspberry Pi
- Add
--target rpi5support - RPi firmware hook
- .img partition layout
- Test on Pi 5 hardware
- RPi docs page
Phase 3: Automation
- ARM64 build server setup
- Nightly build cron
- Auto-upload pipeline
- Multi-arch download page
6. Release Plan
| Release | Architecture | Boot | Format |
|---|---|---|---|
| v2.0 RC3 | x86_64 | BIOS (syslinux) | ISO |
| v2.0 RC4+ | x86_64 + ARM64 | BIOS + UEFI | ISO |
| v2.1 | + Raspberry Pi | RPi firmware | .img |
| v2.2+ | + Apple Silicon (maybe) | Asahi m1n1 | TBD |
Status: Ready for Phase 1 | Updated: April 6, 2026