mirror of
https://github.com/karl0ss/AnotterKiosk.git
synced 2025-07-28 03:00:16 +01:00
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
249327a8cc | |||
ca7a2b615f | |||
c133508f3c | |||
b82615813d | |||
2acec6eca9 | |||
beab8e7727 | |||
bf4d633f7b | |||
8f80ff839a | |||
47a3da9781 | |||
9c42befea5 | |||
e17af98cfc |
1
2024-03-15-raspios-bookworm-arm64-lite.img.xz.sha256
Normal file
1
2024-03-15-raspios-bookworm-arm64-lite.img.xz.sha256
Normal file
@ -0,0 +1 @@
|
|||||||
|
58a3ec57402c86332e67789a6b8f149aeeb4e7bb0a16c9388a66ea6e07012e45 2024-03-15-raspios-bookworm-arm64-lite.img.xz
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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 uuid-runtime
|
||||||
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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Generate wpa_supplicant.conf from kioskbrowser.ini
|
Description=Generate NetworkManager connection profile from kioskbrowser.ini
|
||||||
Before=wpa_supplicant.service dhcpcd.service
|
Before=NetworkManager.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
|
@ -1,27 +1,46 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
if [ -f "/boot/wpa_supplicant.conf" ]; then
|
echo "Generating NetworkManager connection profile..."
|
||||||
ln -s /boot/wpa_supplicant.conf /tmp/wpa_supplicant.conf
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
|
# Generate a UUID for the connection
|
||||||
|
UUID=$(uuidgen)
|
||||||
|
|
||||||
|
# Create the NetworkManager connection file
|
||||||
|
cat > "/etc/NetworkManager/system-connections/${WIFI_SSID}.nmconnection" << EOF
|
||||||
|
[connection]
|
||||||
|
id=${WIFI_SSID}
|
||||||
|
uuid=${UUID}
|
||||||
|
type=wifi
|
||||||
|
interface-name=wlan0
|
||||||
|
autoconnect=true
|
||||||
|
|
||||||
|
[wifi]
|
||||||
|
mode=infrastructure
|
||||||
|
ssid=${WIFI_SSID}
|
||||||
|
|
||||||
|
[wifi-security]
|
||||||
|
auth-alg=open
|
||||||
|
key-mgmt=wpa-psk
|
||||||
|
psk=${WIFI_PSK}
|
||||||
|
|
||||||
|
[ipv4]
|
||||||
|
method=auto
|
||||||
|
|
||||||
|
[ipv6]
|
||||||
|
method=auto
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Set the correct permissions
|
||||||
|
chmod 600 "/etc/NetworkManager/system-connections/${WIFI_SSID}.nmconnection"
|
||||||
|
chown root:root "/etc/NetworkManager/system-connections/${WIFI_SSID}.nmconnection"
|
||||||
|
|
||||||
|
echo "Successfully created connection profile for ${WIFI_SSID}."
|
||||||
|
@ -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
|
|
Loading…
x
Reference in New Issue
Block a user