InfoScreen: Unterschied zwischen den Versionen

Aus RaumZeitLabor Wiki
Zur Navigation springen Zur Suche springen
(Desktophintergrund ändern)
Keine Bearbeitungszusammenfassung
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 28: Zeile 28:


== Technik ==
== Technik ==
{{Metakasten|kopf_param=Legacy|haupt_param=Dieser Abschnitt ist nicht mehr aktuell. Raspbian & Chromium werden nicht mehr enutzt und auch der Infoscreen selbst ist ein anderer.}}


Auf einem Raspberry Pi läuft ein Raspbian, dass beim Hochfahren einen Chromium im Kioskmodus öffnet und auf http://cosm.tiefpunkt.com/infoscreen/ navigiert. Da läuft der Infoscreen, eine Mischung aus PHP, HTML und JS, die aus Daten von Cosm, der VRN und Twitter eine kleine Seite produziert, die alle 30 Sekunden aktualisiert wird.
Auf einem Raspberry Pi läuft ein Raspbian, dass beim Hochfahren einen Chromium im Kioskmodus öffnet und auf http://cosm.tiefpunkt.com/infoscreen/ navigiert. Da läuft der Infoscreen, eine Mischung aus PHP, HTML und JS, die aus Daten von Cosm, der VRN und Twitter eine kleine Seite produziert, die alle 30 Sekunden aktualisiert wird.
== Installation ==
{{Metakasten|kopf_param=Legacy|haupt_param=Dieser Abschnitt ist nicht mehr aktuell.}}
Wir nehmen das neueste Raspbian-Installationsimage und starten unseren Pi. Beim ersten Start erscheint die raspi-config, bei der wir folgendes aktivieren:
# '''Expand Filesystem''': ja
# '''Change User Password''': ja, sollte man unbedingt ändern!
# '''Enable Boot to Desktop''': wähle ''Desktop Log in as user 'pi' at the graphical desktop'' aus
# '''Internationalisation Options''':
## '''Change Locale''': Wir selektieren ''de_DE.UTF-8 UTF-8''
## '''Change Timezone''': Eure Zeitzone, vermutlich ''Europe/Berlin''
## '''Change Keyboard Layout''': Wenn du deine Tastatur nicht findest, dann solltest du mal "Generic 105-key (Intl) PC" bzw ''Generische PC-Tastatur mit 105 Tasten'' auswählen. Anschließend das passende Tastaturlayout.
# '''Enable Camera''': Nicht notwendig
# '''Add to Rastrack''': Kann man machen, wenn man möchte
# '''Overclock''': Nicht notwendig
# '''Advanced Options''': Nicht notwendig
Dann wählen wir '''Finish''' aus und starten den RasPi neu.
Solltet ihr später nochmals diese Konfiguration durchlaufen wollen, so könnt ihr sie über die Konsole mit
  sudo raspi-config
starten
Nach dem Neustart sollte der Raspberry den Desktop anzeigen. Alle weiteren Schritte werden wir über die Konsole erledigen, sodass wir Maus und Tastatur abziehen können.


== Konfiguration ==
== Konfiguration ==
=== Korrekte Auflösung einstellen ===
Aktuell wird der InfoScreen an einem Monitor mit einer Auflösung von 1920x1200 Pixeln betrieben. Um das korrekt einzustellen muss die Datei /boot/config.txt um folgende Punkte ergänzt werden:
  hdmi_group=2
  hdmi_mode=68
Andere Monitore und/oder andere Auflösungen brauchen andere Einstellungen!


=== Software ===
=== Software ===
Zuerst aktualisieren wir die Paketquellen und das System:
  sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
Dann können wir die benötigte Software installieren:


   sudo apt-get install chromium x11-xserver-utils unclutter lighttpd php5-cgi git
   sudo apt-get install chromium x11-xserver-utils unclutter lighttpd php5-cgi git
Nun passen wir die Konfiguration des Webservers an


   sudo nano /etc/lighttpd/lighttpd.conf
   sudo nano /etc/lighttpd/lighttpd.conf
Zeile 68: Zeile 108:


=== Update Repository bei Restart ===
=== Update Repository bei Restart ===
   sudo /etc/local.rc
   sudo nano /etc/local.rc


Folgende Zeile am Ende einfügen:
Folgende Zeile am Ende einfügen:
Zeile 91: Zeile 131:
   @xset -dpms
   @xset -dpms
   @xset s noblank
   @xset s noblank
   @chromium --user-data-dir=/tmp --kiosk cosm.tiefpunkt.com/infoscreen/
   @chromium --user-data-dir=/tmp --kiosk localhost
   @xmodmap -e "pointer = 1 10 9 8 7 6 5 4 3 2"
   @xmodmap -e "pointer = 1 10 9 8 7 6 5 4 3 2"


Zeile 102: Zeile 142:
Wenn der InfoScreen startet, soll ein hübsches Bild angezeigt werden, welches unter /etc/splash.png liegt. Die aktuelle Version habe ich [https://wiki.raumzeitlabor.de/wiki/Datei:Splash.png hier verlinkt]. Dafür installierien wir uns zuerst fbi:
Wenn der InfoScreen startet, soll ein hübsches Bild angezeigt werden, welches unter /etc/splash.png liegt. Die aktuelle Version habe ich [https://wiki.raumzeitlabor.de/wiki/Datei:Splash.png hier verlinkt]. Dafür installierien wir uns zuerst fbi:


   apt-get install fbi
   sudo apt-get install fbi


Dann erstellen wir die Datei /etc/init.d/asplashscreen mit folgendem Inhalt:
Dann erstellen wir die Datei /etc/init.d/asplashscreen mit folgendem Inhalt:
Zeile 145: Zeile 185:


Nun machen wir die Datei ausführbar und nehmen sie in den Startprozess mit auf:
Nun machen wir die Datei ausführbar und nehmen sie in den Startprozess mit auf:
   chmod a+x /etc/init.d/asplashscreen
   sudo chmod a+x /etc/init.d/asplashscreen
   insserv /etc/init.d/asplashscreen
   sudo insserv /etc/init.d/asplashscreen


(Anleitung via [http://www.recantha.co.uk/blog/?p=799]. Danke!)
(Anleitung via [http://www.recantha.co.uk/blog/?p=799]. Danke!)
Zeile 160: Zeile 200:


Fertig. Nun wird beim Bootvorgang ausschließlich das RZL-Logo zu sehen sein!
Fertig. Nun wird beim Bootvorgang ausschließlich das RZL-Logo zu sehen sein!
=== Automatischer Update-check ===
Wenn wir am InfoScreen entwickeln, wollen wir ihn nicht dauernd neu starten um eventuelle Änderungen zu sehen. Harte Reboots (abziehen der Stromversorgung im laufenden Betrieb) können zudem das Dateisystem beschädigen. Also wollen wir minütlich prüfen, ob neue Änderungen auf Github bereitstehen und in diesem Fall das Repository pullen sowie den Browsertab neustarten. Das alles machen die beiden Scripte check.sh und refresh.sh. Ersteres ruft Letzteres im Falle von Änderungen auf um den Browsertab neuzuladen.  Während man entwickelt sind kürzere Prüfzeiten von zB nur einer Minute zu emfehlen. Dafür ergänzt man in der crontab des Nutzers root eine Zeile. Wir installieren zuerst das xdotool, mit dem wir den Browser zum aktualisieren der Seite bringen:
  apt-get install xdotool
Dann öffnen wir den Crontab von root:
  sudo crontab -e
Dann ergänzen wir:
  * * * * * /var/www/infoscreen/check.sh
Dies prüft minütlich. Möchten wir zB halbstündlich prüfen, würde die Zeiele so aussehen:
  0,30 * * * * /var/www/infoscreen/check.sh
Aktuell wird minütlich geprüft. Wir entwickeln ja noch!


[[Kategorie:Projekt]]
[[Kategorie:Projekt]]
[[Kategorie:Hardware]]
[[Kategorie:Hardware]]

Version vom 10. Juni 2016, 21:05 Uhr

       
InfoScreen

Release status: beta [box doku]

Beschreibung Aktuelle Information über das RaumZeitLabor
Autor(en)  tiefpunkt, blabber, silsha
Letzte Version  v0.4
Download  https://github.com/raumzeitlabor/infoscreen

Beschreibung

Der InfoScreen steht auf dem Kühlschrank und zeigt einige interessante Informationen an. Aktuell sind das:

  • Aktueller Stromverbrauch + Graph des Verbrauchs über die letzten 60 Minuten
  • Anzahl Geräte im Netzwerk
  • Temperatur
  • Mitgliederanzahl
  • Kontostand
  • RaumStatus
  • Fahrplan der Bahnhaltestelle Boveristraße
  • Twitterwall
  • Bilder aus log.raumzeitlabor.de

Technik

Legacy
Dieser Abschnitt ist nicht mehr aktuell. Raspbian & Chromium werden nicht mehr enutzt und auch der Infoscreen selbst ist ein anderer.

Auf einem Raspberry Pi läuft ein Raspbian, dass beim Hochfahren einen Chromium im Kioskmodus öffnet und auf http://cosm.tiefpunkt.com/infoscreen/ navigiert. Da läuft der Infoscreen, eine Mischung aus PHP, HTML und JS, die aus Daten von Cosm, der VRN und Twitter eine kleine Seite produziert, die alle 30 Sekunden aktualisiert wird.

Installation

Legacy
Dieser Abschnitt ist nicht mehr aktuell.

Wir nehmen das neueste Raspbian-Installationsimage und starten unseren Pi. Beim ersten Start erscheint die raspi-config, bei der wir folgendes aktivieren:

  1. Expand Filesystem: ja
  2. Change User Password: ja, sollte man unbedingt ändern!
  3. Enable Boot to Desktop: wähle Desktop Log in as user 'pi' at the graphical desktop aus
  4. Internationalisation Options:
    1. Change Locale: Wir selektieren de_DE.UTF-8 UTF-8
    2. Change Timezone: Eure Zeitzone, vermutlich Europe/Berlin
    3. Change Keyboard Layout: Wenn du deine Tastatur nicht findest, dann solltest du mal "Generic 105-key (Intl) PC" bzw Generische PC-Tastatur mit 105 Tasten auswählen. Anschließend das passende Tastaturlayout.
  5. Enable Camera: Nicht notwendig
  6. Add to Rastrack: Kann man machen, wenn man möchte
  7. Overclock: Nicht notwendig
  8. Advanced Options: Nicht notwendig

Dann wählen wir Finish aus und starten den RasPi neu.

Solltet ihr später nochmals diese Konfiguration durchlaufen wollen, so könnt ihr sie über die Konsole mit

 sudo raspi-config

starten

Nach dem Neustart sollte der Raspberry den Desktop anzeigen. Alle weiteren Schritte werden wir über die Konsole erledigen, sodass wir Maus und Tastatur abziehen können.

Konfiguration

Korrekte Auflösung einstellen

Aktuell wird der InfoScreen an einem Monitor mit einer Auflösung von 1920x1200 Pixeln betrieben. Um das korrekt einzustellen muss die Datei /boot/config.txt um folgende Punkte ergänzt werden:

 hdmi_group=2
 hdmi_mode=68

Andere Monitore und/oder andere Auflösungen brauchen andere Einstellungen!

Software

Zuerst aktualisieren wir die Paketquellen und das System:

 sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Dann können wir die benötigte Software installieren:

 sudo apt-get install chromium x11-xserver-utils unclutter lighttpd php5-cgi git

Nun passen wir die Konfiguration des Webservers an

 sudo nano /etc/lighttpd/lighttpd.conf

Folgende Zeile im Abschnitt server.modules hinzufügen:

 "mod_fastcgi",

Folgende Zeilen ans Ende der Datei einfügen:

 fastcgi.server = ( ".php" => (( 
                   "bin-path" => "/usr/bin/php-cgi",
                   "socket" => "/tmp/php.sock" 
               )))

Und die Zeile

 server.document-root        = "/var/www"

durch

 server.document-root        = "/var/www/infoscreen"

ersetzen.

Installation der Infoscreen Software

Folgende Zeilen ausführen:

 sudo -u www-data -i git clone https://github.com/raumzeitlabor/infoscreen.git /var/www/infoscreen
 sudo -u www-data -i cd /var/www/infoscreen && git submodule update --init --recursive


Update Repository bei Restart

 sudo nano /etc/local.rc

Folgende Zeile am Ende einfügen:

 cd /var/www/infoscreen && sudo -u www-data git pull

Autostart in X11

 sudo nano /etc/rc.local

Folgende Zeile ganz am Ende einfügen:

 su -l pi -c startx

Autostart Chromium Kiosk

 sudo nano /etc/xdg/lxsession/LXDE/autostart

xscreensaver und lxpanel entfernen. Folgende Zeilen ergänzen:

 @xset s off
 @xset -dpms
 @xset s noblank
 @chromium --user-data-dir=/tmp --kiosk localhost
 @xmodmap -e "pointer = 1 10 9 8 7 6 5 4 3 2"

Entferne Desktop-Icons

Die Desktop-Icons stören nur, man hat ja keine Maus um sie wegzuklicken. Weg damit:

 rm ~pi/Desktop/*.desktop

Ändern des Boot-Screens

Wenn der InfoScreen startet, soll ein hübsches Bild angezeigt werden, welches unter /etc/splash.png liegt. Die aktuelle Version habe ich hier verlinkt. Dafür installierien wir uns zuerst fbi:

 sudo apt-get install fbi

Dann erstellen wir die Datei /etc/init.d/asplashscreen mit folgendem Inhalt:

 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          asplashscreen
 # Required-Start:
 # Required-Stop:
 # Should-Start:      
 # Default-Start:     S
 # Default-Stop:
 # Short-Description: Show custom splashscreen
 # Description:       Show custom splashscreen
 ### END INIT INFO
 
 do_start () {
 
     /usr/bin/fbi -T 1 -noverbose -a /etc/splash.png    
     exit 0
 }
 
 case "$1" in
   start|"")
     do_start
     ;;
   restart|reload|force-reload)
     echo "Error: argument '$1' not supported" >&2
     exit 3
     ;;
   stop)
     # No-op
     ;;
   status)
     exit 0
     ;;
   *)
     echo "Usage: asplashscreen [start|stop]" >&2
     exit 3
     ;;
 esac

Nun machen wir die Datei ausführbar und nehmen sie in den Startprozess mit auf:

 sudo chmod a+x /etc/init.d/asplashscreen
 sudo insserv /etc/init.d/asplashscreen

(Anleitung via [1]. Danke!)

Ändern des Desktophintergrunds

Nachdem wir so ein tolles Bootlogo haben und auch alle Desktopicons versteckt sind, können wir auch den Desktophintergrund auf unser Bootlogo ändern. In der Datei

 ~pi/.config/pcmanfm/LXDE/pcmanfm.conf

gibt es folgenden Wert:

 wallpaper=/etc/alternatives/desktop-background

Dies ersetzen wir durch

 wallpaper=/etc/splash.png

Fertig. Nun wird beim Bootvorgang ausschließlich das RZL-Logo zu sehen sein!

Automatischer Update-check

Wenn wir am InfoScreen entwickeln, wollen wir ihn nicht dauernd neu starten um eventuelle Änderungen zu sehen. Harte Reboots (abziehen der Stromversorgung im laufenden Betrieb) können zudem das Dateisystem beschädigen. Also wollen wir minütlich prüfen, ob neue Änderungen auf Github bereitstehen und in diesem Fall das Repository pullen sowie den Browsertab neustarten. Das alles machen die beiden Scripte check.sh und refresh.sh. Ersteres ruft Letzteres im Falle von Änderungen auf um den Browsertab neuzuladen. Während man entwickelt sind kürzere Prüfzeiten von zB nur einer Minute zu emfehlen. Dafür ergänzt man in der crontab des Nutzers root eine Zeile. Wir installieren zuerst das xdotool, mit dem wir den Browser zum aktualisieren der Seite bringen:

 apt-get install xdotool

Dann öffnen wir den Crontab von root:

 sudo crontab -e

Dann ergänzen wir:

 * * * * * /var/www/infoscreen/check.sh

Dies prüft minütlich. Möchten wir zB halbstündlich prüfen, würde die Zeiele so aussehen:

 0,30 * * * * /var/www/infoscreen/check.sh

Aktuell wird minütlich geprüft. Wir entwickeln ja noch!