SignageWithAlpineLinux
Zur Navigation springen
Zur Suche springen
Signage with Alpine linux on the raspberry pi
hardware
This guide works for the Raspberry Pi3 and Raspberry Pi4.
In case you want to run a viewer for Schlangenprogrammiernacht you'll need a Raspberry Pi4 as the javascript viewer ist quite demanding
setup image
- Format SD-Card as FAT32 with a MSDOS partition table
- Grab the base file system from the alpine linux website (pick aarch64)
- Mount new partition and unzip archive directly to SDcard
- umount and plug SDcard into raspberry pi
- boot and log in as "root" without entering a password
- Make sure the raspberry-pi is connected to the internet
prepare base system
- start "setup-alpine"
- select keyboard language (e.g. de-nodeadkeys)
- choose hostname (e.g. "signage")
- chose interface to listen for DHCP for (e.g. eth0)
- select timezone (e.g. Europe/Berlin)
- add user e.g. "sign"
- Agree to install on /dev/mmcblk0p1
- install as "sys"
- reboot the system
- (optional) continue via SSH
- select correct repositories
root> apk update root> apk add nano root> nano /etc/apk/repositories #uncomment the community repository root> apk update
setup base system
- setup boot parameters
- add file /boot/usercfg.txt with the following content
root> echo "disable_overscan=1 dtoverlay=vc4-kms-v3d gpu_mem=128" > /boot/usercfg.txt
- (optional) switch to udev
root> setup-devd
setup windowmanager
- install window manager
root> apk add screen root> apk add seatd wlr-randr mesa-dri-gallium sway tinydm dbus root> apk add wlr-randr wtype
- start seatd on boot and add "sign" to its group
root> rc-service seatd start root> rc-update add seatd default root> adduser sign seat # grant sign access to seatd
- copy and edit sway config for user "sign"
root> su - sign sign> mkdir -p ~/.config/sway sign> cp /etc/sway/config ~/.config/sway sign> echo " # hide cursor seat seat0 hide_cursor 8000 # force fullhd output HDMI-A-1 mode 1920x1080 exec ~/swaystart.sh &" >> ~/.config/sway/config sign> touch ~/swaystart.sh
- setup autostart for user "sign"
root> echo "AUTOLOGIN_UID=1000" >> /etc/conf.d/tinydm root> rc-update add tinydm default root> tinydm-set-session -s /usr/share/wayland-sessions/sway.desktop
- fix file permissions
sign> chmod +x ~/swaystart.sh
- configure XDG_RUNTIME_DIR
sign> echo "if test -z \"\${XDG_RUNTIME_DIR}\"; then export XDG_RUNTIME_DIR=/tmp/\$(id -u)-runtime-dir if ! test -d \"\${XDG_RUNTIME_DIR}\"; then mkdir \"\${XDG_RUNTIME_DIR}\" chmod 0700 \"\${XDG_RUNTIME_DIR}\" fi fi" > ~/.profile
setup browser (chromium)
You can use pretty much any browser that supports wayland. The default is chromium.
- install and autostart chromium
root> apk add chromium font-noto sign> echo "#!/bin/sh URL=https://schlangen.bytewerk.org/watch/ chromium-browser --kiosk -incognito \ --enable-features=UseOzonePlatform --ozone-platform=wayland \ --start-fullscreen --noerrdialogs --disable-infobars --disk-cache-dir=/dev/null \ --disk-cache-size=1 $URL & while true; do # after a while all browsers begin to stutter. Here is a crude fix sleep 600 WAYLAND_DISPLAY=wayland-1 wtype -P F5 done" > ~/swaystart.sh
setup browser (falkon)
In case you don't want to use chromium you can also use another browser. For instance falkon.
- install and autostart falkon
sign> apk add falkon font-noto sign> echo "#!/bin/sh URL=http://example.com/ falkon -e -i -f $URL & while true; do # after a while all browsers begin to stutter. Here is a crude fix sleep 600 WAYLAND_DISPLAY=wayland-1 wtype -P F5 done" > ~/swaystart.sh
setup SPN viewer
root> apk add font-noto-emoji # for snake emojis