From 00ccf3654348fad519269f626a329c3c1d799cd4 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Sat, 2 Apr 2022 16:47:27 -0400 Subject: [PATCH] Switch to dbus-broker. --- build/build-stormux.sh | 48 +++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/build/build-stormux.sh b/build/build-stormux.sh index 2f41472..5796716 100755 --- a/build/build-stormux.sh +++ b/build/build-stormux.sh @@ -50,9 +50,9 @@ help() { declare -A command=( [h]="This help screen." [l:]="Language default is en_US." - [n:]="Image name, default is stormux-pi<3|4>-.img" + [n:]="Image name, default is stormux-pi<32|64>-.img" [s:]="image size in GB, default is 4." - [v:]="Version of the Raspberry Pi for which you are building. (3|4 default)" + [v:]="Version of the Raspberry Pi for which you are building. (32|64) default is 64." ) # Convert the keys of the associative array to a format usable by getopts @@ -76,10 +76,10 @@ while getopts "${args}" i ; do fi ;; v) - if [[ "${OPTARG}" =~ ^[34]$ ]]; then + if [[ "${OPTARG}" =~ ^32|64$ ]]; then imageVersion="${OPTARG}" else - echo "Image version must be 3 for the Raspberry Pi 3, or 4 for the Raspberry Pi 4 (default)." + echo "Image version must be 32 for 32 bit (armv7h), or 64 for 64 bit (aarch64 default)." exit 1 fi ;; @@ -90,9 +90,12 @@ while getopts "${args}" i ; do done # make sure variables are set, or use defaults. -export imageVersion="${imageVersion:-4}" +export imageVersion="${imageVersion:-64}" export imageSize="${imageSize:-4G}" -export imageName="${imageName:-stormux-pi${imageVersion}-$(date '+%Y-%m-%d').img}" +imageName="${imageName:-stormux-pi4-${imageVersion}-$(date '+%Y-%m-%d').img}" +imageName="${imageName/-64-/-aarch64-}" +imageName="${imageName/-32-/-armv7h-}" +export imageName export imageLanguage="${imageLanguage:-en_US.UTF-8}" # Make sure the image file doesn't exist. @@ -127,10 +130,8 @@ done # Url for the image to be downloaded. -#url[3]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz" -url[3]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz" -url[4]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz" -#url[4]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-armv7-latest.tar.gz" +url[32]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-armv7-latest.tar.gz" +url[64]="http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz" fallocate -l "$imageSize" "$imageName" loopdev="$(losetup --find --show "${imageName}")" @@ -149,7 +150,15 @@ arch-chroot /mnt << EOF # set up pacman pacman-key --init pacman-key --populate archlinuxarm -pacman -Syyu --needed --noconfirm \ +pacman -Syy +# Change kernels for aarch64 +if [[ "$imageVersion" == "64" ]]; then +pacman -R --noconfirm linux-aarch64 uboot-raspberrypi +pacman -S --noconfirm linux-rpi +fi + +# Install packages +pacman -Su --needed --noconfirm \ alsa-firmware \ alsa-utils \ base \ @@ -159,6 +168,7 @@ pacman -Syyu --needed --noconfirm \ bluez-utils \ brltty \ cronie \ + dbus-broker \ espeak-ng \ git \ magic-wormhole \ @@ -181,9 +191,6 @@ pacman -Syyu --needed --noconfirm \ xdg-user-dirs \ xdg-utils -# Change kernels -pacman -R --noconfirm linux-aarch64 uboot-raspberrypi -pacman -S --noconfirm linux-rpi # set the language sed -i "s/#$imageLanguage/$imageLanguage/" /etc/locale.gen echo "LANG=$imageLanguage" > /etc/locale.conf @@ -212,23 +219,26 @@ cd yay makepkg -si --noconfirm cd ~ rm -rf yay -yay -S --noconfirm fenrir-git growpartfs log2ram +yay -S --removemake --noconfirm fenrir-git growpartfs log2ram rm -rf .cache/yay /usr/share/fenrirscreenreader/tools/configure_pipewire.sh exit # Enable linger so that hopefully sound will start at login. mkdir -p /var/lib/systemd/linger touch /var/lib/systemd/linger/stormux -systemctl --global enable pipewire.service pipewire-pulse.service +systemctl --global enable dbus-broker.service pipewire.service pipewire-pulse.service /usr/share/fenrirscreenreader/tools/configure_pipewire.sh # Configure sudo for group wheel, remove nopasswd for the stormux user echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel # Set the hostname echo stormux > /etc/hostname -# Enable services -systemctl enable brltty.path cronie.service fenrirscreenreader.service log2ram.service NetworkManager.service ntpd.service +# Configure services +systemctl enable brltty.path cronie.service dbus-broker.service fenrirscreenreader.service log2ram.service NetworkManager.service ntpd.service +systemctl disable dbus.service +# Cleanup packages +pacman -Sc --noconfirm -# Update fstab for Raspberry Pi 4. +# Update fstab for Raspberry Pi 4. Not needed until linux-aarch64 works. # [[ $imageVersion -eq 4 ]] && sed -i 's/mmcblk0/mmcblk1/g' /etc/fstab EOF