feat: add ALARM rootfs build scripts replacing Alpine
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
f40544bdec
commit
48a9c9c956
|
|
@ -0,0 +1,62 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# This script runs inside an aarch64 Arch Linux container and creates a
|
||||||
|
# rootfs tarball with X11, RetroArch, and all dependencies for ES-DE.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
target="$(mktemp -d)"
|
||||||
|
trap 'rm -rf "$target"' 0
|
||||||
|
|
||||||
|
# Initialize pacman keyring
|
||||||
|
pacman-key --init
|
||||||
|
pacman-key --populate archlinuxarm || true
|
||||||
|
|
||||||
|
# Install base system + emulation stack
|
||||||
|
pacstrap -c "$target" \
|
||||||
|
base \
|
||||||
|
linux-firmware \
|
||||||
|
networkmanager \
|
||||||
|
openssh \
|
||||||
|
sudo \
|
||||||
|
mesa \
|
||||||
|
xorg-server \
|
||||||
|
xorg-xinit \
|
||||||
|
xf86-video-fbdev \
|
||||||
|
retroarch \
|
||||||
|
retroarch-assets \
|
||||||
|
libretro-core-info \
|
||||||
|
exfatprogs \
|
||||||
|
fuse2 \
|
||||||
|
wget \
|
||||||
|
unzip \
|
||||||
|
htop \
|
||||||
|
nano
|
||||||
|
|
||||||
|
# Configure hostname
|
||||||
|
echo "h700" > "$target/etc/hostname"
|
||||||
|
|
||||||
|
# Configure locale
|
||||||
|
echo "en_US.UTF-8 UTF-8" > "$target/etc/locale.gen"
|
||||||
|
chroot "$target" locale-gen
|
||||||
|
echo "LANG=en_US.UTF-8" > "$target/etc/locale.conf"
|
||||||
|
|
||||||
|
# Enable services
|
||||||
|
chroot "$target" systemctl enable NetworkManager
|
||||||
|
chroot "$target" systemctl enable sshd
|
||||||
|
|
||||||
|
# Create emulation user
|
||||||
|
chroot "$target" useradd -m -G wheel,video,audio,input -s /bin/bash emulation
|
||||||
|
echo "emulation:emulation" | chroot "$target" chpasswd
|
||||||
|
|
||||||
|
# Allow wheel group sudo
|
||||||
|
echo "%wheel ALL=(ALL:ALL) NOPASSWD: ALL" > "$target/etc/sudoers.d/wheel"
|
||||||
|
|
||||||
|
# Set DNS fallback
|
||||||
|
echo "nameserver 8.8.8.8" > "$target/etc/resolv.conf"
|
||||||
|
|
||||||
|
# MOTD
|
||||||
|
cat > "$target/etc/motd" << '__EOF__'
|
||||||
|
ALARM H700 Emulation Image
|
||||||
|
SSH is available. Default user: emulation / emulation
|
||||||
|
__EOF__
|
||||||
|
|
||||||
|
tar cf "${1:-/tmp/rootfs.tar}" -C "$target" .
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Build an Arch Linux ARM rootfs tarball inside a podman aarch64 container.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
outdir="${1:-./artifacts}"
|
||||||
|
|
||||||
|
podman run --arch=aarch64 --security-opt=label=disable \
|
||||||
|
-v "$(realpath "$outdir"):/artifacts" \
|
||||||
|
-v "$(realpath ./scripts/_build-alarm.sh):/usr/local/bin/_build-alarm.sh" \
|
||||||
|
--rm "docker.io/lopsided/archlinux:latest" \
|
||||||
|
bash /usr/local/bin/_build-alarm.sh /artifacts/rootfs.tar
|
||||||
Loading…
Reference in New Issue