diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 505604f..f88e35c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,7 +26,7 @@ jobs: - name: Build firmware run: | - sudo ./build_raspberry_pi.sh + sudo ./build.sh - name: Release build artifacts uses: softprops/action-gh-release@v1 @@ -34,6 +34,6 @@ jobs: append_body: true body_path: ./version-info files: | - ./anotterkiosk-* + ./n-anotterkiosk-* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index cb053f7..aa3f3d9 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,6 @@ This project aims to solve a lot of those (at least for the author), it might al - [Images built via CI](https://github.com/Manawyrm/AnotterKiosk/blob/main/.github/workflows/main.yml) - WiFi connection support - Raspberry Pi (Arm64) compatibility -- PC (x86) compatibility - [USB flash drive, USB SSD, etc. compatible](#how-to-use) - aarch64 mode for Raspberry Pis (_significant_ performance improvements over armv7/32bit ARM) - Read-only filesystem handling (no more broken SD cards) diff --git a/build_raspberry_pi.sh b/build.sh old mode 100755 new mode 100644 similarity index 90% rename from build_raspberry_pi.sh rename to build.sh index 5b04aae..29ee628 --- a/build_raspberry_pi.sh +++ b/build.sh @@ -42,9 +42,8 @@ sudo losetup -P /dev/loop0 raspikiosk.img sudo mount /dev/loop0p2 "${BUILD_DIR}" sudo mount /dev/loop0p1 "${BUILD_DIR}/boot" -# Copy the (raspberry pi-specific) skeleton files -sudo rsync -a "${SCRIPT_DIR}/raspberry_pi_skeleton/." "${BUILD_DIR}" -sudo rsync -a "${SCRIPT_DIR}/kiosk_skeleton/." "${BUILD_DIR}/kiosk_skeleton" +# Copy the skeleton files +sudo rsync -a "${SCRIPT_DIR}/kiosk_skeleton/." "${BUILD_DIR}" # Make fstab read-only sed -i 's/vfat defaults/vfat ro,defaults/g' "${BUILD_DIR}/etc/fstab" @@ -63,9 +62,10 @@ sudo mount devpts -t devtmpfs -o mode=0755,nosuid "${BUILD_DIR}/dev/" sudo chroot "${BUILD_DIR}" /raspberry_pi_bullseye.sh # and then actually install everything. -sudo chroot "${BUILD_DIR}" /kiosk_skeleton/build.sh +sudo chroot "${BUILD_DIR}" /build.sh -sudo rm -r "${BUILD_DIR}/kiosk_skeleton" +# remove the build scripts +sudo rm "${BUILD_DIR}/build.sh" sudo rm "${BUILD_DIR}/raspberry_pi_bullseye.sh" cp "${BUILD_DIR}/version-info" version-info diff --git a/build_x86.sh b/build_x86.sh deleted file mode 100755 index 830793e..0000000 --- a/build_x86.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash - -# *sigh*, some docker containers don't seem to have sbin in their PATH -export PATH=$PATH:/usr/sbin - -SCRIPT_DIR="$(dirname "$(realpath "$0")")" -BUILD_DIR="${SCRIPT_DIR}/work/root/" - -# cleanup any previous build attempts -umount -fl "${BUILD_DIR}" || true -rm -rf "${BUILD_DIR}" || true -mkdir -p "${BUILD_DIR}" -rm x86kiosk.img || true - -truncate -s 10G x86kiosk.img - -PARTLAYOUT=$(cat <<-END -label: gpt -label-id: 3BC7D7CD-4BF8-4E92-AAEB-2ACD5F8D05AA -device: x86kiosk.img -unit: sectors -first-lba: 34 -last-lba: 20971486 -sector-size: 512 - -x86kiosk.img1 : start= 2048, size= 2095105, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, uuid=9C99F1BB-11A8-4BB5-82C2-555D7A38F85C, name="EFI system partition" -x86kiosk.img2 : start= 2099200, size= 18870272, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=93A9AB2C-BC29-4C6C-B6DD-1B4EDDED9A1E, name="Linux filesystem" -END -) -echo "${PARTLAYOUT}" | sfdisk x86kiosk.img - -# Setup loop device for x86 image (with partition scanning) -ld=$(sudo losetup -P --show -f x86kiosk.img) - -# Create filesystems -sudo mkfs.ext4 "${ld}p2" -sudo mkfs.fat -F 32 "${ld}p1" - -# Mount partitions -sudo mount "${ld}p2" "${BUILD_DIR}" -sudo mkdir "${BUILD_DIR}/boot" -sudo mount "${ld}p1" "${BUILD_DIR}/boot" - -# Debootstrap debian -sudo debootstrap --include=linux-image-amd64,grub-efi,sudo --arch amd64 bookworm "${BUILD_DIR}" http://deb.debian.org/debian/ - -# Copy the skeleton files -sudo rsync -a "${SCRIPT_DIR}/x86_skeleton/." "${BUILD_DIR}" -sudo rsync -a "${SCRIPT_DIR}/kiosk_skeleton/." "${BUILD_DIR}/kiosk_skeleton" - -# Create fstab -fat_uuid=$(lsblk -no UUID "${ld}p1") -ext_uuid=$(lsblk -no UUID "${ld}p2") - -echo "UUID=${fat_uuid} /boot vfat ro,defaults 0 2" | sudo tee "${BUILD_DIR}/etc/fstab" -echo "UUID=${ext_uuid} / ext4 ro,defaults,noatime 0 1" | sudo tee -a "${BUILD_DIR}/etc/fstab" - -# Include git repo version info -echo -n "AnotterKiosk x86 version: " > "${BUILD_DIR}/version-info" -git describe --abbrev=4 --dirty --always --tags >> "${BUILD_DIR}/version-info" - -# Mount system partitions (from the build host) -sudo mount proc -t proc -o nosuid,noexec,nodev "${BUILD_DIR}/proc/" -sudo mount sys -t sysfs -o nosuid,noexec,nodev,ro "${BUILD_DIR}/sys/" -sudo mount devpts -t devtmpfs -o mode=0755,nosuid "${BUILD_DIR}/dev/" - -# and then actually install everything. -sudo chroot "${BUILD_DIR}" /setup.sh -sudo chroot "${BUILD_DIR}" /kiosk_skeleton/build.sh - -sudo rm -r "${BUILD_DIR}/kiosk_skeleton" - -cp "${BUILD_DIR}/version-info" version-info - -sudo umount -fl "${BUILD_DIR}/proc" -sudo umount -fl "${BUILD_DIR}/sys" -sudo umount -fl "${BUILD_DIR}/dev" - -sudo umount "${BUILD_DIR}/proc" -sudo umount "${BUILD_DIR}/sys" -sudo umount "${BUILD_DIR}/dev" - -sudo umount "${BUILD_DIR}/boot" -sudo umount "${BUILD_DIR}" - -sudo losetup -D "${ld}" - -tag=$(git describe --abbrev=4 --dirty --always --tags) -mv x86kiosk.img anotterkiosk-${tag}-x86.img -pigz -4 anotterkiosk-${tag}-x86.img \ No newline at end of file diff --git a/raspberry_pi_skeleton/boot/cmdline.txt b/kiosk_skeleton/boot/cmdline.txt similarity index 100% rename from raspberry_pi_skeleton/boot/cmdline.txt rename to kiosk_skeleton/boot/cmdline.txt diff --git a/raspberry_pi_skeleton/boot/config.txt b/kiosk_skeleton/boot/config.txt old mode 100755 new mode 100644 similarity index 100% rename from raspberry_pi_skeleton/boot/config.txt rename to kiosk_skeleton/boot/config.txt diff --git a/raspberry_pi_skeleton/boot/ssh b/kiosk_skeleton/boot/ssh similarity index 100% rename from raspberry_pi_skeleton/boot/ssh rename to kiosk_skeleton/boot/ssh diff --git a/raspberry_pi_skeleton/raspberry_pi_bullseye.sh b/kiosk_skeleton/raspberry_pi_bullseye.sh old mode 100755 new mode 100644 similarity index 100% rename from raspberry_pi_skeleton/raspberry_pi_bullseye.sh rename to kiosk_skeleton/raspberry_pi_bullseye.sh diff --git a/raspberry_pi_skeleton/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan b/kiosk_skeleton/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan similarity index 100% rename from raspberry_pi_skeleton/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan rename to kiosk_skeleton/var/lib/systemd/rfkill/platform-3f300000.mmcnr:wlan diff --git a/raspberry_pi_skeleton/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan b/kiosk_skeleton/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan similarity index 100% rename from raspberry_pi_skeleton/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan rename to kiosk_skeleton/var/lib/systemd/rfkill/platform-fe300000.mmcnr:wlan diff --git a/x86_skeleton/etc/apt/sources.list b/x86_skeleton/etc/apt/sources.list deleted file mode 100644 index 4234f18..0000000 --- a/x86_skeleton/etc/apt/sources.list +++ /dev/null @@ -1,10 +0,0 @@ -deb http://deb.debian.org/debian bookworm main -deb-src http://deb.debian.org/debian bookworm main - -deb http://deb.debian.org/debian-security/ bookworm-security main -deb-src http://deb.debian.org/debian-security/ bookworm-security main - -deb http://deb.debian.org/debian bookworm-updates main -deb-src http://deb.debian.org/debian bookworm-updates main - -deb http://deb.debian.org/debian bookworm-backports main diff --git a/x86_skeleton/etc/default/grub.d/anotterkiosk.cfg b/x86_skeleton/etc/default/grub.d/anotterkiosk.cfg deleted file mode 100644 index a0dca6b..0000000 --- a/x86_skeleton/etc/default/grub.d/anotterkiosk.cfg +++ /dev/null @@ -1 +0,0 @@ -GRUB_DISTRIBUTOR="AnotterKiosk" \ No newline at end of file diff --git a/x86_skeleton/setup.sh b/x86_skeleton/setup.sh deleted file mode 100755 index 233889b..0000000 --- a/x86_skeleton/setup.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -apt update -# make sure we have all updates installed (from the -updates and -security repos) -APT_LISTCHANGES_FRONTEND=none DEBIAN_FRONTEND=noninteractive apt -o Dpkg::Options::="--force-confold" -f -y dist-upgrade -APT_LISTCHANGES_FRONTEND=none DEBIAN_FRONTEND=noninteractive apt install -f -y -t bookworm-backports linux-image-amd64 -# to remove old kernel versions -apt --purge autoremove -apt install -y polkitd locales zstd dhcpcd wpasupplicant xserver-xorg-video-nouveau -locale-gen en_US.UTF-8 - -apt install -y firmware-amd-graphics firmware-iwlwifi firmware-brcm80211 firmware-atheros firmware-misc-nonfree firmware-realtek firmware-ath9k-htc - -echo "grub-efi-amd64 grub2/force_efi_extra_removable boolean true" | debconf-set-selections -update-grub -grub-install --target=x86_64-efi --efi-directory=/boot --removable --bootloader-id=AnotterKiosk - -useradd -U -m -s /bin/bash -u 1000 -G audio,video,users,input,adm,dialout,plugdev,render pi - -systemctl enable dhcpcd - -rm /etc/resolv.conf -echo "nameserver 8.8.8.8" > /etc/resolv.conf -echo "nameserver 2001:4860:4860::8888" >> /etc/resolv.conf -echo "nameserver 8.8.4.4" >> /etc/resolv.conf -echo "nameserver 2001:4860:4860::8844" >> /etc/resolv.conf