Version 1.2.0

This commit is contained in:
Robert Richter 2023-08-02 16:50:00 +02:00
parent 641c26c40d
commit 82ba48dca9
13 changed files with 188 additions and 130 deletions

146
README.md
View File

@ -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 - **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 - **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 - **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 - **Maus wird ausgeblendet** - sofern eine Maus angeschlossen ist, wird diese nach inaktivität ausgeblendet
---
## Inbetriebnahme ## Inbetriebnahme
1. Benötigt wird ein Raspberry Pi ([kompatible Hardware](#hardware)). > **Hinweis**
2. [Aktuelles Image](https://github.com/Robert-112/Wachalarm-Kiosk/releases) herunterladen. >
3. Dateien entpacken. > Benötigt wird ein Raspberry Pi ([kompatible Hardware](#hardware)).
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) 1. Laden Sie das [aktuelle Image](https://github.com/Robert-112/Wachalarm-Kiosk/releases) aus dem Release-Bereich herunter.
7. *Optional*: automatische [WLAN-Verbindung](#wlan-setup) einstellen 2. Entpacken Sie die komprimierte Datei auf Ihrem Computer (z.B. dem Programm [7Zip](https://7-zip.de/index.html)).
8. *Optional*: [feste IP-Adresse](#ip-adresse) hinterlegen 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.
9. SD-Karte in den Raspberry Pi einsetzen und starten. 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 ## Einstellungen
### Konfigurations-Datei ### Konfigurations-Datei
1. SD-Karte in einen PC einlgen (z.B. per USB-Adapter). Die wichtigsten Einstellungen lassen sich ohne vorkenntnisse (von z.B. Linux) direkt mit einem normalen PC anpassen.
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)*.
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: 3. folgende Einstellungen können gesetzt werden:
#### Webseite beim Start #### 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 startup_url=https://wachalarm.leitstelle-lausitz.de/waip/520101
``` ```
#### Standby aktivieren #### Standby - Funktion ein-/ausschalten
Automatisches Ausschalten des Bildschirms aktivieren, sofern kein Einsatz anliegt
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_enable=1
``` ```
#### Standby - Alarmmonitore-URL #### Standby - Art des Monitors festlegen
*(gilt nur wenn Standby aktiv)* *(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 standby_waipurl=https://wachalarm.leitstelle-lausitz.de/waip
``` ```
> **Achtung!**
>
> Es handelt sich hierbei nicht die URL des einzelnen Alarmmonitors!
#### Standby - Wachennummer #### 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 Nummer der Wache, für die bei Alarmen der Monitor angeschaltet werden soll, z.B. 520101 für CB FW Cottbus
``` ```
standby_wachennr=520101 standby_wachennr=520101
``` ```
> **Achtung!**
>
> Hier sollte im Normalfall immer die gleiche Nummer des aufgerufenen Alarmmonitors hinterlegt werden (siehe Parameter `startup_url`).
#### System-Statusmeldungen aktivieren #### 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 report_enable=1
``` ```
#### System-Statusmeldungen - Status-URL #### 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 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. Es gibt folgende Optionen:
2. In der Boot-Partition eine Datei mit dem Namen `wpa_supplicant.conf` erstellen. - 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) 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. 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_ #### 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. 1. SD-Karte in PC einsetzen.
2. In der Boot-Partition die Datei `cmdline.txt` finden und mit einem Editor öffnen. 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) Bereits angepasste `cmdline.txt`-Dateien finden Sie hier: [optional_boot_config](https://github.com/Robert-112/Wachalarm-Kiosk/blob/custom/optional_boot_config)
---
## Hardware ## 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. 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). Ein Raspberry Pi benötigt ein [2.5 A USB-Netzteil](https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md).
---
## Bekannte Fehler ## 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) - 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 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 - prüfen Sie mittels `sudo raspi-config` ob HDMI als Audio-Ausgabequelle eingestellt wurde
### ich benötige ein anderes Kennwort ### ich benötige ein anderes Kennwort
- öffnen Sie die Eingabekonsole - öffnen Sie die Eingabekonsole am Raspberry Pi
- `sudo raspi-config` - `sudo raspi-config`
- Navigieren Sie zu `Change User Password` - Navigieren Sie zu `Change User Password`
- geben Sie ein neues Passwort ein und bestätigen Sie es - geben Sie ein neues Passwort ein und bestätigen Sie es
- das eingegebene Kennwort gilt für den Benutzer `pi` - das eingegebene Kennwort gilt für den Benutzer `pi`
### Stromsparmodus bei einem PC-Monitor ### Monitor / Fernseher aus Standby erwecken
- 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. - Wenn die Standby-Funktion aktiviert wurde, schaltet sich der angeschlossene Monitor oder Fernseher aus, solange kein Alarm angezeigt wird
- Mit der bereits angepassten Dateien `cmdline.txt` und `firstrun_v2.sh` (nach Download umbennen in `firstrun.sh`) werden die Standby-Befehle geändert. - Mit einer Tastutur kann der Monitor durch folgende Tastenkombinationen ein- und ausgeschaltet werden:
- es werden die `display-off.sh` und `display-on.sh` aktiviert.
- Außerdem lässt sich der Monitor dann mit folgenden Tastenkombinationen steuern
- `STRG` + `i` -> schaltet den Monitor ein - `STRG` + `i` -> schaltet den Monitor ein
- `STRG` + `o` -> schaltet den Monitor aus - `STRG` + `o` -> schaltet den Monitor aus

2
home/.matchbox/kbdconfig Normal file
View File

@ -0,0 +1,2 @@
<ctrl>o=!/home/pi/screen-off.sh
<ctrl>i=!/home/pi/screen-on.sh

View File

@ -1,3 +0,0 @@
#!/bin/bash
echo 'standby 0' | cec-client -s > /dev/null

View File

@ -1,3 +0,0 @@
#!/bin/bash
echo 'on 0' | cec-client -s > /dev/null

View File

@ -19,8 +19,8 @@ DISPLAY=:0.0
10 * * * * ~/report_system.sh >/dev/null 2>&1 10 * * * * ~/report_system.sh >/dev/null 2>&1
# Neustart des Raspberry Pi jeden Donnerstag um 3:30 Uhr # Neustart-Skript jeden Tag um 3:00 Uhr ausfuehren (pruefung erfolgt im Skript)
30 3 * * 4 sudo reboot 0 3 * * * sudo ~/reboot.sh
# Example: Turn display on weekdays at 7 AM # 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 # Note: You may exchange "display-on" / "display-off" with "cec-on" / "cec-off" in order to use HDMI CEC

View File

@ -1,3 +0,0 @@
#!/bin/bash
sudo vcgencmd display_power 0 > /dev/null

View File

@ -1,3 +0,0 @@
#!/bin/bash
sudo vcgencmd display_power 1 > /dev/null

26
home/reboot.sh Normal file
View File

@ -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

16
home/screen-off.sh Normal file
View File

@ -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

17
home/screen-on.sh Normal file
View File

@ -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

View File

@ -1,12 +1,30 @@
# Web-Adresse, die beim Start geoeffnet werden soll, z.B. https://wachalarm.leitstelle-lausitz.de/waip/520101 # 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 startup_url=https://wachalarm.leitstelle-lausitz.de/waip/0
#
#
# Ausschalten des Bildschrims bei Standby aktivieren, 1 == an, 0 == aus # Ausschalten des Bildschrims bei Standby aktivieren, 1 == an, 0 == aus
standby_enable=1 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/ # wenn Standby aktiv: URL zur auswahl der Alarmmonitore, z.B. https://wachalarm.leitstelle-lausitz.de/waip/
standby_waipurl=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 # 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 standby_wachennr=0
#
#
# Senden von System-Statusmeldungen aktivieren, 1 == an, 0 == aus # Senden von System-Statusmeldungen aktivieren, 1 == an, 0 == aus
report_enable=1 report_enable=1
#
#
# wenn System-Statusmeldungen aktiv, dann an folgende URL senden # wenn System-Statusmeldungen aktiv, dann an folgende URL senden
report_url=https://wachalarm.leitstelle-lausitz.de/client_statusmessage 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

View File

@ -25,7 +25,7 @@ socket.on('connect_error', (err) => {
socket.on('io.new_waip', function () { socket.on('io.new_waip', function () {
console.log('AN - Display einschalten'); 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(stdout);
console.log(stderr); console.log(stderr);
if (error !== null) { if (error !== null) {
@ -36,7 +36,7 @@ socket.on('io.new_waip', function () {
socket.on('io.standby', function () { socket.on('io.standby', function () {
console.log('AUS - Display ausschalten'); 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(stdout);
console.log(stderr); console.log(stderr);
if (error !== null) { if (error !== null) {

View File

@ -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'
<ctrl>o=!/home/pi/display-off.sh
<ctrl>i=!/home/pi/display-on.sh
KBDCONFIGEOF
# Passwort des Benutzers pi aendern
echo "pi:ganz_geheim" | sudo chpasswd
exit 0