From 11bb26123949b38eb822bf5d5d323f7a41eb7515 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 08:59:27 -0600 Subject: [PATCH 01/24] use native arm runner for all images --- .github/workflows/main.yml | 95 +++++++++--------- install_common.sh | 7 +- mount_image.sh | 191 +++++++++++++++++++++++++++++++++++++ mount_rubikpi3.sh | 4 +- 4 files changed, 243 insertions(+), 54 deletions(-) create mode 100755 mount_image.sh mode change 100644 => 100755 mount_rubikpi3.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b1a0eb22..e3032c0c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,6 +16,7 @@ jobs: env: script: "./tmp/build/install_rubikpi3.sh" base_image: "https://people.canonical.com/~platform/images/qualcomm-iot/rubikpi3/ubuntu-server-24.04/x00/ubuntu-24.04-preinstalled-server-arm64+rubikpi3-20250912-127.yaml" + image_name: "rubikpi3" runs-on: ubuntu-24.04-arm @@ -31,7 +32,7 @@ jobs: - name: Build rubikpi3 with mounting run: | chmod +x ./mount_rubikpi3.sh - ./mount_rubikpi3.sh ${{ env.base_image }} ${{ env.script }} ${{ github.ref_name }} + ./mount_rubikpi3.sh ${{ env.base_image }} ${{ env.script }} - name: Compress built image run: | @@ -45,56 +46,58 @@ jobs: retention-days: 1 build: - runs-on: ubuntu-24.04 + runs-on: ubuntu-24.04-arm strategy: fail-fast: false matrix: include: - - name: limelight - script: ./install_limelight.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: limelight3 - script: ./install_limelight3.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: limelight3g - script: ./install_limelight3g.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: limelight4 - script: ./install_limelight4.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: limelight + # script: ./install_limelight.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: limelight3 + # script: ./install_limelight3.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: limelight3g + # script: ./install_limelight3g.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: limelight4 + # script: ./install_limelight4.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - name: raspi script: ./install_pi.sh base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: raspi_dev - script: ./install_dev_pi.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: snakeyes - script: ./install_snakeyes.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: luma_p1 - script: ./install_luma_p1.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: raspi_dev + # script: ./install_dev_pi.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: snakeyes + # script: ./install_snakeyes.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: luma_p1 + # script: ./install_luma_p1.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - name: opi5 script: ./install_opi5.sh base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5.img.xz - - name: opi5b - script: ./install_opi5.sh - base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5b.img.xz - - name: opi5plus - script: ./install_opi5.sh - base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-plus.img.xz - - name: opi5pro - script: ./install_opi5.sh - base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-pro.img.xz - - name: opi5max - script: ./install_opi5.sh - base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-max.img.xz - - name: rock5c - script: ./install_opi5.sh - base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-rock-5c.img.xz + # - name: opi5b + # script: ./install_opi5.sh + # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5b.img.xz + # - name: opi5plus + # script: ./install_opi5.sh + # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-plus.img.xz + # - name: opi5pro + # script: ./install_opi5.sh + # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-pro.img.xz + # - name: opi5max + # script: ./install_opi5.sh + # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-max.img.xz + # - name: rock5c + # script: ./install_opi5.sh + # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-rock-5c.img.xz name: "Build for ${{ matrix.name }}" + env: + image_name: "${{ matrix.name }}" steps: - uses: actions/checkout@v4.1.7 @@ -103,19 +106,11 @@ jobs: - name: Fetch tags run: git fetch --tags --force - - uses: pguyot/arm-runner-action@HEAD + - name: Install dependencies and build image id: install_deps - with: - image_additional_mb: 1500 - bind_mount_repository: true - base_image: ${{ matrix.base_image }} - commands: | - chmod +x ${{matrix.script}} - ${{ matrix.script }} - chmod +x ./install_common.sh - ./install_common.sh - mkdir -p /opt/photonvision/ - echo "${{ github.ref_name }};${{ matrix.name }}" > /opt/photonvision/image-version + run: | + sudo chmod +x ./mount_image.sh + sudo -E ./mount_image.sh ${{ matrix.base_image }} ${{ matrix.script }} 500 2 - name: Compress built image run: | diff --git a/install_common.sh b/install_common.sh index a85ff6ee..fb41c46a 100755 --- a/install_common.sh +++ b/install_common.sh @@ -1,5 +1,4 @@ -#!/bin/bash -v - +#!/bin/bash # Verbose and exit on errors set -ex @@ -29,3 +28,7 @@ echo "photon:vision" | chpasswd cp -f ./files/issue.txt /etc/issue cp -f /etc/issue /etc/issue.net sed -i 's/#Banner none/Banner \/etc\/issue.net/g' /etc/ssh/sshd_config + +# Add photon version file +mkdir -p /opt/photonvision/ +echo "${GITHUB_REF_NAME};${image_name}" > /opt/photonvision/image-version diff --git a/mount_image.sh b/mount_image.sh new file mode 100755 index 00000000..c7b12159 --- /dev/null +++ b/mount_image.sh @@ -0,0 +1,191 @@ +#!/bin/bash +set -ex +# set -euo pipefail + +rootdir="./rootfs" +rootdir="$(realpath ${rootdir})" +echo "Root directory will be at: ${rootdir}" + +url=$1 +install_script=$2 +additional_mb=$3 +rootpartition=$4 + +if [[ $# -ge 5 ]]; then + bootpartition=$5 + if [[ "x$rootpartion" = "x$bootpartition" ]]; then + echo "Boot partition cannot be equal to root partition" + exit 1 + fi +else + bootpartition= +fi + +image="base_image.img" + +# Install required packages +# sudo apt-get update +# sudo apt-get install -y wget xz-utils + +#### +# Download the image +#### +wget -nv -O ${image}.xz "${url}" +xz -T0 -d ${image}.xz + +ls -sh ${image} +stat "${image}" + +#### +# Prepare and mount the image +#### + +if [[ ${additional_mb} -gt 0 ]]; then + dd if=/dev/zero bs=1M count=${additional_mb} >> ${image} +fi + +ls -sh ${image} + +loopdev=$(losetup --find --show --partscan ${image}) +# echo "loopdev=${loopdev}" >> $GITHUB_OUTPUT + +part_type=$(blkid -o value -s PTTYPE "${loopdev}") +echo "Image is using ${part_type} partition table" + +if [[ ${additional_mb} -gt 0 ]]; then + if [[ "${part_type}" == "gpt" ]]; then + sgdisk -e "${loopdev}" + fi + parted --script "${loopdev}" resizepart ${rootpartition} 100% + e2fsck -p -f "${loopdev}p${rootpartition}" + resize2fs "${loopdev}p${rootpartition}" + echo "Finished resizing disk image." +fi + +sync + +lsblk "${loopdev}" +partprobe -s "${loopdev}" +if [[ -n "$bootpartition" ]]; then + bootdev="${loopdev}p${bootpartition}" +else + bootdev= +fi +rootdev="${loopdev}p${rootpartition}" + +mkdir --parents ${rootdir} +# echo "rootdir=${rootdir}" >> "$GITHUB_OUTPUT" +mount "${rootdev}" "${rootdir}" +if [[ -n "$bootdev" ]]; then + echo "*** Mounting boot partition" + mkdir --parents "${rootdir}/boot" + mount "${bootdev}" "${rootdir}/boot" +fi + + +echo "Current directory: $(pwd)" +echo "Contents:" +ls -la +# Set up the environment +mount -t proc /proc "${rootdir}/proc" +mount -t sysfs /sys "${rootdir}/sys" +# sudo mount -t tmpfs /tmpfs "${rootdir}/run" +mount --rbind /dev "${rootdir}/dev" + +mv -v "${rootdir}/etc/resolv.conf" "${rootdir}/etc/resolv.conf.bak" +cp -v /etc/resolv.conf "${rootdir}/etc/resolv.conf" + +#### +# Modify the image in chroot +#### +chrootscriptdir=/tmp/build +scriptdir=${rootdir}${chrootscriptdir} +mkdir --parents "${scriptdir}" +mount --bind "$(pwd)" "${scriptdir}" + +cat >> "${scriptdir}/commands.sh" << EOF +set -ex +# export DEBIAN_FRONTEND=noninteractive +cd "${chrootscriptdir}" +echo "Running ${install_script}" +chmod +x "${install_script}" +"./${install_script}" +echo "Running install_common.sh" +chmod +x "./install_common.sh" +"./install_common.sh" +EOF + +cat -n "${scriptdir}/commands.sh" +chmod +x "${scriptdir}/commands.sh" + +sudo -E chroot "${rootdir}" /bin/bash -c "${chrootscriptdir}/commands.sh" + +#### +# Clean up and shrink image +#### + +if [[ -e "${rootdir}/etc/resolv.conf" ]]; then + mv "${rootdir}/etc/resolv.conf.bak" "${rootdir}/etc/resolv.conf" +fi + +echo "Before zero filling free space" +df -H + +if mountpoint "${rootdir}/boot"; then + (cat /dev/zero > "${rootdir}/boot/zeros" 2>/dev/null || true); sync; rm "${rootdir}/boot/zeros"; + # umount "${rootdir}/boot" +fi + +(cat /dev/zero > "${rootdir}/zeros" 2>/dev/null || true); sync; rm "${rootdir}/zeros"; +# umount "${rootdir}" + +echo "After zero filling free space" +df -H + +# if mountpoint "${rootdir}/boot"; then +# umount "${rootdir}/boot" +# fi +# umount "${rootdir}/proc" +# umount "${rootdir}/sys" +# umount "${rootdir}/dev" +umount --recursive "${rootdir}" + +echo "Resizing root filesystem to minimal size." +e2fsck -v -f -p -E discard "${rootdev}" +resize2fs -M "${rootdev}" +rootfs_blocksize=$(tune2fs -l ${rootdev} | grep "^Block size" | awk '{print $NF}') +rootfs_blockcount=$(tune2fs -l ${rootdev} | grep "^Block count" | awk '{print $NF}') + +echo "Resizing rootfs partition." +rootfs_partstart=$(parted -m --script "${loopdev}" unit B print | grep "^${rootpartition}:" | awk -F ":" '{print $2}' | tr -d 'B') +rootfs_partsize=$((${rootfs_blockcount} * ${rootfs_blocksize})) +rootfs_partend=$((${rootfs_partstart} + ${rootfs_partsize} - 1)) +rootfs_partoldend=$(parted -m --script "${loopdev}" unit B print | grep "^${rootpartition}:" | awk -F ":" '{print $3}' | tr -d 'B') +if [ "$rootfs_partoldend" -gt "$rootfs_partend" ]; then + echo y | parted ---pretend-input-tty "${loopdev}" unit B resizepart "${rootpartition}" "${rootfs_partend}" +else + echo "Rootfs partition not resized as it was not shrunk" +fi + +free_space=$(parted -m --script "${loopdev}" unit B print free | tail -1) +if [[ "${free_space}" =~ "free" ]]; then + initial_image_size=$(stat -L --printf="%s" "${image}") + image_size=$(echo "${free_space}" | awk -F ":" '{print $2}' | tr -d 'B') + if [[ "${part_type}" == "gpt" ]]; then + # for GPT partition table, leave space at the end for the secondary GPT + # it requires 33 sectors, which is 16896 bytes + image_size=$((image_size + 16896)) + fi + echo "Shrinking image from ${initial_image_size} to ${image_size} bytes." + truncate -s "${image_size}" "${image}" + if [[ "${part_type}" == "gpt" ]]; then + # use sgdisk to fix the secondary GPT after truncation + sgdisk -e "${image}" + fi +fi + +losetup --detach "${loopdev}" + +echo "All done" + +echo "image=${image}" >> "$GITHUB_OUTPUT" \ No newline at end of file diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh old mode 100644 new mode 100755 index 55505579..82a871d1 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -163,8 +163,8 @@ sudo chroot rootfs /bin/bash -c " echo '=== Making script executable ===' chmod +x ${script} - echo '=== Running ${script} with arguments: ${@:3} ===' - ./${script} ${@:3} + echo '=== Running ${script} ===' + ./${script} " # Cleanup mounts From 503bd9cb0f86d3d6374f5713228100ccb0d90d49 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 09:19:49 -0600 Subject: [PATCH 02/24] Clean up some messages --- mount_image.sh | 43 +++++++------------------------------------ 1 file changed, 7 insertions(+), 36 deletions(-) diff --git a/mount_image.sh b/mount_image.sh index c7b12159..ffb66b81 100755 --- a/mount_image.sh +++ b/mount_image.sh @@ -1,10 +1,9 @@ #!/bin/bash -set -ex -# set -euo pipefail +set -exuo pipefail rootdir="./rootfs" rootdir="$(realpath ${rootdir})" -echo "Root directory will be at: ${rootdir}" +echo "Root directory will be: ${rootdir}" url=$1 install_script=$2 @@ -23,19 +22,12 @@ fi image="base_image.img" -# Install required packages -# sudo apt-get update -# sudo apt-get install -y wget xz-utils - #### # Download the image #### wget -nv -O ${image}.xz "${url}" xz -T0 -d ${image}.xz -ls -sh ${image} -stat "${image}" - #### # Prepare and mount the image #### @@ -44,8 +36,6 @@ if [[ ${additional_mb} -gt 0 ]]; then dd if=/dev/zero bs=1M count=${additional_mb} >> ${image} fi -ls -sh ${image} - loopdev=$(losetup --find --show --partscan ${image}) # echo "loopdev=${loopdev}" >> $GITHUB_OUTPUT @@ -64,8 +54,9 @@ fi sync +echo "Partitions in the mounted image:" lsblk "${loopdev}" -partprobe -s "${loopdev}" + if [[ -n "$bootpartition" ]]; then bootdev="${loopdev}p${bootpartition}" else @@ -77,21 +68,16 @@ mkdir --parents ${rootdir} # echo "rootdir=${rootdir}" >> "$GITHUB_OUTPUT" mount "${rootdev}" "${rootdir}" if [[ -n "$bootdev" ]]; then - echo "*** Mounting boot partition" mkdir --parents "${rootdir}/boot" mount "${bootdev}" "${rootdir}/boot" fi - -echo "Current directory: $(pwd)" -echo "Contents:" -ls -la # Set up the environment mount -t proc /proc "${rootdir}/proc" mount -t sysfs /sys "${rootdir}/sys" -# sudo mount -t tmpfs /tmpfs "${rootdir}/run" mount --rbind /dev "${rootdir}/dev" +# Temporarily replace resolv.conf for networking mv -v "${rootdir}/etc/resolv.conf" "${rootdir}/etc/resolv.conf.bak" cp -v /etc/resolv.conf "${rootdir}/etc/resolv.conf" @@ -124,30 +110,17 @@ sudo -E chroot "${rootdir}" /bin/bash -c "${chrootscriptdir}/commands.sh" # Clean up and shrink image #### -if [[ -e "${rootdir}/etc/resolv.conf" ]]; then +if [[ -e "${rootdir}/etc/resolv.conf.bak" ]]; then mv "${rootdir}/etc/resolv.conf.bak" "${rootdir}/etc/resolv.conf" fi -echo "Before zero filling free space" -df -H - +echo "Zero filling empty space" if mountpoint "${rootdir}/boot"; then (cat /dev/zero > "${rootdir}/boot/zeros" 2>/dev/null || true); sync; rm "${rootdir}/boot/zeros"; - # umount "${rootdir}/boot" fi (cat /dev/zero > "${rootdir}/zeros" 2>/dev/null || true); sync; rm "${rootdir}/zeros"; -# umount "${rootdir}" -echo "After zero filling free space" -df -H - -# if mountpoint "${rootdir}/boot"; then -# umount "${rootdir}/boot" -# fi -# umount "${rootdir}/proc" -# umount "${rootdir}/sys" -# umount "${rootdir}/dev" umount --recursive "${rootdir}" echo "Resizing root filesystem to minimal size." @@ -186,6 +159,4 @@ fi losetup --detach "${loopdev}" -echo "All done" - echo "image=${image}" >> "$GITHUB_OUTPUT" \ No newline at end of file From 8747386631b203be133ea5d5c53c908a0f7b8357 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 09:32:53 -0600 Subject: [PATCH 03/24] Mount CIDATA partition --- install_opi5.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/install_opi5.sh b/install_opi5.sh index aadf6a88..42e3d9c2 100755 --- a/install_opi5.sh +++ b/install_opi5.sh @@ -1,4 +1,4 @@ -#!/bin/bash -v +#!/bin/bash # Verbose and exit on errors set -ex @@ -54,11 +54,15 @@ apt-get install --yes --quiet libc6 libstdc++6 # let netplan create the config during cloud-init rm -f /etc/netplan/00-default-nm-renderer.yaml +mkdir --parents /mnt/CIDATA +mount /dev/${loopdev}p1 /mnt/CIDATA # set NetworkManager as the renderer in cloud-init -cp -f ./OPi5_CIDATA/network-config /boot/network-config - +cp -f ./OPi5_CIDATA/network-config /mnt/CIDATA/network-config # add customized user-data file for cloud-init -cp -f ./OPi5_CIDATA/user-data /boot/user-data +cp -f ./OPi5_CIDATA/user-data /mnt/CIDATA/user-data + +umount /mnt/CIDATA +rmdir /mnt/CIDATA # modify photonvision.service to enable big cores sed -i 's/# AllowedCPUs=4-7/AllowedCPUs=4-7/g' /lib/systemd/system/photonvision.service From d22331981b3817604db8ba652704bf4112c6af37 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 09:41:45 -0600 Subject: [PATCH 04/24] install_common handles this now --- install_rubikpi3.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/install_rubikpi3.sh b/install_rubikpi3.sh index 1ace4d57..9ab7d13e 100644 --- a/install_rubikpi3.sh +++ b/install_rubikpi3.sh @@ -60,7 +60,3 @@ rm -rf /usr/share/locale/ echo '=== Running install_common.sh ===' chmod +x ./install_common.sh ./install_common.sh -echo '=== Creating version file ===' -mkdir -p /opt/photonvision/ -echo '{$1};rubikpi3' > /opt/photonvision/image-version -echo '=== Installation complete ===' \ No newline at end of file From fe272bb653d1a7a9abbd5f5fe2e27f005df40585 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 09:53:45 -0600 Subject: [PATCH 05/24] make loopdev available for install_opi --- mount_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mount_image.sh b/mount_image.sh index ffb66b81..6b9d365b 100755 --- a/mount_image.sh +++ b/mount_image.sh @@ -36,7 +36,7 @@ if [[ ${additional_mb} -gt 0 ]]; then dd if=/dev/zero bs=1M count=${additional_mb} >> ${image} fi -loopdev=$(losetup --find --show --partscan ${image}) +export loopdev=$(losetup --find --show --partscan ${image}) # echo "loopdev=${loopdev}" >> $GITHUB_OUTPUT part_type=$(blkid -o value -s PTTYPE "${loopdev}") From d2bbd75400ebd91790d70f1f452f1e15edeb2fe8 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 09:58:41 -0600 Subject: [PATCH 06/24] don't need /dev --- install_opi5.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_opi5.sh b/install_opi5.sh index 42e3d9c2..af1b919f 100755 --- a/install_opi5.sh +++ b/install_opi5.sh @@ -55,7 +55,7 @@ apt-get install --yes --quiet libc6 libstdc++6 rm -f /etc/netplan/00-default-nm-renderer.yaml mkdir --parents /mnt/CIDATA -mount /dev/${loopdev}p1 /mnt/CIDATA +mount "${loopdev}p1" /mnt/CIDATA # set NetworkManager as the renderer in cloud-init cp -f ./OPi5_CIDATA/network-config /mnt/CIDATA/network-config # add customized user-data file for cloud-init From cd4d1e1ad62a3faed0cc8ea1987537586c4ece2f Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 10:18:26 -0600 Subject: [PATCH 07/24] zero fill empty space on rubik --- mount_rubikpi3.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 82a871d1..840f5c44 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -167,6 +167,9 @@ sudo chroot rootfs /bin/bash -c " ./${script} " +echo "Zero filling empty space" +(sudo cat /dev/zero > ./rootfs/zeros 2>/dev/null || true); sync; sudo rm ./rootfs/zeros; + # Cleanup mounts sudo umount rootfs/dev || true sudo umount rootfs/run || true From 0763e26f22ed9d78aced784a26c8540e21e8074c Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 10:32:28 -0600 Subject: [PATCH 08/24] maybe this --- mount_rubikpi3.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 840f5c44..5c028482 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -168,7 +168,7 @@ sudo chroot rootfs /bin/bash -c " " echo "Zero filling empty space" -(sudo cat /dev/zero > ./rootfs/zeros 2>/dev/null || true); sync; sudo rm ./rootfs/zeros; +sudo (cat /dev/zero > rootfs/zeros 2>/dev/null || true); sync; sudo rm rootfs/zeros; # Cleanup mounts sudo umount rootfs/dev || true From 2bd53ed597296b4b5558d97693c2567763899201 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 10:43:39 -0600 Subject: [PATCH 09/24] another try --- mount_rubikpi3.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 5c028482..7d1aaac8 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -168,7 +168,9 @@ sudo chroot rootfs /bin/bash -c " " echo "Zero filling empty space" -sudo (cat /dev/zero > rootfs/zeros 2>/dev/null || true); sync; sudo rm rootfs/zeros; +sudo cat /dev/zero > rootfs/zeros 2>/dev/null || true +sync +sudo rm rootfs/zeros # Cleanup mounts sudo umount rootfs/dev || true From 6ffb8e8f97becef19af4ce72e1e932938d7a7118 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:05:49 -0600 Subject: [PATCH 10/24] testing --- mount_rubikpi3.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 7d1aaac8..4ccbfa80 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -133,6 +133,15 @@ sudo mount -t sysfs sysfs rootfs/sys sudo mount -t tmpfs tmpfs rootfs/run sudo mount --bind /dev rootfs/dev + +sudo ls -la . +suod ls -la ./rootfs +sudo ls -la ./rootfs/dev +sudo touch ./rootfs/zeros +sudo cat /dev/zero > ./rootfs/zeros 2>/dev/null || true +sync +sudo rm rootfs/zeros + # Setup DNS resolution in chroot echo "=== Setting up DNS in chroot ===" sudo rm -f rootfs/etc/resolv.conf From 3f33f33c7fb8982564a808a81b389f2d504258b3 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:08:43 -0600 Subject: [PATCH 11/24] type --- mount_rubikpi3.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 4ccbfa80..b43fa818 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -135,7 +135,7 @@ sudo mount --bind /dev rootfs/dev sudo ls -la . -suod ls -la ./rootfs +sudo ls -la ./rootfs sudo ls -la ./rootfs/dev sudo touch ./rootfs/zeros sudo cat /dev/zero > ./rootfs/zeros 2>/dev/null || true From e4616e6c22caefec46151d81dcbf599f53539c7d Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:20:55 -0600 Subject: [PATCH 12/24] more debugging --- .github/workflows/main.yml | 18 +++++++++--------- mount_rubikpi3.sh | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e3032c0c..a50b31eb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -55,18 +55,18 @@ jobs: # - name: limelight # script: ./install_limelight.sh # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: limelight3 - # script: ./install_limelight3.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: limelight3 + script: ./install_limelight3.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz # - name: limelight3g # script: ./install_limelight3g.sh # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz # - name: limelight4 # script: ./install_limelight4.sh # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: raspi - script: ./install_pi.sh - base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + # - name: raspi + # script: ./install_pi.sh + # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz # - name: raspi_dev # script: ./install_dev_pi.sh # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz @@ -76,9 +76,9 @@ jobs: # - name: luma_p1 # script: ./install_luma_p1.sh # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - - name: opi5 - script: ./install_opi5.sh - base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5.img.xz + # - name: opi5 + # script: ./install_opi5.sh + # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5.img.xz # - name: opi5b # script: ./install_opi5.sh # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5b.img.xz diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index b43fa818..56104869 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -133,11 +133,11 @@ sudo mount -t sysfs sysfs rootfs/sys sudo mount -t tmpfs tmpfs rootfs/run sudo mount --bind /dev rootfs/dev +findmnt +sudo touch ./rootfs/zeros sudo ls -la . sudo ls -la ./rootfs -sudo ls -la ./rootfs/dev -sudo touch ./rootfs/zeros sudo cat /dev/zero > ./rootfs/zeros 2>/dev/null || true sync sudo rm rootfs/zeros From dc96b5fbb35811dcf30afb224cfd1b757036a9a4 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:27:29 -0600 Subject: [PATCH 13/24] make it writable --- mount_rubikpi3.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 56104869..6e056ffd 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -136,11 +136,11 @@ sudo mount --bind /dev rootfs/dev findmnt sudo touch ./rootfs/zeros -sudo ls -la . +sudo chmod +w ./rootfs/zeros sudo ls -la ./rootfs sudo cat /dev/zero > ./rootfs/zeros 2>/dev/null || true sync -sudo rm rootfs/zeros +sudo rm ./rootfs/zeros # Setup DNS resolution in chroot echo "=== Setting up DNS in chroot ===" From 0d96e9ef39924963857299d83d2c7cbb49719255 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:34:12 -0600 Subject: [PATCH 14/24] try writing it not in root --- mount_rubikpi3.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 6e056ffd..6c5a7a6e 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -135,12 +135,14 @@ sudo mount --bind /dev rootfs/dev findmnt -sudo touch ./rootfs/zeros -sudo chmod +w ./rootfs/zeros -sudo ls -la ./rootfs -sudo cat /dev/zero > ./rootfs/zeros 2>/dev/null || true +sudo touch ./rootfs/home/zeros +sudo chmod +w ./rootfs/home/zeros +sudo ls -la ./rootfs/home +sudo cat /dev/zero > ./rootfs/home/zeros 2>/dev/null || true sync -sudo rm ./rootfs/zeros +sudo rm ./rootfs/home/zeros + +exit 1 # Setup DNS resolution in chroot echo "=== Setting up DNS in chroot ===" From 725348ace92d95551f828e2cf6e28442734b1983 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:41:24 -0600 Subject: [PATCH 15/24] Try it in the chroot? --- mount_rubikpi3.sh | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 6c5a7a6e..5b3c7d90 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -135,15 +135,6 @@ sudo mount --bind /dev rootfs/dev findmnt -sudo touch ./rootfs/home/zeros -sudo chmod +w ./rootfs/home/zeros -sudo ls -la ./rootfs/home -sudo cat /dev/zero > ./rootfs/home/zeros 2>/dev/null || true -sync -sudo rm ./rootfs/home/zeros - -exit 1 - # Setup DNS resolution in chroot echo "=== Setting up DNS in chroot ===" sudo rm -f rootfs/etc/resolv.conf @@ -176,13 +167,12 @@ sudo chroot rootfs /bin/bash -c " chmod +x ${script} echo '=== Running ${script} ===' ./${script} + echo '=== Zero filling empty space ===' + sudo cat /dev/zero > /zeros 2>/dev/null || true + sync + sudo rm /zeros " -echo "Zero filling empty space" -sudo cat /dev/zero > rootfs/zeros 2>/dev/null || true -sync -sudo rm rootfs/zeros - # Cleanup mounts sudo umount rootfs/dev || true sudo umount rootfs/run || true From 2484b8e89eeab7ac715fe02d74d375fcb1bf68b2 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:56:41 -0600 Subject: [PATCH 16/24] minor cleanup --- mount_image.sh | 2 +- mount_rubikpi3.sh | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/mount_image.sh b/mount_image.sh index 6b9d365b..a2b9937f 100755 --- a/mount_image.sh +++ b/mount_image.sh @@ -91,7 +91,7 @@ mount --bind "$(pwd)" "${scriptdir}" cat >> "${scriptdir}/commands.sh" << EOF set -ex -# export DEBIAN_FRONTEND=noninteractive +export DEBIAN_FRONTEND=noninteractive cd "${chrootscriptdir}" echo "Running ${install_script}" chmod +x "${install_script}" diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index 5b3c7d90..f2adab79 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -168,9 +168,7 @@ sudo chroot rootfs /bin/bash -c " echo '=== Running ${script} ===' ./${script} echo '=== Zero filling empty space ===' - sudo cat /dev/zero > /zeros 2>/dev/null || true - sync - sudo rm /zeros + (cat /dev/zero > /zeros 2>/dev/null || true); sync; rm /zeros; " # Cleanup mounts From ca61ee324a75cabe502f69d86544c70c313c39e2 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 13:57:28 -0600 Subject: [PATCH 17/24] gotta build 'em all --- .github/workflows/main.yml | 78 +++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a50b31eb..ab346391 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,48 +52,48 @@ jobs: fail-fast: false matrix: include: - # - name: limelight - # script: ./install_limelight.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: limelight + script: ./install_limelight.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - name: limelight3 script: ./install_limelight3.sh base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: limelight3g - # script: ./install_limelight3g.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: limelight4 - # script: ./install_limelight4.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: raspi - # script: ./install_pi.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: raspi_dev - # script: ./install_dev_pi.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: snakeyes - # script: ./install_snakeyes.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: luma_p1 - # script: ./install_luma_p1.sh - # base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz - # - name: opi5 - # script: ./install_opi5.sh - # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5.img.xz - # - name: opi5b - # script: ./install_opi5.sh - # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5b.img.xz - # - name: opi5plus - # script: ./install_opi5.sh - # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-plus.img.xz - # - name: opi5pro - # script: ./install_opi5.sh - # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-pro.img.xz - # - name: opi5max - # script: ./install_opi5.sh - # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-max.img.xz - # - name: rock5c - # script: ./install_opi5.sh - # base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-rock-5c.img.xz + - name: limelight3g + script: ./install_limelight3g.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: limelight4 + script: ./install_limelight4.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: raspi + script: ./install_pi.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: raspi_dev + script: ./install_dev_pi.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: snakeyes + script: ./install_snakeyes.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: luma_p1 + script: ./install_luma_p1.sh + base_image: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz + - name: opi5 + script: ./install_opi5.sh + base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5.img.xz + - name: opi5b + script: ./install_opi5.sh + base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5b.img.xz + - name: opi5plus + script: ./install_opi5.sh + base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-plus.img.xz + - name: opi5pro + script: ./install_opi5.sh + base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-pro.img.xz + - name: opi5max + script: ./install_opi5.sh + base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-orangepi-5-max.img.xz + - name: rock5c + script: ./install_opi5.sh + base_image: https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.4.0/ubuntu-24.04-preinstalled-server-arm64-rock-5c.img.xz name: "Build for ${{ matrix.name }}" env: From 9c6907ee671976cb38ccc2de394492c59d50e3f7 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 14:04:13 -0600 Subject: [PATCH 18/24] raspi-dev needs more space --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ab346391..4d4ebe7f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -110,7 +110,7 @@ jobs: id: install_deps run: | sudo chmod +x ./mount_image.sh - sudo -E ./mount_image.sh ${{ matrix.base_image }} ${{ matrix.script }} 500 2 + sudo -E ./mount_image.sh ${{ matrix.base_image }} ${{ matrix.script }} 1000 2 - name: Compress built image run: | From 8e7834fbb0a53e350043963d836bc476fe3b8e6d Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 14:53:16 -0600 Subject: [PATCH 19/24] need to preserve the environment --- mount_rubikpi3.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mount_rubikpi3.sh b/mount_rubikpi3.sh index f2adab79..1a4c549d 100755 --- a/mount_rubikpi3.sh +++ b/mount_rubikpi3.sh @@ -151,7 +151,7 @@ sudo mkdir -p rootfs/tmp/build/ sudo mount --bind "$(pwd)" rootfs/tmp/build/ echo "=== Checking for sudo in chroot and running script ===" -sudo chroot rootfs /bin/bash -c " +sudo -E chroot rootfs /bin/bash -c " set -exv export DEBIAN_FRONTEND=noninteractive if ! command -v sudo &> /dev/null; then From da1e58bfc9fb5a8afdc85a4c37456fa531febab9 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 21:26:31 -0600 Subject: [PATCH 20/24] try --quiet before the command in apt-get --- install.sh | 2 +- install_opi5.sh | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 7ad328ef..085fa32b 100755 --- a/install.sh +++ b/install.sh @@ -42,7 +42,7 @@ install_if_missing() { debug "Installing $1..." if [[ -z $TEST ]]; then - apt-get install --yes "$1" + apt-get --quiet --yes install "$1" # Always mark our upstream apt deps as held back, which will prevent the package # from being automatically installed, upgraded or removed apt-mark manual "$1" diff --git a/install_opi5.sh b/install_opi5.sh index af1b919f..df0615b4 100755 --- a/install_opi5.sh +++ b/install_opi5.sh @@ -15,7 +15,7 @@ else fi echo "pi:raspberry" | chpasswd -apt-get update --quiet +apt-get --quiet update before=$(df --output=used / | tail -n1) # clean up stuff @@ -24,11 +24,11 @@ before=$(df --output=used / | tail -n1) echo "Purging snaps" rm -rf /var/lib/snapd/seed/snaps/* rm -f /var/lib/snapd/seed/seed.yaml -apt-get purge --yes --quiet lxd-installer lxd-agent-loader -apt-get purge --yes --quiet snapd +apt-get --yes --quiet purge lxd-installer lxd-agent-loader +apt-get --yes --quiet purge snapd # remove bluetooth daemon -apt-get purge --yes --quiet bluez +apt-get --yes --quiet purge bluez apt-get --yes --quiet autoremove @@ -49,7 +49,7 @@ chmod +x ./install.sh ./install.sh --install-nm=yes --arch=aarch64 echo "Installing additional things" -apt-get install --yes --quiet libc6 libstdc++6 +apt-get --yes --quiet install libc6 libstdc++6 # let netplan create the config during cloud-init rm -f /etc/netplan/00-default-nm-renderer.yaml From a484a2745a4444635e394d92035fde614944528a Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 21:29:57 -0600 Subject: [PATCH 21/24] maybe qq helps? --- install.sh | 2 +- install_opi5.sh | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index 085fa32b..7dc8dd22 100755 --- a/install.sh +++ b/install.sh @@ -42,7 +42,7 @@ install_if_missing() { debug "Installing $1..." if [[ -z $TEST ]]; then - apt-get --quiet --yes install "$1" + apt-get -qq -y install "$1" # Always mark our upstream apt deps as held back, which will prevent the package # from being automatically installed, upgraded or removed apt-mark manual "$1" diff --git a/install_opi5.sh b/install_opi5.sh index df0615b4..eb33ae6a 100755 --- a/install_opi5.sh +++ b/install_opi5.sh @@ -15,7 +15,7 @@ else fi echo "pi:raspberry" | chpasswd -apt-get --quiet update +apt-get -qq update before=$(df --output=used / | tail -n1) # clean up stuff @@ -24,13 +24,13 @@ before=$(df --output=used / | tail -n1) echo "Purging snaps" rm -rf /var/lib/snapd/seed/snaps/* rm -f /var/lib/snapd/seed/seed.yaml -apt-get --yes --quiet purge lxd-installer lxd-agent-loader -apt-get --yes --quiet purge snapd +apt-get --yes -qq purge lxd-installer lxd-agent-loader +apt-get --yes -qq purge snapd # remove bluetooth daemon -apt-get --yes --quiet purge bluez +apt-get --yes -qq purge bluez -apt-get --yes --quiet autoremove +apt-get --yes -qq autoremove # remove firmware that (probably) isn't needed rm -rf /usr/lib/firmware/mrvl @@ -49,7 +49,7 @@ chmod +x ./install.sh ./install.sh --install-nm=yes --arch=aarch64 echo "Installing additional things" -apt-get --yes --quiet install libc6 libstdc++6 +apt-get --yes -qq install libc6 libstdc++6 # let netplan create the config during cloud-init rm -f /etc/netplan/00-default-nm-renderer.yaml @@ -90,7 +90,7 @@ for btservice in $btservices; do done rm -rf /var/lib/apt/lists/* -apt-get --yes --quiet clean +apt-get --yes -qq clean rm -rf /usr/share/doc rm -rf /usr/share/locale/ From b096171e64d5d742048c8c820e68d1cb76c0316d Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 21:38:42 -0600 Subject: [PATCH 22/24] supress messages from dpkg too --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 7dc8dd22..51c6be8d 100755 --- a/install.sh +++ b/install.sh @@ -42,7 +42,7 @@ install_if_missing() { debug "Installing $1..." if [[ -z $TEST ]]; then - apt-get -qq -y install "$1" + apt-get -yq install "$1" -o Dpkg::Progress-Fancy="0" -o APT::Color="0" -o Dpkg::Use-Pty="0" # Always mark our upstream apt deps as held back, which will prevent the package # from being automatically installed, upgraded or removed apt-mark manual "$1" @@ -245,7 +245,7 @@ fi debug "Updating package list..." if [[ -z $TEST ]]; then - apt-get update + apt-get -q update fi debug "Updated package list." From ab9a309c5f83faba66a165d9c4671f1b235f266a Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 22:08:21 -0600 Subject: [PATCH 23/24] set apt conf to quiet Dpkg --- install.sh | 2 +- install_opi5.sh | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/install.sh b/install.sh index 51c6be8d..6f8b91b8 100755 --- a/install.sh +++ b/install.sh @@ -42,7 +42,7 @@ install_if_missing() { debug "Installing $1..." if [[ -z $TEST ]]; then - apt-get -yq install "$1" -o Dpkg::Progress-Fancy="0" -o APT::Color="0" -o Dpkg::Use-Pty="0" + apt-get --yes install "$1" # Always mark our upstream apt deps as held back, which will prevent the package # from being automatically installed, upgraded or removed apt-mark manual "$1" diff --git a/install_opi5.sh b/install_opi5.sh index eb33ae6a..397d16cd 100755 --- a/install_opi5.sh +++ b/install_opi5.sh @@ -15,7 +15,14 @@ else fi echo "pi:raspberry" | chpasswd -apt-get -qq update +# silence log spam from dpkg +cat > /etc/apt/apt.conf.d/99dpkg.conf << EOF +Dpkg::Progress-Fancy "0"; +APT::Color "0"; +Dpkg::Use-Pty "0"; +EOF + +apt-get -q update before=$(df --output=used / | tail -n1) # clean up stuff @@ -24,13 +31,13 @@ before=$(df --output=used / | tail -n1) echo "Purging snaps" rm -rf /var/lib/snapd/seed/snaps/* rm -f /var/lib/snapd/seed/seed.yaml -apt-get --yes -qq purge lxd-installer lxd-agent-loader -apt-get --yes -qq purge snapd +apt-get --yes -q purge lxd-installer lxd-agent-loader +apt-get --yes -q purge snapd # remove bluetooth daemon -apt-get --yes -qq purge bluez +apt-get --yes -q purge bluez -apt-get --yes -qq autoremove +apt-get --yes -q autoremove # remove firmware that (probably) isn't needed rm -rf /usr/lib/firmware/mrvl From 45811435d7ddfac61549a399be41e3a38b773f98 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sun, 16 Nov 2025 22:23:44 -0600 Subject: [PATCH 24/24] quiet Dpkg spam on other distros --- install_dev_pi.sh | 8 ++++++++ install_limelight.sh | 7 +++++++ install_pi.sh | 7 +++++++ 3 files changed, 22 insertions(+) diff --git a/install_dev_pi.sh b/install_dev_pi.sh index 0c60f5bf..fef13348 100644 --- a/install_dev_pi.sh +++ b/install_dev_pi.sh @@ -2,6 +2,14 @@ # Verbose and exit on errors set -ex + +# silence log spam from dpkg +cat > /etc/apt/apt.conf.d/99dpkg.conf << EOF +Dpkg::Progress-Fancy "0"; +APT::Color "0"; +Dpkg::Use-Pty "0"; +EOF + # Run normal photon installer chmod +x ./install.sh ./install.sh --install-nm=yes --arch=aarch64 diff --git a/install_limelight.sh b/install_limelight.sh index 7f0ac5f4..c1c0a058 100755 --- a/install_limelight.sh +++ b/install_limelight.sh @@ -3,6 +3,13 @@ # Verbose and exit on errors set -ex +# silence log spam from dpkg +cat > /etc/apt/apt.conf.d/99dpkg.conf << EOF +Dpkg::Progress-Fancy "0"; +APT::Color "0"; +Dpkg::Use-Pty "0"; +EOF + # Run normal photon installer chmod +x ./install.sh ./install.sh --install-nm=yes --arch=aarch64 diff --git a/install_pi.sh b/install_pi.sh index 777de037..55418ec9 100755 --- a/install_pi.sh +++ b/install_pi.sh @@ -3,6 +3,13 @@ # Verbose and exit on errors set -ex +# silence log spam from dpkg +cat > /etc/apt/apt.conf.d/99dpkg.conf << EOF +Dpkg::Progress-Fancy "0"; +APT::Color "0"; +Dpkg::Use-Pty "0"; +EOF + # Run normal photon installer chmod +x ./install.sh ./install.sh --install-nm=yes --arch=aarch64