Zuweilen benötigt man ein kleines Kiosk System, das direkt und ausschließlich in einen Browser bootet und dabei eine einzelne Webseite verfügbar macht. Es soll eine virtuelle Tastatur einblendbar sein, z.B. auf einem TouchScreen PC. Dafür ist diese Anleitung gemacht. Wir verwenden ein Alpine Linux und das Gesamtsystem wird weniger als 800MB Speicherplatz benötigen.
Die Installation ist auf einem physischen System am sinnvollsten. Hier im Beispiel exerziere ich aber in einer vm durch:
# qemu plattenimage erstellen qemu-img create kiosk.raw 2G # qemu live aus dem internet von alpine iso booten und installieren qemu-system-x86_64 -m 2048 -enable-kvm -hda kiosk.raw -cdrom https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-standard-3.20.1-x86_64.iso
(ja ich weiß, dass es eine separate VM optimierte iso von alpine gibt. Die Installation soll aber auch für physischen Rechner verwendet werden können. daher auch raw statt qcow2 format - weil man das später mit dd ohne vorherige Wandlung wieder 1:1 auf eine ssd/emmc übertragen kann)
Alternative Variante... direkt auf einem physischen System installieren. Dazu die iso mit wget https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-standard-3.20.1-x86_64.iso herunterladen, auf usb stick schreiben und davon booten.
In beiden Varianten geht es hier mit dem Setup weiter
dann als root mit leerem passwort einloggen und mittels dem Befehl installieren:
setup-alpine
de enter, de enter, kiosk enter, dann dreimal enter, ein passwort wählen und weiter mit enter enter bis zum Punkt "Disk & Install", dort dann sda eingeben, dann sys eingeben, dann y eingeben.
Also im Kern: Den Dialogen folgen, auf sys installieren und openssh verwenden, ein root passwort setzen und erst einmal keinen zusätzlichen user anlegen. bootloader schreiben. Dann in das frische System booten. (usb stick oder cdrom abklemmen). Wenn installiert, dann reboot als befehl eingeben.
Dann gehts im frischen System weiter. Entweder direkt mein Setup-Script runterladen und ausführen
apk add curl && curl https://finalmedia.de/kb/4fc8962abf25/do | sh
oder die sichere Variante... Schritt für Schritt befolgen:
# community repository aktivieren sed -i "/community/s/^#//" /etc/apk/repositories apk update apk upgrade # xserver basics minimal installieren setup-xorg-base apk add xorg-server xinit xterm # chromium installieren apk add chromium rc-update add dbus # user kiosk anlegen und ihm X11 Zugriff gestatten adduser kiosk addgroup kiosk input addgroup kiosk video # autologin des users kiosk realisieren apk add agetty sed -i 's/getty 38400 tty1/agetty --autologin kiosk tty1 linux/g' /etc/inittab # login info screen im startup apk add figlet figlet kiosk > /etc/motd echo system >> /etc/motd # startup loop script gui erstellen touch /home/kiosk/gui chmod +x /home/kiosk/gui # bei einem Display 1024x768 Pixel also 1024,768 # das ggf. anpassen, wenn andere auflösung gewünscht export resolution=1024,768 export url=https://finalmedia.de/code cat << +++EOF+++ > /home/kiosk/gui #!/bin/sh while true do test -f /home/kiosk/debug && rm -f /home/kiosk/debug && chromium --start-maximized --window-position=0,0 https://chromewebstore.google.com/detail/virtuelles-tastatur-tool/gkiknnlmdgcmhmncldcmmnhhdiakielc chromium --window-size=$resolution --window-position=0,0 --start-fullscreen --kiosk --incognito "$url" done +++EOF+++ # xstartup und profile eintragen echo "exec /home/kiosk/gui" > /home/kiosk/.xinitrc echo "while true; do startx; done" > /home/kiosk/.profile # debughilfe aktivieren touch /home/kiosk/debug # neustarten reboot
dann im chromium die extension "screen virtual keyboard" installieren und auf deutsch konfigurieren, sowie 1.5 size, black und "Show on-sceen keyboard only on active text field" stellen. runter scrollem, deutsch hinzufügen, englisch abwählen. Save klicken. Dann.. wichtig.. auf das Pullz eIcon klicken, Manage Extension klicken, Details klicken, und "Allow in icognito" aktiviere, damit das Keyboard auch im incognito mode genutzt werden kann. Dann alle tabs schließen und damit chromium beenden. damit wird er im kiosk mode respawned. und startet künftig auch nur in diesem Modus.