IServ-Infodisplay: Unterschied zwischen den Versionen

Aus LT42-Wiki
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
Zeile 52: Zeile 52:


  #!/bin/bash
  #!/bin/bash
  #/usr/bin/tvservice --preferred; fbset -depth 8; fbset -depth 16; xrefresh -d :0.0
  #/usr/bin/tvservice --explicit="DMT 51 DVI" && chvt 1 && chvt 7
  /usr/bin/tvservice -p && chvt 1 && chvt 7
  /usr/bin/tvservice -p && chvt 1 && chvt 7


Die erste Version scheint nicht mehr sonderlich gut zu funktionieren. Die zweite Version stammt aus dem [[d:IServ|Debacher-Wiki]] bzw von http://the-martins.org/?p=81 und http://pi-buch.info/?p=413.
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]]
 
=== Crontab ===


Den Crontab konfigurieren wir am Besten als Benutzer root:
Den Crontab konfigurieren wir am Besten als Benutzer root:

Version vom 26. Oktober 2015, 12:33 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.

Im Debacher-Wiki findet sich eine Anleitung, wie ein normaler Windows-Rechner als Infodisplay konfiguriert werden kann.

Raspberry Pi als Infobildschirm

Der Raspberry Pi ist ein spannender Computer. Für sehr wenig Geld (~60 Euro) erhält man einen inzwischen schon recht leistungsstarken Kleinstcomputer.

Dieser eignet sich natürlich perfekt als Infodisplay, da der Stromverbrauch mehr als verkraftbar ist.

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/

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 (/etc/xdg/lxsession/LXDE-pi/autostart) mit aufnehmen:

@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
#@xscreensaver -no-splash
@/usr/bin/iceweasel

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

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.