From 82ba48dca9488bd857da1bfd8d257c9f6e698648 Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Wed, 2 Aug 2023 16:50:00 +0200 Subject: [PATCH] Version 1.2.0 --- README.md | 146 ++++++++++++++++++++-------- home/.matchbox/kbdconfig | 2 + home/cec-off.sh | 3 - home/cec-on.sh | 3 - home/crontab.example | 4 +- home/display-off.sh | 3 - home/display-on.sh | 3 - home/reboot.sh | 26 +++++ home/screen-off.sh | 16 +++ home/screen-on.sh | 17 ++++ home/wachalarm_einstellungen.txt | 20 +++- home/waip_standby_websocket.js | 4 +- optional_boot_config/firstrun_v2.sh | 71 -------------- 13 files changed, 188 insertions(+), 130 deletions(-) create mode 100644 home/.matchbox/kbdconfig delete mode 100755 home/cec-off.sh delete mode 100755 home/cec-on.sh delete mode 100755 home/display-off.sh delete mode 100755 home/display-on.sh create mode 100644 home/reboot.sh create mode 100644 home/screen-off.sh create mode 100644 home/screen-on.sh delete mode 100644 optional_boot_config/firstrun_v2.sh diff --git a/README.md b/README.md index 6eb63bb..e1d5fdf 100644 --- a/README.md +++ b/README.md @@ -11,89 +11,147 @@ Hier finden Sie ein einfach zu nutzendes SD-Karten-Image für einen **Raspberry - **Startet unmittelbar im Vollbild** - Chromium Web-Browser mit allen wichtigen Funktionen - **Automatatische Sicherheitsupdates** - wichtige Updates werden automatisch installiert, bei Bedarf erfolgt in der Nacht ein automatischer Neustart - **Automatische Wiederherstellung** - bei Neustart oder Stromausfall startet das System im vorherigen Zustand eigenständig neu -- *Optional:* **Stromsparfunktion** - mittels HDMI-CEC kann der Monitor ausgeschaltet werden, sofern kein Einsatz anliegt +- *Optional:* **Stromsparfunktion** - liegt kein Alarm an, kann der Monitor ausgeschaltet werden - **Maus wird ausgeblendet** - sofern eine Maus angeschlossen ist, wird diese nach inaktivität ausgeblendet +--- + ## Inbetriebnahme -1. Benötigt wird ein Raspberry Pi ([kompatible Hardware](#hardware)). -2. [Aktuelles Image](https://github.com/Robert-112/Wachalarm-Kiosk/releases) herunterladen. -3. Dateien entpacken. -4. Image auf eine SD-Karate schreiben. Hierzu kann unter Windows die Anwendung [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/) genutzt werden. -6. [Webseite und weitere Optionen festlegen](#konfigurations-datei) -7. *Optional*: automatische [WLAN-Verbindung](#wlan-setup) einstellen -8. *Optional*: [feste IP-Adresse](#ip-adresse) hinterlegen -9. SD-Karte in den Raspberry Pi einsetzen und starten. +> **Hinweis** +> +> Benötigt wird ein Raspberry Pi ([kompatible Hardware](#hardware)). + +1. Laden Sie das [aktuelle Image](https://github.com/Robert-112/Wachalarm-Kiosk/releases) aus dem Release-Bereich herunter. +2. Entpacken Sie die komprimierte Datei auf Ihrem Computer (z.B. dem Programm [7Zip](https://7-zip.de/index.html)). +3. Schreiben Sie das Image mit Hilfe eines SD-Karten-Lesegeräts auf eine SD-Karte. Hierzu kann unter Windows die Anwendung [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/) genutzt werden. +4. Legen Sie die anzuzeigende [Webseite und die weitere Optionen fest](#konfigurations-datei). +5. *Optional*: Legen Sie fest, ob der Raspberry Pi sich automatisch mit einem [WLAN verbinden](#wlan-setup) soll. +6. *Optional*: Setzen Sie eine [feste IP-Adresse](#ip-adresse) für das System. +7. Setzen Sie die SD-Karte in den Raspberry Pi. Verbinden Sie Ihn mit dem Monitor und dem Internet (Netzwerkkabel oder WLAN). Starten Sie das Gerät. + +--- ## Einstellungen ### Konfigurations-Datei -1. SD-Karte in einen PC einlgen (z.B. per USB-Adapter). -2. Unter der Partition "Boot" der SD-Karte findet sich die Datei *[wachalarm_einstellungen.txt](https://github.com/Robert-112/Wachalarm-Kiosk/blob/custom/home/wachalarm_einstellungen.txt)*. +Die wichtigsten Einstellungen lassen sich ohne vorkenntnisse (von z.B. Linux) direkt mit einem normalen PC anpassen. + +Benötigt wird ein SD-Karten-Lesegerät und ein Text-Editor. + +1. Schließen Sie die zuvor mit dem Image beschriebene SD-Karte an ihren PC an (z.B. per USB-Adapter). +2. Im Datei-Explorer sollte jetzt ein neues Laufwerk erscheinen. In der Partition "Boot" der SD-Karte findet sich die Datei *[wachalarm_einstellungen.txt](https://github.com/Robert-112/Wachalarm-Kiosk/blob/custom/home/wachalarm_einstellungen.txt)*. 3. folgende Einstellungen können gesetzt werden: #### Webseite beim Start -Webseite, die beim Start geöffnet werden soll, z.B. https://wachalarm.leitstelle-lausitz.de/waip/520101 + +Legt fest, welche Webseite beim Start geöffnet werden soll. Wollen Sie den Wachalarm für die Feuerwehr Cottbus anzeigen wäre dies z.B. die Adresse https://wachalarm.leitstelle-lausitz.de/waip/520101 + ``` startup_url=https://wachalarm.leitstelle-lausitz.de/waip/520101 ``` -#### Standby aktivieren -Automatisches Ausschalten des Bildschirms aktivieren, sofern kein Einsatz anliegt +#### Standby - Funktion ein-/ausschalten + +Legt fest ob der Bildschirm automatisch ausgeschaltet werden soll, wenn kein Einsatz anliegt. + +Es gibt folgende Optionen: +- 1 = aktiviert diese Funktion (Monitor geht aus sobald kein Alarm mehr angzeigt wird) +- 0 = deaktivert diese Funktion (Monitor bleibt immer an) -1 == an, 0 == aus ``` standby_enable=1 ``` -#### Standby - Alarmmonitore-URL -*(gilt nur wenn Standby aktiv)* +#### Standby - Art des Monitors festlegen +*(gilt nur wenn die Standby-Funktion aktiviert wurde)* + +Legt fest, was für ein Monitor verwendet wird. Je nach Typ (PC-Monitor oder Fernseher mit HDMI-CEC), sind unterschiedliche Befehle notwendig um den Monitor ein- oder auszuschalten. + +Es gibt folgende Optionen: +- t = Typ "TV", nutzt [CEC-Befehle](https://de.wikipedia.org/wiki/Consumer_Electronics_Control) um den Fernseher ein- oder auszuschalten +- m = Typ "Monitor", nutzt den Befehlssatz `vcgencmd display_power` um einen PC-Monitor ein- oder auszuschalten + +``` +screen_type=t +``` + +#### Standby - Websocket-URL +*(gilt nur wenn die Standby-Funktion aktiviert wurde)* + +Dieser Wert sollte normalerweise nicht geändert werden. Es handelt sich um die URL des Wachalarm-Servers, über welche die Websocket-Befehle empfangen und verarbeitet werden. Nur mit dieser URL kann das Standby-Signal korrekt ausgewertet werden. -URL zur auswahl der Alarmmonitore, z.B. https://wachalarm.leitstelle-lausitz.de/waip/ . -Die URL ist notwendig damit das Standby-Signal per Websocket korrekt ausgewertet werden kann. -(! dies ist nicht die URL des einzelnen Alarmmonitors !) ``` standby_waipurl=https://wachalarm.leitstelle-lausitz.de/waip ``` +> **Achtung!** +> +> Es handelt sich hierbei nicht die URL des einzelnen Alarmmonitors! + #### Standby - Wachennummer -*(gilt nur wenn Standby aktiv)* +*(gilt nur wenn die Standby-Funktion aktiviert wurde)* Nummer der Wache, für die bei Alarmen der Monitor angeschaltet werden soll, z.B. 520101 für CB FW Cottbus + ``` standby_wachennr=520101 ``` +> **Achtung!** +> +> Hier sollte im Normalfall immer die gleiche Nummer des aufgerufenen Alarmmonitors hinterlegt werden (siehe Parameter `startup_url`). + #### System-Statusmeldungen aktivieren -Automatisches senden von Status-Meldungen des Systems aktivieren. -Es handelt sich um allgemeine Systeminforamtionen wie z.B. Kernel-Version, Hardwaremerkmale & Udpatestatus. Personenbezogene Daten werden nicht ermittelt. +Hiermit kann ein automatisches Senden von Status-Meldungen aktiviert werden. + +Es handelt sich um allgemeine Systeminforamtionen wie z.B. Kernel-Version, Hardwaremerkmale & Udpatestatus. Personenbezogene Daten werden nicht verarbeitet. + +- 1 = an +- 0 = aus -1 == an, 0 == aus ``` report_enable=1 ``` #### System-Statusmeldungen - Status-URL -*(gilt nur wenn System-Statusmeldungen aktiv)* +*(gilt nur wenn System-Statusmeldungen aktiviert wurden)* + +URL an welche Status-Meldungen durch das System gesendet werden. -URL an die Status-Meldungen durch das System gesendet werden. ``` report_url=https://wachalarm.leitstelle-lausitz.de/client_statusmessage ``` -### WLAN Setup +#### automatische Neustarts -WLAN-Verbindungen lassen Sich beim Raspberry über eine spezielle Datei vorgeben. +Legt fest, ob und wenn ja wann, ein automatischer Neustart des Raspberry Pi erfolgen soll. Diese Funktion ist hilfreich um z.B. bei schlechten WLAN-Verbindungen das System automatisch neuzustarten. -1. SD-Karte in PC einsetzen. -2. In der Boot-Partition eine Datei mit dem Namen `wpa_supplicant.conf` erstellen. +Es gibt folgende Optionen: +- 0 = automatischer Neustart ist deaktiviert. +- w = Neustart jeden Montag um 3:00 Uhr. +- z = Neustart jeden Dienstag und jeden Freitag um 3:00 Uhr. +- t = Neustart jeden Tag um 3:00 Uhr. + +``` +restart_type=w +``` + +--- + +### WLAN einstellen + +WLAN-Verbindungen lassen Sich beim Raspberry über eine spezielle Datei vorgeben, ohne weitere Einstellungen am System zu tätigen. Gehen Sie wie folgt vor, um WLAN zu aktivieren: + +1. Schließen Sie die zuvor mit dem Image beschriebene SD-Karte an ihren PC an (z.B. per USB-Adapter). +2. Im Datei-Explorer sollte jetzt ein neues Laufwerk erscheinen. In der Partition "Boot" der SD-Karte erstellen Sie eine Datei mit dem Namen `wpa_supplicant.conf`. 3. Eine fertige Vorlage findet sich hier: [wpa_supplicant.conf](https://github.com/Robert-112/Wachalarm-Kiosk/blob/custom/optional_boot_config/wpa_supplicant.conf) 4. Ersetzen Sie `Name-des-WLANs` und `ganz-geheimes-kennwort` mit Ihren eigenen WLAN-Einstellungen. -5. Datei speichern und SD-Karte wieder in den Raspberry Pi einsetzen. Er sollte sich jetzt eigenständig mit dem WLAN verbinden. +5. Speichern Sie die Datei auf der SD-Karte und setzen Sie diese wieder in den Raspberry Pi ein. Nach Abschluss des Startvorgangs sollte sich das Gerät eigenständig mit dem WLAN verbinden. #### Beispiel wpa_supplicant.conf für WLAN _mit Kennwort_ ``` @@ -118,9 +176,11 @@ network={ } ``` -### IP-Adresse +--- -Mittels der Datei `cmdline.txt` kann direkt eine feste IP-Adresse für den Raspberry vorgegeben werden. +### IP-Adresse vorgeben + +Mittels der Datei `cmdline.txt` kann direkt eine feste IP-Adresse für den Raspberry Pi vorgegeben werden. 1. SD-Karte in PC einsetzen. 2. In der Boot-Partition die Datei `cmdline.txt` finden und mit einem Editor öffnen. @@ -132,34 +192,36 @@ Damit wird die IP-Adresse für die Schnittstelle `eth0` auf 192.168.2.20 festleg Bereits angepasste `cmdline.txt`-Dateien finden Sie hier: [optional_boot_config](https://github.com/Robert-112/Wachalarm-Kiosk/blob/custom/optional_boot_config) +--- + ## Hardware -Dieses Image sollte mit allen [Raspberry Pi's](https://www.raspberrypi.org/products/) funktionieren. Die Versionen 3 und 4 werden empfohlen, weil die kleinen Varianten zu wenig Leistung bieten. 3 und 4 haben zudem ein eingebautes WLAN-Modul. +Dieses Image sollte mit allen bekannten [Raspberry Pi's](https://www.raspberrypi.org/products/) funktionieren. Die Versionen 3 und 4 werden empfohlen, da die älteren Varianten zu wenig Leistung bieten. Raspberry 3 und 4 haben zudem ein eingebautes WLAN-Modul. Stellen Sie sicher, dass Sie eine [kompatible SD-Karte](http://elinux.org/RPi_SD_cards) verwenden (mind. 4 GB). `Class 10`-Karten sollten in jedem Fall funktionieren. Ein Raspberry Pi benötigt ein [2.5 A USB-Netzteil](https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md). +--- + ## Bekannte Fehler -### Kein Ton über HDMI (Raspberry Pi 4) +### kein Ton über HDMI (Raspberry Pi 4) - stellen Sie sicher das sie das HDMI-Kabel am HDMI-Port 0 des Raspberrys angeschlossen haben (direkt neben dem USB-C-Stromanschluss) - prüfen Sie ob der Monitor / Fernseher über den angeschlossenen HDMI-Port auch wirklich einen Ton ausgegeben kann - prüfen Sie mittels `sudo raspi-config` ob HDMI als Audio-Ausgabequelle eingestellt wurde ### ich benötige ein anderes Kennwort -- öffnen Sie die Eingabekonsole +- öffnen Sie die Eingabekonsole am Raspberry Pi - `sudo raspi-config` - Navigieren Sie zu `Change User Password` - geben Sie ein neues Passwort ein und bestätigen Sie es - das eingegebene Kennwort gilt für den Benutzer `pi` -### Stromsparmodus bei einem PC-Monitor -- Wenn statt eines HDMI-CEC-TV-Monitors z.B. ein ganz normaler PC-Monitor verwendet wird (angeschlossen per HDMI oder DVI), dann wird dieser standardmäßig nicht automatisch in den Standby-Modus gehen. -- Dann kann versucht werden, die Skripte zum Ausschalten des Monitors anzupassen. -- Mit der bereits angepassten Dateien `cmdline.txt` und `firstrun_v2.sh` (nach Download umbennen in `firstrun.sh`) werden die Standby-Befehle geändert. -- es werden die `display-off.sh` und `display-on.sh` aktiviert. -- Außerdem lässt sich der Monitor dann mit folgenden Tastenkombinationen steuern +### Monitor / Fernseher aus Standby erwecken + +- Wenn die Standby-Funktion aktiviert wurde, schaltet sich der angeschlossene Monitor oder Fernseher aus, solange kein Alarm angezeigt wird +- Mit einer Tastutur kann der Monitor durch folgende Tastenkombinationen ein- und ausgeschaltet werden: - `STRG` + `i` -> schaltet den Monitor ein - `STRG` + `o` -> schaltet den Monitor aus diff --git a/home/.matchbox/kbdconfig b/home/.matchbox/kbdconfig new file mode 100644 index 0000000..68e3175 --- /dev/null +++ b/home/.matchbox/kbdconfig @@ -0,0 +1,2 @@ +o=!/home/pi/screen-off.sh +i=!/home/pi/screen-on.sh diff --git a/home/cec-off.sh b/home/cec-off.sh deleted file mode 100755 index 1033e4f..0000000 --- a/home/cec-off.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -echo 'standby 0' | cec-client -s > /dev/null diff --git a/home/cec-on.sh b/home/cec-on.sh deleted file mode 100755 index cd4473f..0000000 --- a/home/cec-on.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -echo 'on 0' | cec-client -s > /dev/null diff --git a/home/crontab.example b/home/crontab.example index e7be81f..96c75c6 100644 --- a/home/crontab.example +++ b/home/crontab.example @@ -19,8 +19,8 @@ DISPLAY=:0.0 10 * * * * ~/report_system.sh >/dev/null 2>&1 -# Neustart des Raspberry Pi jeden Donnerstag um 3:30 Uhr -30 3 * * 4 sudo reboot +# Neustart-Skript jeden Tag um 3:00 Uhr ausfuehren (pruefung erfolgt im Skript) +0 3 * * * sudo ~/reboot.sh # Example: Turn display on weekdays at 7 AM # Note: You may exchange "display-on" / "display-off" with "cec-on" / "cec-off" in order to use HDMI CEC diff --git a/home/display-off.sh b/home/display-off.sh deleted file mode 100755 index 90cf3a2..0000000 --- a/home/display-off.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -sudo vcgencmd display_power 0 > /dev/null diff --git a/home/display-on.sh b/home/display-on.sh deleted file mode 100755 index 794b064..0000000 --- a/home/display-on.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -sudo vcgencmd display_power 1 > /dev/null diff --git a/home/reboot.sh b/home/reboot.sh new file mode 100644 index 0000000..9733a40 --- /dev/null +++ b/home/reboot.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +day=$(date +%u) + +# Einstellungen einlesen +if [ -f /boot/wachalarm_einstellungen.txt ]; then + source /boot/wachalarm_einstellungen.txt +fi + +#Reboot jeden Tag +if [[ "$restart_type" == *"t"* ]]; then + sudo reboot; +#Reboot falls heute Montag ist +elif [[ "$restart_type" == *"w"* ]]; then + if [[ "$day" == *"1"* ]]; then + sudo reboot; + fi +#Reboot falls heute Dienstag oder Freitag ist +elif [[ "$restart_type" == *"z"* ]]; then + if [[ "$day" == *"2"* ]] || [[ "$day" == *"5"* ]]; then + sudo reboot; + fi +#kein Reboot +elif [[ "$restart_type" == *"0"* ]]; then + # nichts unternehmen +fi diff --git a/home/screen-off.sh b/home/screen-off.sh new file mode 100644 index 0000000..c68036f --- /dev/null +++ b/home/screen-off.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Einstellungen einlesen +if [ -f /boot/wachalarm_einstellungen.txt ]; then + source /boot/wachalarm_einstellungen.txt +fi + +echo "$screen_type"; + +if [[ $screen_type == *"m"* ]]; then + echo "display off"; + sudo vcgencmd display_power 0 > /dev/null +elif [[ $screen_type == *"t"* ]]; then + echo "hdmi off"; + echo 'standby 0' | cec-client -s > /dev/null +fi diff --git a/home/screen-on.sh b/home/screen-on.sh new file mode 100644 index 0000000..2f5fa8c --- /dev/null +++ b/home/screen-on.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Einstellungen einlesen +if [ -f /boot/wachalarm_einstellungen.txt ]; then + source /boot/wachalarm_einstellungen.txt +fi + +echo "$screen_type"; + +if [[ "$screen_type" == *"m"* ]]; then + echo "display on"; + sudo vcgencmd display_power 1 > /dev/null +elif [[ "$screen_type" == *"t"* ]]; then + echo "hdmi on"; + echo 'on 0' | cec-client -s > /dev/null +fi + diff --git a/home/wachalarm_einstellungen.txt b/home/wachalarm_einstellungen.txt index a024020..10275b7 100644 --- a/home/wachalarm_einstellungen.txt +++ b/home/wachalarm_einstellungen.txt @@ -1,12 +1,30 @@ # Web-Adresse, die beim Start geoeffnet werden soll, z.B. https://wachalarm.leitstelle-lausitz.de/waip/520101 startup_url=https://wachalarm.leitstelle-lausitz.de/waip/0 +# +# # Ausschalten des Bildschrims bei Standby aktivieren, 1 == an, 0 == aus standby_enable=1 +# +# +# Monitor-Einstellung fuer Standby, "m" == PC-Monitor, "t" == TV mit HDMI-CEC +screen_type=t +# +# # wenn Standby aktiv: URL zur auswahl der Alarmmonitore, z.B. https://wachalarm.leitstelle-lausitz.de/waip/ standby_waipurl=https://wachalarm.leitstelle-lausitz.de/waip +# +# # wenn Standby aktiv: Nummer der Wache, für die bei Alarmen der Monitor angeschaltet werden soll, z.B. 520101 für CB FW Cottbus standby_wachennr=0 +# +# # Senden von System-Statusmeldungen aktivieren, 1 == an, 0 == aus report_enable=1 +# +# # wenn System-Statusmeldungen aktiv, dann an folgende URL senden -report_url=https://wachalarm.leitstelle-lausitz.de/client_statusmessage \ No newline at end of file +report_url=https://wachalarm.leitstelle-lausitz.de/client_statusmessage +# +# +# Neustarteinstellungen, "0" == inaktiv, "w" == Mo 3:00, "z" == Di & Fr 3:00, "t" == immer 3:00 +restart_type=0 \ No newline at end of file diff --git a/home/waip_standby_websocket.js b/home/waip_standby_websocket.js index 8ff0946..1c0ce7a 100644 --- a/home/waip_standby_websocket.js +++ b/home/waip_standby_websocket.js @@ -25,7 +25,7 @@ socket.on('connect_error', (err) => { socket.on('io.new_waip', function () { console.log('AN - Display einschalten'); - var yourscript = exec('~/cec-on.sh', (error, stdout, stderr) => { + var yourscript = exec('~/screen-on.sh', (error, stdout, stderr) => { console.log(stdout); console.log(stderr); if (error !== null) { @@ -36,7 +36,7 @@ socket.on('io.new_waip', function () { socket.on('io.standby', function () { console.log('AUS - Display ausschalten'); - var yourscript = exec('~/cec-off.sh', (error, stdout, stderr) => { + var yourscript = exec('~/screen-off.sh', (error, stdout, stderr) => { console.log(stdout); console.log(stderr); if (error !== null) { diff --git a/optional_boot_config/firstrun_v2.sh b/optional_boot_config/firstrun_v2.sh deleted file mode 100644 index 2147583..0000000 --- a/optional_boot_config/firstrun_v2.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -set +e -# feste IP-Adressen fuer LAN und WLAN hinterlegen -cat > /etc/dhcpcd.conf <<'DHCPCDEOF' -# configuration for dhcpcd. -# See dhcpcd.conf(5) for details. - -# Inform the DHCP server of our hostname for DDNS. -hostname - -# Use the hardware address of the interface for the Client ID. -clientid -# or -# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. -# Some non-RFC compliant DHCP servers do not reply with this set. -# In this case, comment out duid and enable clientid above. -#duid - -# Persist interface configuration when dhcpcd exits. -persistent - -# Rapid commit support. -# Safe to enable by default because it requires the equivalent option set -# on the server to actually work. -option rapid_commit - -# A list of options to request from the DHCP server. -option domain_name_servers, domain_name, domain_search, host_name -option classless_static_routes -# Respect the network MTU. This is applied to DHCP routes. -option interface_mtu - -# Most distributions have NTP support. -#option ntp_servers - -# A ServerID is required by RFC2131. -require dhcp_server_identifier - -# Generate SLAAC address using the Hardware Address of the interface -#slaac hwaddr -# OR generate Stable Private IPv6 Addresses based from the DUID -slaac private - -# static IP configuration: - -interface wlan0 -static ip_address=192.168.179.123/24 -static routers=192.168.179.8 -static domain_name_servers=1.1.1.1 - -DHCPCDEOF -rm -f /boot/firstrun.sh -sed -i 's| systemd.run.*||g' /boot/cmdline.txt -# 3d-Treiber deaktiveren -sed -i 's/dtoverlay=vc4-kms-v3d/#dtoverlay=vc4-kms-v3d/g' /boot/config.txt -# Audio Klinke aktivieren -sed -i 's/#dtparam=audio=on/dtparam=audio=on/g' /boot/config.txt -# display-*.sh statt hdmicec verwenden -sed -i 's/cec-on.sh/display-on.sh/g' /home/pi/waip_standby_websocket.js -sed -i 's/cec-off.sh/display-off.sh/g' /home/pi/waip_standby_websocket.js -# Tastenkuerzel fuer Monitor ein/aus -mkdir /home/pi/.matchbox -touch /home/pi/.matchbox/kbdconfig -cat > /home/pi/.matchbox/kbdconfig <<'KBDCONFIGEOF' -o=!/home/pi/display-off.sh -i=!/home/pi/display-on.sh - -KBDCONFIGEOF -# Passwort des Benutzers pi aendern -echo "pi:ganz_geheim" | sudo chpasswd -exit 0 \ No newline at end of file