From 21b0e1e576d70a569c54241b3728ff6721813d66 Mon Sep 17 00:00:00 2001 From: sc74 Date: Sat, 9 May 2026 19:22:55 +0200 Subject: [PATCH 1/5] Workflow for creating the astroarch image from an aarch64 machine --- .../workflows/astroarch_build_for_aarch64.yml | 135 ++++++++ ci/astroarch_build_for_aarch64.sh | 307 ++++++++++++++++++ 2 files changed, 442 insertions(+) create mode 100644 .github/workflows/astroarch_build_for_aarch64.yml create mode 100644 ci/astroarch_build_for_aarch64.sh diff --git a/.github/workflows/astroarch_build_for_aarch64.yml b/.github/workflows/astroarch_build_for_aarch64.yml new file mode 100644 index 0000000..099b1aa --- /dev/null +++ b/.github/workflows/astroarch_build_for_aarch64.yml @@ -0,0 +1,135 @@ +########################################################################################################################### +# +# Install the runner on your Astroarch machine following the instructions on GitHub +# Install Docker on your Astroarch machine: +# - paru -Sy docker +# - sudo systemctl enable docker.service +# - sudo systemctl start docker.service +# Add Docker to astronaut +# - sudo usermod -a -G docker astronaut +# - reboot +# Launch the runner +# The generated image is stored in the runner's /actions-runner/_work/astroarch folder +# Don't forget to change the file's ownership +# +########################################################################################################################### + +name: Build astroarch + +on: + workflow_dispatch: + push: + branches: + - astroarc_build + +jobs: + build-astroarch: + name: "Build" + runs-on: ["self-hosted"] + permissions: + contents: write + container: + image: ghcr.io/devducks/archlinuxarm:latest + options: --privileged + timeout-minutes: 60 + steps: + - name: Bootstrap pacman keyring + run: pacman-key --init && pacman-key --populate archlinuxarm && pacman -Syu --noconfirm + + - uses: actions/checkout@v4 + + - name: Read version + id: version + run: | + VERSION=$(cat configs/.astroarch.version | tr -d '[:space:]') + DATE=$(date +'%Y%m%d') + FILENAME="astroarch-${VERSION}-${DATE}" + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "date=$DATE" >> $GITHUB_OUTPUT + echo "filename=$FILENAME" >> $GITHUB_OUTPUT + + - name: astroarch + run: bash ci/astroarch_build_for_aarch64.sh + + - name: Install image build tools + run: | + pacman -S parted dosfstools multipath-tools pigz --noconfirm + curl -fsSL https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh \ + -o /usr/local/bin/pishrink.sh + chmod +x /usr/local/bin/pishrink.sh + + - name: Create disk image + run: | + IMAGE="/__w/astroarch/${{ steps.version.outputs.filename }}.img" + + rm -f "$IMAGE" "${IMAGE}.gz" + + fallocate -l 15G "$IMAGE" + + LOOP=$(losetup -f --show "$IMAGE") + echo "Loop device: $LOOP" + + parted -s "$LOOP" mklabel msdos + parted -s "$LOOP" mkpart primary fat32 4MiB 537MiB + parted -s "$LOOP" set 1 boot on + parted -s "$LOOP" mkpart primary ext4 537MiB 100% + + kpartx -av "$LOOP" + sleep 1 + + LOOPNAME=$(basename "$LOOP") + PART_BOOT="/dev/mapper/${LOOPNAME}p1" + PART_ROOT="/dev/mapper/${LOOPNAME}p2" + + ls "$PART_BOOT" "$PART_ROOT" + + mkfs.vfat -F32 -n BOOT "$PART_BOOT" + mkfs.ext4 -L ROOT -U c2cea082-7f3e-43e2-b6a1-0c8540d350cc "$PART_ROOT" + + mkdir -p /mnt/root + mount "$PART_ROOT" /mnt/root + mkdir -p /mnt/root/boot + mount "$PART_BOOT" /mnt/root/boot + + rsync -aAX \ + --exclude=/proc \ + --exclude=/sys \ + --exclude=/dev \ + --exclude=/run \ + --exclude=/tmp \ + --exclude=/mnt \ + --exclude=/__w \ + --exclude=/__e \ + --exclude=/github \ + --exclude=/var/cache/pacman/pkg \ + --exclude=/var/log \ + --exclude=/root/.bash_history \ + / /mnt/root/ + + mkdir -p /mnt/root/{proc,sys,dev,run,tmp} + + systemctl disable --root=/mnt/root systemd-timesyncd.service + + systemctl enable --root=/mnt/root \ + sddm.service \ + novnc.service \ + dhcpcd.service \ + NetworkManager.service \ + avahi-daemon.service \ + nmb.service \ + smb.service \ + xrdp.service \ + xrdp-sesman.service \ + chronyd.service \ + x0vncserver.service \ + create_ap.service \ + resize_once.service + + umount /mnt/root/boot + umount /mnt/root + + kpartx -dv "$LOOP" + losetup -d "$LOOP" + + pishrink.sh -za "$IMAGE" + diff --git a/ci/astroarch_build_for_aarch64.sh b/ci/astroarch_build_for_aarch64.sh new file mode 100644 index 0000000..65844cb --- /dev/null +++ b/ci/astroarch_build_for_aarch64.sh @@ -0,0 +1,307 @@ +##################################################### +# +# Script for the runner workflow on Astroarch +# +##################################################### + + +# Exit on the first error, if any +set -e + +# Grab the OS architecture for further forked logic +ARCH=$(uname -m) + +# Parallelize pacman download to 5 and use pacman as progress bar + sed -i 's|#ParallelDownloads = 5|ParallelDownloads = 5|g' /etc/pacman.conf + sed -i 's|ParallelDownloads = 5|ParallelDownloads = 5\nILoveCandy|g' /etc/pacman.conf + sed -i 's|ParallelDownloads = 5|ParallelDownloads = 5\nDisableDownloadTimeout|g' /etc/pacman.conf + sed -i 's|\[core\]|\[astromatto\]\nSigLevel = Optional TrustAll\nServer = http://astroarch.astromatto.com:9000/$arch\n\n\[core\]|' /etc/pacman.conf + +# Bootstrap pacman-key +pacman-key --init && pacman-key --populate archlinuxarm + +# Update all packages now +pacman -Syu --noconfirm + +# Install just 2 packages for the next actions +# list of commented locales +pacman -S wget sudo git --noconfirm + +# create user astro with home, add it to wheel +useradd -G wheel -m astronaut +echo "astronaut:astro" | chpasswd + +# Pull the brain repo, this will be used for scripting out the final image +su astronaut -c "git clone https://github.com/devDucks/astroarch.git /home/astronaut/.astroarch" + +# Uncomment en_US UTF8 and generate locale files +sed -i -e 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen +locale-gen +echo "LANG=en_US.UTF-8" > /etc/locale.conf +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 + +# Prevent PackageKit hook from failing in container (no D-Bus) +printf '#!/bin/sh\nexit 0\n' > /usr/local/bin/pkcon +chmod +x /usr/local/bin/pkcon + +# Packages +pacman -Rdd linux-aarch64 --noconfirm +pacman -Sy linux-rpi linux-rpi-headers linux-firmware --noconfirm + +pacman -Sy base-devel pipewire-jack gnu-free-fonts wireplumber \ + zsh plasma-desktop sddm networkmanager xf86-video-dummy \ + network-manager-applet networkmanager-qt xorg konsole \ + gpsd breeze-icons hicolor-icon-theme knewstuff tigervnc \ + knotifyconfig kplotting qt6-datavis3d qt5-quickcontrols \ + qt6-websockets qtkeychain-qt6 stellarsolver xf86-video-fbdev \ + xplanet plasma-nm dhcp dnsmasq kate plasma-systemmonitor \ + dolphin uboot-tools usbutils cloud-guest-utils samba paru \ + websockify novnc astrometry.net gsc kstars phd2 packagekit-qt6 \ + indi-3rdparty-libs indi-3rdparty-drivers linux-rpi linux-rpi-headers \ + i2c-tools indiserver-ui astro_dmx openssl firefox chrony \ + ksystemlog discover kwalletmanager kgpg qt6-serialbus \ + qt6-serialport qt6ct udisks2 xorg-fonts-misc fuse2 \ + fortune-mod cowsay pacman-contrib arandr neofetch \ + astromonitor kscreen sddm-kcm flatpak plasma-x11-session \ + kdialog jq astroarch-onboarding dhcpcd iw rsync --noconfirm --ask 4 + + +# Allow wheelers to sudo without password to install packages +sed -i 's/# %wheel ALL=(ALL:ALL) NOPASSWD: ALL/%wheel ALL=(ALL:ALL) NOPASSWD: ALL/g' /etc/sudoers + +# Add astronaut to uucp for serial device ownership +usermod -aG uucp,sys,network,power,audio,input,lp,storage,video,users astronaut + +# Add sddm user to video group +usermod -aG video sddm + +# Allow x11 forwarding over SSH +sed -i 's/#AllowTcpForwarding yes/AllowTcpForwarding yes/g' /etc/ssh/sshd_config +sed -i 's/#X11DisplayOffset 10/X11DisplayOffset 10/g' /etc/ssh/sshd_config +sed -i 's/#X11UseLocalhost yes/X11UseLocalhost yes/g' /etc/ssh/sshd_config + +# Install AUR packages +su astronaut -c "paru -Sy xrdp xorgxrdp --noconfirm" + +# Make all necessary folders +mkdir /etc/sddm.conf.d +su astronaut -c "mkdir -p /home/astronaut/.config" +su astronaut -c "mkdir -p /home/astronaut/Pictures/wallpapers" +su astronaut -c "mkdir -p /home/astronaut/Desktop" + +# install oh-my-zsh and set the default shell to zsh +chsh -s /usr/bin/zsh astronaut +rm /home/astronaut/.bash* +cd /home/astronaut +ZSH=/home/astronaut/.oh-my-zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended +chown -R astronaut:astronaut /home/astronaut/.oh-my-zsh/ + +# Set the samba pass +ln -s /home/astronaut/.astroarch/configs/smb.conf /etc/samba/smb.conf +(echo astro; echo astro) | smbpasswd -s -a astronaut + +# Link a zsh config for astronaut +ln -s /home/astronaut/.astroarch/configs/.zshrc /home/astronaut/.zshrc + +# NetworkManager WiFi Power Saving +ln -s /home/astronaut/.astroarch/configs/default-wifi-powersave-off.conf /etc/NetworkManager/conf.d + +# Remove eventually existing systemd configs we are going to substitute +rm -f /usr/lib/systemd/system/novnc.service + +# Synchronize the system time with the GPS if there is no Real Time Clock (RTC) or network connection to the Raspberry Pi +sed -i '$a\refclock SHM 0 offset 0.5 delay 0.2 refid NMEA' /etc/chrony.conf +sed -i '$a\driftfile /var/lib/chrony/drift' /etc/chrony.conf + +# Symlink now files +ln -s /home/astronaut/.astroarch/configs/kde_settings.conf /etc/sddm.conf.d/kde_settings.conf +ln -s /home/astronaut/.astroarch/systemd/novnc.service /usr/lib/systemd/system/novnc.service +ln -s /home/astronaut/.astroarch/systemd/x0vncserver.service /etc/systemd/system/x0vncserver.service +ln -s /home/astronaut/.astroarch/systemd/resize_once.service /etc/systemd/system/resize_once.service +ln -s /home/astronaut/.astroarch/configs/.astroarch.version /home/astronaut/.astroarch.version +ln -s /home/astronaut/.astroarch/systemd/x0vncserver-xrdp.service /etc/systemd/user/x0vncserver-xrdp.service + +# Copy xorg config +cp /home/astronaut/.astroarch/configs/xorg.conf /etc/X11/ + +# Copy v3d X config +cp /home/astronaut/.astroarch/configs/99-v3d.conf /etc/X11/xorg.conf.d + +# Copy udev rule to disable wifi power saving +cp /home/astronaut/.astroarch/configs/81-wifi-powersave.rules /etc/udev/rules.d/81-wifi-powersave.rules + +# Udev rule to force the brcmfmac driver to keep the name “wlan0” for Wi-Fi +cp /home/astronaut/.astroarch/configs/99-brcmfmac.rules /etc/udev/rules.d/99-brcmfmac.rules + +# Polkit rules go here +cp /home/astronaut/.astroarch/configs/99-polkit-power.rules /etc/polkit-1/rules.d/ +cp /home/astronaut/.astroarch/configs/50-udiskie.rules /etc/polkit-1/rules.d/ +cp /home/astronaut/.astroarch/configs/50-networkmanager.rules /etc/polkit-1/rules.d/ + +# Copy the systemd unit to create the AP the first boot +cp /home/astronaut/.astroarch/systemd/create_ap.service /etc/systemd/system/ + +# Enable xrdp +mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.sh-old +ln -sfn /home/astronaut/.astroarch/configs/startwm.sh /etc/xrdp/startwm.sh +ln -sfn /home/astronaut/.astroarch/configs/Xwrapper.config /etc/xrdp/Xwrapper.config +# Add user xrdp +useradd xrdp -d / -c 'xrdp daemon' -s /usr/sbin/nologin +# Set user in xrdp.ini +sed -i '/#runtime_user=xrdp/s/^#//' /etc/xrdp/xrdp.ini +sed -i '/#runtime_group=xrdp/s/^#//' /etc/xrdp/xrdp.ini +sed -i 's/bitmap_cache=true/bitmap_cache=false/g' /etc/xrdp/xrdp.ini +# Set user in xrdp.sesman.ini +sed -i '/#SessionSockdirGroup=xrdp/s/^#//' /etc/xrdp/sesman.ini +sed -i '/TerminalServerUsers=tsusers/s/^/#/' /etc/xrdp/sesman.ini +# Set permissions +chown root:xrdp /etc/xrdp/rsakeys.ini +chmod u=rw,g=r /etc/xrdp/rsakeys.ini +chmod 755 /etc/xrdp/cert.pem +chmod 755 /etc/xrdp/key.pem +# Disables the display's power management features +sed -i 's/Option "DPMS"/& "false"/' /etc/X11/xrdp/xorg.conf +# Disabling compression can speed up local connections on low-power devices +sed -i 's|bitmap_compression=true|bitmap_compression=false|g' /etc/xrdp/xrdp.ini +sed -i 's|bulk_compression=true|bulk_compression=false|g' /etc/xrdp/xrdp.ini +# Improve xrdp & network +cp /home/astronaut/.astroarch/configs/99-sysctl.conf /etc/sysctl.d + +# +su astronaut -c "cat </home/astronaut/.config/plasmanotifyrc +[DoNotDisturb] +WhenFullscreen=false +WhenScreensMirrored=false +EOF" + +# Copy the config for kwinrc +su astronaut -c "cp /home/astronaut/.astroarch/configs/kwinrc /home/astronaut/.config" + +# Create the folder (owned by astronaut) to store index files that requires no root access +su astronaut -c "mkdir -p /home/astronaut/.local/share/kstars/astrometry" + +# Take sudoers to the original state +sed -i 's/%wheel ALL=(ALL:ALL) NOPASSWD: ALL/# %wheel ALL=(ALL:ALL) NOPASSWD: ALL/g' /etc/sudoers +sed -i 's/# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/g' /etc/sudoers + +# Copy wallpapers +su astronaut -c "cp /home/astronaut/.astroarch/wallpapers/bubble.jpg /home/astronaut/Pictures/wallpapers" +su astronaut -c "cp /home/astronaut/.astroarch/wallpapers/south-milky.jpg /home/astronaut/Pictures/wallpapers" +su astronaut -c "cp /home/astronaut/.astroarch/wallpapers/pacman.jpg /home/astronaut/Pictures/wallpapers" + +# Autostart AstroArch-onboarding +su astronaut -c "mkdir /home/astronaut/.config/autostart" + +# Copy desktop icons +su astronaut -c "ln -snf /usr/share/applications/org.kde.konsole.desktop /home/astronaut/Desktop/Konsole" +su astronaut -c "ln -snf /usr/share/applications/org.kde.kstars.desktop /home/astronaut/Desktop/Kstars" +su astronaut -c "ln -snf /usr/share/applications/astrodmx_capture.desktop /home/astronaut/Desktop/AstroDMx_capture" +su astronaut -c "ln -snf /usr/share/applications/phd2.desktop /home/astronaut/Desktop/PHD2" +su astronaut -c "ln -snf /home/astronaut/.astroarch/desktop/update-astroarch.desktop /home/astronaut/Desktop/update-astroarch" +su astronaut -c "ln -snf /home/astronaut/.astroarch/desktop/astroarch-tweak-tool.desktop /home/astronaut/Desktop/AstroArch-Tweak-Tool" +su astronaut -c "ln -snf /usr/share/astroarch_onboarding/desktop/AstroArch-onboarding.desktop /home/astronaut/Desktop/AstroArch-onboarding" +su astronaut -c "cp /usr/share/astroarch_onboarding/desktop/AstroArch-onboarding-x11.desktop /home/astronaut/.config/autostart/AstroArch-onboarding-x11.desktop" +su astronaut -c "cp /usr/share/astroarch_onboarding/desktop/AstroArch-onboarding-xrdp.desktop /home/astronaut/.config/autostart/AstroArch-onboarding-xrdp.desktop" + +# Make the icons executable so there will be no ! on the first boot +chmod +x /home/astronaut/Desktop/update-astroarch +chmod +x /home/astronaut/Desktop/AstroArch-onboarding +chmod +x /home/astronaut/Desktop/AstroArch-Tweak-Tool + +# Remove actual novnc icons +rm -r /usr/share/webapps/novnc/app/images/icons/* + +# Copy custom novnc icons folder +cp -r /home/astronaut/.astroarch/assets/icons/* /usr/share/webapps/novnc/app/images/icons + +# config hostnames +echo "astroarch" > /etc/hostname +echo "127.0.0.1 localhost" > /etc/hosts +echo "127.0.1.1 astroarch" > /etc/hosts + +# Copy the screensaver config, by default it is off +su astronaut -c "cp /home/astronaut/.astroarch/configs/kscreenlockerrc /home/astronaut/.config/kscreenlockerrc" + +# Set a standard TZ to avoid breaking plasma clock widget +ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime +echo "Europe/London" > /etc/timezone + +# If we are on a raspberry let's adjust /boot/config.txt and /boot/cmdline.txt +cp /home/astronaut/.astroarch/configs/config.txt /boot/config.txt +cp /home/astronaut/.astroarch/configs/cmdline.txt /boot/cmdline.txt + +install -o root -g root -m 644 /home/astronaut/.astroarch/configs/kdeglobals /etc/xdg/ + +# Config plasma theme AstroArch +cp -r /home/astronaut/.astroarch/configs/look-and-feel/astroarch /usr/share/plasma/look-and-feel/ +cp -r /home/astronaut/.astroarch/configs/layout-templates/astroarchPanel /usr/share/plasma/layout-templates/ + +# Astrometry index files +mkdir -p /home/astronaut/.local/share/kstars/astrometry +wget -P /home/astronaut/.local/share/kstars/astrometry https://data.astrometry.net/4100/index-41{07..19}.fits +wget -P /home/astronaut/.local/share/kstars/astrometry https://data.astrometry.net/4200/index-4205-{00..11}.fits +wget -P /home/astronaut/.local/share/kstars/astrometry https://data.astrometry.net/4200/index-4206-{00..11}.fits +wget -P /home/astronaut/.local/share/kstars/astrometry https://data.astrometry.net/4200/index-4207-{00..11}.fits +wget -P /home/astronaut/.local/share/kstars/astrometry https://data.astrometry.net/4200/index-42{08..19}.fits +wget -P /home/astronaut/.local/share/kstars/astrometry https://portal.nersc.gov/project/cosmo/temp/dstn/index-5200/LITE/index-5205-{00..47}.fits +wget -P /home/astronaut/.local/share/kstars/astrometry https://portal.nersc.gov/project/cosmo/temp/dstn/index-5200/LITE/index-5206-{00..47}.fits + +# Add user astronaut-kiosk +useradd -G wheel -m astronaut-kiosk +echo "astronaut-kiosk:astro" | chpasswd +usermod -aG uucp,sys,network,power,audio,input,lp,storage,video,users,astronaut astronaut-kiosk +usermod -aG astronaut-kiosk astronaut +chmod -R 777 /home/astronaut-kiosk +su astronaut-kiosk -c "LC_ALL=C.UTF-8 xdg-user-dirs-update --force" +mkdir -p /home/astronaut-kiosk/.local/{bin,share,state} + +## Add the kiosk session ## +# New Xrdp launcher for astronaut and astronaut-kiosk sessions +cp /home/astronaut/.astroarch/configs/kiosk/45-allow-shutdown-xrdp.rules /etc/polkit-1/rules.d/ +cp /home/astronaut/.astroarch/configs/startwm.sh /home/astronaut-kiosk/ +cp /home/astronaut/.astroarch/configs/kiosk/.xinitrc /home/astronaut-kiosk/ + +# Copy wallpapers +su astronaut-kiosk -c "mkdir -p /home/astronaut-kiosk/Pictures/wallpapers" +cp /home/astronaut/.astroarch/configs/kiosk/astroarch-kiosk.png /home/astronaut-kiosk/Pictures/wallpapers/ + +# Add menu +cp -r /home/astronaut/.astroarch/configs/kiosk/menus /home/astronaut-kiosk/.config/ + +# Copy kstars folders +cp -R /home/astronaut/.local/share/kstars /home/astronaut-kiosk/.local/share/ + +su astronaut-kiosk -c "cat </home/astronaut-kiosk/.config/plasmanotifyrc +[DoNotDisturb] +WhenFullscreen=false +WhenScreensMirrored=false +EOF" + +# Adjustment of user rights +chmod -R 777 /home/astronaut-kiosk +chown -R astronaut-kiosk:astronaut-kiosk /home/astronaut-kiosk + +# Minimal desktop +ln -snf /home/astronaut/.astroarch/desktop/astroarch-config-kiosk.desktop /home/astronaut-kiosk/Desktop/Astroarch-config-Kiosk +ln -snf /home/astronaut/.astroarch/desktop/org.kde.konsole.desktop /home/astronaut-kiosk/Desktop/Konsole + +# Allows access to the astronaut group +chmod -R 770 /home/astronaut + +# Copy the screensaver config, by default it is off +su astronaut-kiosk -c "cp /home/astronaut/.astroarch/configs/kscreenlockerrc /home/astronaut-kiosk/.config/kscreenlockerrc" + +# Disable Kwallet by default +su astronaut -c "echo $'[Wallet]\nEnabled=false' > /home/astronaut/.config/kwalletrc" + +# Increases the xrdp buffer +sed -i 's|#tcp_send_buffer_bytes=32768|tcp_send_buffer_bytes= 4194304|g' /etc/xrdp/xrdp.ini + +# Modprobe brcmfmac +bash -c "echo \"options brcmfmac feature_disable=0x282000\" > /etc/modprobe.d/brcmfmac.conf" + +# Fix 'Insecure completion-dependent directories detected' +chmod 755 /home/astronaut/.astroarch +chmod 755 /home/astronaut/.oh-my-zsh + From 33cea70deca462a468f0a38bd242ac4d29bea681 Mon Sep 17 00:00:00 2001 From: sc74 Date: Sat, 9 May 2026 19:36:53 +0200 Subject: [PATCH 2/5] astroarch_build1 --- .github/workflows/astroarch_build_for_aarch64.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/astroarch_build_for_aarch64.yml b/.github/workflows/astroarch_build_for_aarch64.yml index 099b1aa..8fed8a4 100644 --- a/.github/workflows/astroarch_build_for_aarch64.yml +++ b/.github/workflows/astroarch_build_for_aarch64.yml @@ -18,9 +18,11 @@ name: Build astroarch on: workflow_dispatch: + branches: + - astroarch_build push: branches: - - astroarc_build + - astroarch_build jobs: build-astroarch: From 39be50796a72763d488c5042de3b5c940f445482 Mon Sep 17 00:00:00 2001 From: sc74 Date: Sat, 9 May 2026 20:13:49 +0200 Subject: [PATCH 3/5] astroarch_build2 --- .../workflows/astroarch_build_for_aarch64.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/astroarch_build_for_aarch64.yml b/.github/workflows/astroarch_build_for_aarch64.yml index 8fed8a4..93ed396 100644 --- a/.github/workflows/astroarch_build_for_aarch64.yml +++ b/.github/workflows/astroarch_build_for_aarch64.yml @@ -17,12 +17,10 @@ name: Build astroarch on: - workflow_dispatch: - branches: - - astroarch_build push: branches: - astroarch_build + workflow_dispatch: jobs: build-astroarch: @@ -133,5 +131,17 @@ jobs: kpartx -dv "$LOOP" losetup -d "$LOOP" - pishrink.sh -za "$IMAGE" + pishrink.sh -a "$IMAGE" + + LOOP2=$(losetup -f --show "$IMAGE") + kpartx -av "$LOOP2" + sleep 1 + LOOPNAME2=$(basename "$LOOP2") + mount "/dev/mapper/${LOOPNAME2}p2" /mnt/root + rm -f /mnt/root/etc/rc.local + umount /mnt/root + kpartx -dv "$LOOP2" + losetup -d "$LOOP2" + + gzip -1 -f "$IMAGE" From 17524b8ea72468683bd2b5a4fa7241cae8301616 Mon Sep 17 00:00:00 2001 From: sc74 Date: Sat, 9 May 2026 21:04:56 +0200 Subject: [PATCH 4/5] Branch main --- .github/workflows/astroarch_build_for_aarch64.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/astroarch_build_for_aarch64.yml b/.github/workflows/astroarch_build_for_aarch64.yml index 93ed396..21b9211 100644 --- a/.github/workflows/astroarch_build_for_aarch64.yml +++ b/.github/workflows/astroarch_build_for_aarch64.yml @@ -19,7 +19,7 @@ name: Build astroarch on: push: branches: - - astroarch_build + - main workflow_dispatch: jobs: @@ -139,6 +139,7 @@ jobs: LOOPNAME2=$(basename "$LOOP2") mount "/dev/mapper/${LOOPNAME2}p2" /mnt/root rm -f /mnt/root/etc/rc.local + rm -f /.dockerenv umount /mnt/root kpartx -dv "$LOOP2" losetup -d "$LOOP2" From 9ebd6d8b9f2a19068813e52a878472dfc9815c16 Mon Sep 17 00:00:00 2001 From: sc74 Date: Tue, 19 May 2026 13:27:16 +0200 Subject: [PATCH 5/5] Forget the symbolic link to the display manager --- ci/astroarch_build_for_aarch64.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/astroarch_build_for_aarch64.sh b/ci/astroarch_build_for_aarch64.sh index 65844cb..7964b28 100644 --- a/ci/astroarch_build_for_aarch64.sh +++ b/ci/astroarch_build_for_aarch64.sh @@ -76,6 +76,9 @@ usermod -aG uucp,sys,network,power,audio,input,lp,storage,video,users astronaut # Add sddm user to video group usermod -aG video sddm +# Set symlink for display manager +ln -s /usr/lib/systemd/system/sddm.service /etc/systemd/system/display-manager.service + # Allow x11 forwarding over SSH sed -i 's/#AllowTcpForwarding yes/AllowTcpForwarding yes/g' /etc/ssh/sshd_config sed -i 's/#X11DisplayOffset 10/X11DisplayOffset 10/g' /etc/ssh/sshd_config