IServ-Infodisplay: Unterschied zwischen den Versionen
Lukas (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Lukas (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
Unabhängig davon sind die Infodisplay allen Benutzern sichtbar, die das Recht "Infobildschirme verwalten" zugewiesen bekommen haben. | Unabhängig davon sind die Infodisplay allen Benutzern sichtbar, die das Recht "Infobildschirme verwalten" zugewiesen bekommen haben. | ||
Im [[d:IServ|Debacher-Wiki]] findet sich eine Anleitung, wie ein normaler Windows-Rechner als Infodisplay konfiguriert werden kann. | Beim Umrüsten von bestehenden Displays, z.B. mit embedded Geräten, habe ich mit dem IServ-Infodisplay sehr gute Erfahrungen gemacht. Im [[d:IServ|Debacher-Wiki]] findet sich eine Anleitung, wie ein normaler Windows-Rechner als Infodisplay konfiguriert werden kann, davon ist aber seit einigen Jahren abzuraten. Für den schmalen Taler gibt es einen Raspberry Pi, der mit der folgenden Anleitung auch zum Display umfunktioniert werden kann. Der Pi eignet sich perfekt als Infodisplay, da der Stromverbrauch mehr als verkraftbar ist. | ||
== Raspberry Pi als Infobildschirm mit Chromium == | |||
Im Gegensatz zur unten angegebenen Config über Firefox ist die Installation mit Chromium einfacher umzusetzen. Zuerst beziehen wir das [https://www.raspberrypi.org/downloads/raspberry-pi-os/ aktuelle Raspberry Pi OS] und kopieren es [https://www.raspberrypi.org/documentation/installation/installing-images/README.md wie beschrieben] auf eine SD-Karte. Diese muss natürlich vorher in fat32 formatiert werden. | |||
Nach dem Start des Pis wird zuerst das System entpackt und eingerichtet. Nach dem ersten Start müssen einige Parameter gesetzt werden. Es sollte ein passender Hostname (zum Beispiel an der IP-Adresse orientiert: raspi12) gesetzt werden. Dazu kriegt der Benutzer pi ein Kennwort und unter "Interfaces" müssen der SSH- und VNC-Server aktiviert werden, damit später ein Zugriff aus dem lokalen Netz möglich ist. | |||
Nun ist der Raspi aus dem Netz erreichbar. Für einen Zugriff auf die Kommandozeile dient zB PuTTY für Windows. Über SSH ist der Pi dann unter Angabe der IP-Adresse erreichbar. Ein Login ist dann mit dem Nutzernamen pi und dem vergebenen Passwort möglich. | |||
=== Chromium und Autostart === | |||
Damit der Raspi nun beim Start auch den Infobildschirm anzeigt, müssen wir eine autostart-Datei erstellen: | |||
nano /home/pi/autostart.sh | |||
mit folgendem Inhalt: | |||
/usr/bin/chromium-browser --kiosk http://iserv/iserv/public/infodisplay/ | |||
Anschließend speichern und ausführbar machen: | |||
chmod 0775 /home/pi/autostart.sh | |||
Danach wird die Datei im Autostart-Bereich des Nutzers verlinkt: | |||
nano /home/pi/.config/autostart/autostart.desktop | |||
mit folgendem Inhalt: | |||
[Desktop Entry] | |||
Name=Autostart | |||
Exec=/bin/bash /home/pi/autostart.sh | |||
Type=application | |||
Nach einem Neustart sollte Chromium beim Start mitstarten. | |||
Hier folgt der Befehl zum Start von Chromium im Kiosk-Modus (Vollbild, keine Eingabe): | |||
=== Energie sparen === | === Energie sparen === | ||
Das Bild muss nicht die ganze Nacht laufen, deshalb benutzen wir zwei Shell-Scripte, die per Crontab aufgerufen werden. (Quelle: [[d:IServ|Debacher-Wiki/IServ]]) | Das Bild muss nicht die ganze Nacht laufen, deshalb benutzen wir zwei Shell-Scripte, die per Crontab aufgerufen werden. (Quelle: [[d:IServ|Debacher-Wiki/IServ]]) | ||
Ausschalten (monitor-aus.sh) | Die Shell-Skripte erstellen wir einfach mit VIM oder einem anderen Editor. | ||
Ausschalten (/home/pi/monitor-aus.sh) | |||
vi /home/pi/monitor-aus.sh | |||
#!/bin/bash | #!/bin/bash | ||
Zeile 40: | Zeile 53: | ||
Einschalten (monitor-an.sh) | Einschalten (monitor-an.sh) | ||
vi /home/pi/monitor-an.sh | |||
#!/bin/bash | #!/bin/bash | ||
/usr/bin/tvservice -- | #/usr/bin/tvservice --explicit="DMT 51 DVI" && chvt 1 && chvt 7 | ||
/usr/bin/tvservice -p && chvt 1 && chvt 7 | |||
Die erste Version ist besonders für Monitore gedacht, die per HDMI-auf-DVI-Adapter an den Pi angeschlossen sind. Hier muss man je nach Monitor oft eine Auflösung erzwingen, da die Adapter das Signal verunstalten, sodass der Pi nicht mehr ordentlich erkennen kann, welche Auflösung die Beste ist. Die möglichen Modi finden sich [http://elinux.org/RPiconfig#Video_mode_options hier]. Wichtig ist, dass man nach dem Starten des TV-Services einmal auf die 1. Konsole und dann zurück auf die grafische wechselt, sonst bleibt der Bildschirm schwarz. (http://pi-buch.info/?p=413) | |||
Die Änderungen müssen zudem einmal in | |||
sudo vi /boot/config.txt | |||
vorgenommen werden. Hier setzt man | |||
hdmi_drive=1 für Normal DVI mode (No sound) | |||
hdmi_group=2 für DMT (in meinem Fall präferiert) | |||
# und einen entsprechenden Modus | |||
hdmi_mode=51 | |||
(Genaue Werte siehe http://elinux.org/RPiconfig#Video_mode_options) | |||
Danach sollte der Pi sowohl beim Start als auch beim Ausführen der Skripte die richtige Auflösung anzeigen (Bitte auch [[#Overscan]] beachten!). | |||
=== Bildschirmschoner abschalten === | |||
Zu dem sollte der Bildschirmschoner deaktiviert werden: | |||
sudo vi /etc/X11/xinit/xinitrc | |||
#!/bin/sh | |||
# /etc/X11/xinit/xinitrc | |||
# | |||
# global xinitrc file, used by all X sessions started by xinit (startx) | |||
xset s off # aktiviert keinen Bildschirmschoner | |||
xset -dpms # deaktiviert DPMS (Energy Star) Features. | |||
xset s noblank # deakviviert blank the video device | |||
# invoke global X session script | |||
. /etc/X11/Xsession | |||
und | |||
sudo vi etc/kbd/config | |||
BLANK_TIME=0 | |||
(vgl. [[d:IServ|Debacher-Wiki]] | |||
In neueren Versionen von Raspbian reicht auch eine Anpassung von /home/pi/.config/lxsession/LXDE-pi/autostart | |||
@lxpanel --profile LXDE-pi | |||
@pcmanfm --desktop --profile LXDE-pi | |||
#@xscreensaver -no-splash | |||
#@point-rpi | |||
@/usr/bin/iceweasel | |||
@xset s off | |||
@xset -dpms | |||
@xset s noblank | |||
=== Crontab === | |||
Den Crontab konfigurieren wir am Besten als Benutzer root: | |||
sudo crontab -e | |||
Hierbei ist es wichtig, das Display anzugeben (-d :0.0) Dann binden wir die Scripte in Crontab zu schultypischen Uhrzeiten ein: | Hierbei ist es wichtig, das Display anzugeben (-d :0.0) Dann binden wir die Scripte in Crontab zu schultypischen Uhrzeiten ein: | ||
Zeile 47: | Zeile 116: | ||
00 20 * * * /home/pi/monitor-aus.sh | 00 20 * * * /home/pi/monitor-aus.sh | ||
00 07 * * * /home/pi/monitor-an.sh | 00 07 * * * /home/pi/monitor-an.sh | ||
=== Overscan === | |||
Falls das Bild des Pis den Bildschirm nicht komplett ausfüllt, kann folgende Einstellung Abhilfe schaffen. Wir rufen in der Shell folgenden Befehl auf: | |||
sudo raspi-config | |||
und schalten unter Adavnced Options -> Overscan auf "Disable". Nach einem Neustart sollte der Pi der Bild voll ausfüllen. | |||
== Raspberry Pi als Infobildschirm mit Firefox == | |||
Auf dem Pi installieren wir nach der Installation von Raspbian das Paket Iceweasel (Firefox) nach: | |||
apt-get update | |||
apt-get install iceweasel | |||
Nach einem Start von Iceweasel setzen wir dann das Infodisplay als Startseite: | |||
http://iserv/idesk/infodisplay/ | |||
Die URL hat sich mit der v3 leicht abgewandelt: http://iserv/iserv/public/infodisplay/ | |||
Diese relativ allgemeine URL bietet uns später die Möglichkeit, individuell im IDesk auszuwählen, welcher Infobildschirm angezeigt werden soll. Dafür muss der Raspberry Pi als Rechner in der Rechnerverteilung installiert sein und zusätzlich unter Infobildschirm -> Verwalten -> Anzeigegeräte hinzugefügt werden. Es ist auch möglich, zum Beispiel morgens einen anderen Infobildschirm anzuzeigen, als nachmittags. | |||
In Iceweasel installieren wir nach dem Hinzufügen der Startseite dann die Extension r-kiosk nach, die leider nur noch direkt über die [https://addons.mozilla.org/de/firefox/addon/r-kiosk/ Firefox-Respository] installiert werden kann. (Wichtig: Danach muss Iceweasel für Änderungen über die Konsole gekillt und anschließend im abgesicherten Modus gestartet werden. Also bitte alles kontrollieren!) | |||
Es empfiehlt sich noch zu konfigurieren, dass Iceweasel nach einem Absturz (zum Beispiel ein Killen über die Konsole) nicht die Restore-Seite, sondern unsere Startseite anzeigt. Dafür korrigieren wir unter | |||
about:config | |||
den Wert von | |||
browser.sessionstore.resume_from_crash | |||
von true auf false (durch einen einfachen Doppelklick) | |||
Ist das geschehen, müssen wir noch den Bildschirmschoner deaktivieren und Iceweasel in den Autostart (/home/pi/.config/lxsession/LXDE-pi/autostart) mit aufnehmen: | |||
@lxpanel --profile LXDE | |||
@pcmanfm --desktop --profile LXDE | |||
#@xscreensaver -no-splash | |||
@/usr/bin/iceweasel |
Aktuelle Version vom 3. August 2020, 18:40 Uhr
Der Schulserver IServ bietet viele spannende Funktionen. Eine davon ist das Infodisplay, welches Informationen und Pläne (z.B. Vertretungspläne) nach Bedarf anzeigt. Dabei kann man den Zugriff in vier verschiedene Stufen einschränken:
- nicht sichtbar (z.B. für Test-Zwecke)
- Nur über geheime URL (IServ gibt dann einen Link aus, über den das Infodisplay erreichbar ist)
- Nur im lokalen Netz (wird allen Benutzern des IDesk angezeigt, wenn diese sich im lokalen Netz befinden, also auf einem Rechner im Schulnetz angemeldet sind)
- Öffentlich (für alle Benutzer auch ohne Anmeldung, auch Zuhause, weltweit öffentlich, sichtbar)
Unabhängig davon sind die Infodisplay allen Benutzern sichtbar, die das Recht "Infobildschirme verwalten" zugewiesen bekommen haben.
Beim Umrüsten von bestehenden Displays, z.B. mit embedded Geräten, habe ich mit dem IServ-Infodisplay sehr gute Erfahrungen gemacht. Im Debacher-Wiki findet sich eine Anleitung, wie ein normaler Windows-Rechner als Infodisplay konfiguriert werden kann, davon ist aber seit einigen Jahren abzuraten. Für den schmalen Taler gibt es einen Raspberry Pi, der mit der folgenden Anleitung auch zum Display umfunktioniert werden kann. Der Pi eignet sich perfekt als Infodisplay, da der Stromverbrauch mehr als verkraftbar ist.
Raspberry Pi als Infobildschirm mit Chromium
Im Gegensatz zur unten angegebenen Config über Firefox ist die Installation mit Chromium einfacher umzusetzen. Zuerst beziehen wir das aktuelle Raspberry Pi OS und kopieren es wie beschrieben auf eine SD-Karte. Diese muss natürlich vorher in fat32 formatiert werden.
Nach dem Start des Pis wird zuerst das System entpackt und eingerichtet. Nach dem ersten Start müssen einige Parameter gesetzt werden. Es sollte ein passender Hostname (zum Beispiel an der IP-Adresse orientiert: raspi12) gesetzt werden. Dazu kriegt der Benutzer pi ein Kennwort und unter "Interfaces" müssen der SSH- und VNC-Server aktiviert werden, damit später ein Zugriff aus dem lokalen Netz möglich ist.
Nun ist der Raspi aus dem Netz erreichbar. Für einen Zugriff auf die Kommandozeile dient zB PuTTY für Windows. Über SSH ist der Pi dann unter Angabe der IP-Adresse erreichbar. Ein Login ist dann mit dem Nutzernamen pi und dem vergebenen Passwort möglich.
Chromium und Autostart
Damit der Raspi nun beim Start auch den Infobildschirm anzeigt, müssen wir eine autostart-Datei erstellen:
nano /home/pi/autostart.sh
mit folgendem Inhalt:
/usr/bin/chromium-browser --kiosk http://iserv/iserv/public/infodisplay/
Anschließend speichern und ausführbar machen:
chmod 0775 /home/pi/autostart.sh
Danach wird die Datei im Autostart-Bereich des Nutzers verlinkt:
nano /home/pi/.config/autostart/autostart.desktop
mit folgendem Inhalt:
[Desktop Entry] Name=Autostart Exec=/bin/bash /home/pi/autostart.sh Type=application
Nach einem Neustart sollte Chromium beim Start mitstarten. Hier folgt der Befehl zum Start von Chromium im Kiosk-Modus (Vollbild, keine Eingabe):
Energie sparen
Das Bild muss nicht die ganze Nacht laufen, deshalb benutzen wir zwei Shell-Scripte, die per Crontab aufgerufen werden. (Quelle: Debacher-Wiki/IServ)
Die Shell-Skripte erstellen wir einfach mit VIM oder einem anderen Editor.
Ausschalten (/home/pi/monitor-aus.sh)
vi /home/pi/monitor-aus.sh
#!/bin/bash /usr/bin/tvservice --off
Einschalten (monitor-an.sh)
vi /home/pi/monitor-an.sh
#!/bin/bash #/usr/bin/tvservice --explicit="DMT 51 DVI" && chvt 1 && chvt 7 /usr/bin/tvservice -p && chvt 1 && chvt 7
Die erste Version ist besonders für Monitore gedacht, die per HDMI-auf-DVI-Adapter an den Pi angeschlossen sind. Hier muss man je nach Monitor oft eine Auflösung erzwingen, da die Adapter das Signal verunstalten, sodass der Pi nicht mehr ordentlich erkennen kann, welche Auflösung die Beste ist. Die möglichen Modi finden sich hier. Wichtig ist, dass man nach dem Starten des TV-Services einmal auf die 1. Konsole und dann zurück auf die grafische wechselt, sonst bleibt der Bildschirm schwarz. (http://pi-buch.info/?p=413)
Die Änderungen müssen zudem einmal in
sudo vi /boot/config.txt
vorgenommen werden. Hier setzt man
hdmi_drive=1 für Normal DVI mode (No sound) hdmi_group=2 für DMT (in meinem Fall präferiert) # und einen entsprechenden Modus hdmi_mode=51
(Genaue Werte siehe http://elinux.org/RPiconfig#Video_mode_options)
Danach sollte der Pi sowohl beim Start als auch beim Ausführen der Skripte die richtige Auflösung anzeigen (Bitte auch #Overscan beachten!).
Bildschirmschoner abschalten
Zu dem sollte der Bildschirmschoner deaktiviert werden:
sudo vi /etc/X11/xinit/xinitrc
#!/bin/sh # /etc/X11/xinit/xinitrc # # global xinitrc file, used by all X sessions started by xinit (startx) xset s off # aktiviert keinen Bildschirmschoner xset -dpms # deaktiviert DPMS (Energy Star) Features. xset s noblank # deakviviert blank the video device # invoke global X session script . /etc/X11/Xsession
und
sudo vi etc/kbd/config
BLANK_TIME=0
(vgl. Debacher-Wiki
In neueren Versionen von Raspbian reicht auch eine Anpassung von /home/pi/.config/lxsession/LXDE-pi/autostart
@lxpanel --profile LXDE-pi @pcmanfm --desktop --profile LXDE-pi #@xscreensaver -no-splash #@point-rpi @/usr/bin/iceweasel @xset s off @xset -dpms @xset s noblank
Crontab
Den Crontab konfigurieren wir am Besten als Benutzer root:
sudo crontab -e
Hierbei ist es wichtig, das Display anzugeben (-d :0.0) Dann binden wir die Scripte in Crontab zu schultypischen Uhrzeiten ein:
# m h dom mon dow command 00 20 * * * /home/pi/monitor-aus.sh 00 07 * * * /home/pi/monitor-an.sh
Overscan
Falls das Bild des Pis den Bildschirm nicht komplett ausfüllt, kann folgende Einstellung Abhilfe schaffen. Wir rufen in der Shell folgenden Befehl auf:
sudo raspi-config
und schalten unter Adavnced Options -> Overscan auf "Disable". Nach einem Neustart sollte der Pi der Bild voll ausfüllen.
Raspberry Pi als Infobildschirm mit Firefox
Auf dem Pi installieren wir nach der Installation von Raspbian das Paket Iceweasel (Firefox) nach:
apt-get update apt-get install iceweasel
Nach einem Start von Iceweasel setzen wir dann das Infodisplay als Startseite:
http://iserv/idesk/infodisplay/
Die URL hat sich mit der v3 leicht abgewandelt: http://iserv/iserv/public/infodisplay/
Diese relativ allgemeine URL bietet uns später die Möglichkeit, individuell im IDesk auszuwählen, welcher Infobildschirm angezeigt werden soll. Dafür muss der Raspberry Pi als Rechner in der Rechnerverteilung installiert sein und zusätzlich unter Infobildschirm -> Verwalten -> Anzeigegeräte hinzugefügt werden. Es ist auch möglich, zum Beispiel morgens einen anderen Infobildschirm anzuzeigen, als nachmittags.
In Iceweasel installieren wir nach dem Hinzufügen der Startseite dann die Extension r-kiosk nach, die leider nur noch direkt über die Firefox-Respository installiert werden kann. (Wichtig: Danach muss Iceweasel für Änderungen über die Konsole gekillt und anschließend im abgesicherten Modus gestartet werden. Also bitte alles kontrollieren!)
Es empfiehlt sich noch zu konfigurieren, dass Iceweasel nach einem Absturz (zum Beispiel ein Killen über die Konsole) nicht die Restore-Seite, sondern unsere Startseite anzeigt. Dafür korrigieren wir unter
about:config
den Wert von
browser.sessionstore.resume_from_crash
von true auf false (durch einen einfachen Doppelklick)
Ist das geschehen, müssen wir noch den Bildschirmschoner deaktivieren und Iceweasel in den Autostart (/home/pi/.config/lxsession/LXDE-pi/autostart) mit aufnehmen:
@lxpanel --profile LXDE @pcmanfm --desktop --profile LXDE #@xscreensaver -no-splash @/usr/bin/iceweasel