Compare commits

...

10 Commits
main ... 1.0.33

Author SHA1 Message Date
ca7a2b615f new wifi 2025-07-22 08:42:22 +01:00
c133508f3c try again for wifi 2025-07-22 08:39:09 +01:00
b82615813d wifi fix 2025-07-21 20:37:23 +01:00
2acec6eca9 fix wifi 2025-07-21 18:27:00 +01:00
beab8e7727 fix checksum logic 2025-07-21 17:43:20 +01:00
bf4d633f7b retry new iamge 2025-07-21 17:17:08 +01:00
8f80ff839a checksum fix 2025-07-21 16:38:30 +01:00
47a3da9781 cleanup cache 2025-07-21 16:30:44 +01:00
9c42befea5 move to newer iamge 2025-07-21 16:29:22 +01:00
e17af98cfc readme updates 2025-07-21 16:25:27 +01:00
7 changed files with 58 additions and 47 deletions

View File

@ -0,0 +1 @@
58a3ec57402c86332e67789a6b8f149aeeb4e7bb0a16c9388a66ea6e07012e45 2024-03-15-raspios-bookworm-arm64-lite.img.xz

View File

@ -3,6 +3,7 @@ N-AnotterKiosk (Not-AnotterKiosk)
### I have hacked this about alot from the main branch, mainly Raspberry Pi changes ### I have hacked this about alot from the main branch, mainly Raspberry Pi changes
- Removed x86 support
- Added scheduled screen on/off - Added scheduled screen on/off
- Added scheduled chrome page refresh - Added scheduled chrome page refresh
- Rpi3 Overclock settings - Rpi3 Overclock settings

View File

@ -15,13 +15,16 @@ sudo mkdir -p "${BUILD_DIR}"
# download a modern RaspiOS build # download a modern RaspiOS build
if [ ! -f raspios.img.xz ] if [ ! -f raspios.img.xz ]
then then
wget -O raspios.img.xz "https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2023-05-03/2023-05-03-raspios-bullseye-arm64-lite.img.xz" wget -O raspios.img.xz "https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64-lite.img.xz"
echo "bf982e56b0374712d93e185780d121e3f5c3d5e33052a95f72f9aed468d58fa7 raspios.img.xz" | sha256sum --check --status wget -O raspios.img.xz.sha256 "https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64-lite.img.xz.sha256"
sed -i 's/2024-03-15-raspios-bookworm-arm64-lite.img.xz/raspios.img.xz/g' raspios.img.xz.sha256
sha256sum --check --status raspios.img.xz.sha256
if [ $? -ne 0 ] if [ $? -ne 0 ]
then then
echo "downloaded raspios does not match checksum"; echo "downloaded raspios does not match checksum";
return -1; exit -1;
fi fi
rm raspios.img.xz.sha256
fi fi
rm -f raspios.img rm -f raspios.img
@ -43,8 +46,11 @@ sudo mount /dev/loop0p2 "${BUILD_DIR}"
sudo mount /dev/loop0p1 "${BUILD_DIR}/boot" sudo mount /dev/loop0p1 "${BUILD_DIR}/boot"
# Copy the (raspberry pi-specific) skeleton files # Copy the (raspberry pi-specific) skeleton files
sudo rsync -a "${SCRIPT_DIR}/raspberry_pi_skeleton/." "${BUILD_DIR}" sudo rsync -rl --exclude ".DS_Store" --exclude "boot" "${SCRIPT_DIR}/raspberry_pi_skeleton/." "${BUILD_DIR}"
sudo rsync -a "${SCRIPT_DIR}/kiosk_skeleton/." "${BUILD_DIR}/kiosk_skeleton" sudo rsync -rl --exclude ".DS_Store" "${SCRIPT_DIR}/kiosk_skeleton/." "${BUILD_DIR}/kiosk_skeleton"
sudo cp "${SCRIPT_DIR}/raspberry_pi_skeleton/boot/config.txt" "${BUILD_DIR}/boot/config.txt"
sudo cp "${SCRIPT_DIR}/raspberry_pi_skeleton/boot/ssh" "${BUILD_DIR}/boot/ssh"
sudo sed -i '$ s/$/ logo.nologo consoleblank=0 loglevel=0 quiet/' "${BUILD_DIR}/boot/cmdline.txt"
# Make fstab read-only # Make fstab read-only
sed -i 's/vfat defaults/vfat ro,defaults/g' "${BUILD_DIR}/etc/fstab" sed -i 's/vfat defaults/vfat ro,defaults/g' "${BUILD_DIR}/etc/fstab"
@ -59,14 +65,10 @@ 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 sys -t sysfs -o nosuid,noexec,nodev,ro "${BUILD_DIR}/sys/"
sudo mount devpts -t devtmpfs -o mode=0755,nosuid "${BUILD_DIR}/dev/" sudo mount devpts -t devtmpfs -o mode=0755,nosuid "${BUILD_DIR}/dev/"
# Raspbian currently ships only Debian 11. Let's upgrade to 12.
sudo chroot "${BUILD_DIR}" /raspberry_pi_bullseye.sh
# and then actually install everything. # and then actually install everything.
sudo chroot "${BUILD_DIR}" /kiosk_skeleton/build.sh sudo chroot "${BUILD_DIR}" /kiosk_skeleton/build.sh
sudo rm -r "${BUILD_DIR}/kiosk_skeleton" sudo rm -r "${BUILD_DIR}/kiosk_skeleton"
sudo rm "${BUILD_DIR}/raspberry_pi_bullseye.sh"
cp "${BUILD_DIR}/version-info" version-info cp "${BUILD_DIR}/version-info" version-info

View File

@ -2,10 +2,10 @@
# This script is being run on the target debian platform # This script is being run on the target debian platform
apt update apt update
APT_LISTCHANGES_FRONTEND=none DEBIAN_FRONTEND=noninteractive apt dist-upgrade -y DEBIAN_FRONTEND=noninteractive apt install -y lightdm openbox nginx php-fpm php-cli chromium autossh unclutter x11-xserver-utils xdotool htop nano openssh-server rsync x11vnc lm-sensors ntpdate scrot wireless-regdb fontconfig php-cli
DEBIAN_FRONTEND=noninteractive apt install -y lightdm openbox nginx php-fpm php-cli chromium autossh unclutter x11-xserver-utils xdotool htop nano openssh-server rsync x11vnc lm-sensors ntpdate scrot wireless-regdb fontconfig
rsync -a --chown=root:root "/kiosk_skeleton/." "/" rsync -a --chown=root:root "/kiosk_skeleton/." "/"
chmod +x /usr/bin/kiosk-* /usr/bin/get-ini /usr/bin/refresh-screen /usr/bin/schedule-* /usr/bin/setup-refresh-timer
# Add emoji support # Add emoji support
mkdir -p /home/pi/.fonts mkdir -p /home/pi/.fonts
@ -70,6 +70,7 @@ systemctl disable avahi-daemon || true
systemctl disable bluetooth || true systemctl disable bluetooth || true
systemctl enable kiosk-ssh-keys systemctl enable kiosk-ssh-keys
systemctl enable NetworkManager
systemctl enable kiosk-wifi systemctl enable kiosk-wifi
systemctl enable kiosk-autossh systemctl enable kiosk-autossh
systemctl enable kiosk-watchdog systemctl enable kiosk-watchdog
@ -92,10 +93,15 @@ apt install -y hyperion
# Run Hyperion as the 'pi' user # Run Hyperion as the 'pi' user
mkdir -p /etc/systemd/system/hyperiond.service.d mkdir -p /etc/systemd/system/hyperiond.service.d
echo -e "[Service]\nUser=pi\nGroup=pi" > /etc/systemd/system/hyperiond.service.d/override.conf echo -e "[Service]\nUser=pi\nGroup=pi" > /etc/systemd/system/hyperiond.service.d/override.conf
chown -R pi:pi /var/lib/hyperion || true mkdir -p /var/lib/hyperion
mkdir -p /etc/hyperion
chown -R pi:pi /var/lib/hyperion
chown -R pi:pi /etc/hyperion chown -R pi:pi /etc/hyperion
usermod -a -G video pi usermod -a -G video pi
# clean up apt cache to reduce image size
apt clean
# generate a version info/build info file # generate a version info/build info file
echo -n "Chromium version: " >> /version-info echo -n "Chromium version: " >> /version-info
dpkg --list | grep "ii chromium " >> /version-info dpkg --list | grep "ii chromium " >> /version-info

View File

@ -1,6 +1,7 @@
[Unit] [Unit]
Description=Generate wpa_supplicant.conf from kioskbrowser.ini Description=Configure WiFi from kioskbrowser.ini
Before=wpa_supplicant.service dhcpcd.service Requires=NetworkManager.service
After=NetworkManager.service
[Service] [Service]
Type=oneshot Type=oneshot

View File

@ -1,27 +1,41 @@
#!/bin/bash #!/bin/bash
# Redirect all output to a log file for debugging
exec &> /var/log/kiosk-wifi.log
set -ex
if [ -f "/boot/wpa_supplicant.conf" ]; then echo "--- Kiosk WiFi Configuration Starting ---"
ln -s /boot/wpa_supplicant.conf /tmp/wpa_supplicant.conf date
exit
fi
echo "Reading configuration from /boot/kioskbrowser.ini..."
WIFI_SSID=$(get-ini /boot/kioskbrowser.ini wifi ssid) WIFI_SSID=$(get-ini /boot/kioskbrowser.ini wifi ssid)
WIFI_PSK=$(get-ini /boot/kioskbrowser.ini wifi psk) WIFI_PSK=$(get-ini /boot/kioskbrowser.ini wifi psk)
WIFI_COUNTRY=$(get-ini /boot/kioskbrowser.ini wifi country)
if [ -n "${WIFI_SSID}" ] if [ -z "${WIFI_SSID}" ]; then
then echo "No WiFi SSID configured. Exiting."
echo "country=${WIFI_COUNTRY}" > /tmp/wpa_supplicant.conf exit 0
echo "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev" >> /tmp/wpa_supplicant.conf
echo "update_config=1" >> /tmp/wpa_supplicant.conf
echo "network={" >> /tmp/wpa_supplicant.conf
echo " ssid=\"${WIFI_SSID}\"" >> /tmp/wpa_supplicant.conf
if [ -n "${WIFI_PSK}" ]
then
echo " psk=\"${WIFI_PSK}\"" >> /tmp/wpa_supplicant.conf
else
echo " key_mgmt=NONE" >> /tmp/wpa_supplicant.conf
fi
echo "}" >> /tmp/wpa_supplicant.conf
fi fi
echo "Configuration found: SSID='${WIFI_SSID}'"
echo "Waiting for WiFi adapter to be ready..."
sleep 5
echo "Checking radio status..."
nmcli radio all
echo "Ensuring WiFi radio is on..."
nmcli radio wifi on
echo "Checking device status..."
nmcli device status
echo "Attempting to connect to WiFi network..."
nmcli device wifi connect "${WIFI_SSID}" password "${WIFI_PSK}"
echo "Waiting a few seconds for connection to establish..."
sleep 10
echo "Final connection status:"
nmcli connection show
echo "--- Kiosk WiFi Configuration Finished ---"

View File

@ -1,14 +0,0 @@
#!/bin/bash
echo > /etc/apt/sources.list
echo "deb http://deb.debian.org/debian bookworm main contrib non-free" >> /etc/apt/sources.list
echo "deb http://security.debian.org/debian-security bookworm-security main contrib non-free" >> /etc/apt/sources.list
echo "deb http://deb.debian.org/debian bookworm-updates main contrib non-free" >> /etc/apt/sources.list
apt update
APT_LISTCHANGES_FRONTEND=none DEBIAN_FRONTEND=noninteractive apt -o Dpkg::Options::="--force-confold" -f -y dist-upgrade
# This step is a bit risky, as the current kernel in https://github.com/raspberrypi/rpi-firmware might
# be less tested as the currently shipping kernel in the Raspberry Pi images.
apt install -y rpi-update
SKIP_CHECK_PARTITION=1 SKIP_WARNING=1 rpi-update