Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:infoboard:infoboard-lubuntu]] 
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


anwenderwiki:infoboard:infoboard-lubuntu [2014/01/13 18:09] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +{{tag> ubuntu lubuntu vertretungsplan pqiv firefox mplayer}}
 +
 +====== Ein digitales Infobrett ======
 +
 +===== Idee =====
 +
 +Unsere Schule erstellt Vertretungspläne mit Untis. Da wir mehrere Gebäudeteile haben und unser Vertretungsplaner nicht mehr allmorgentlich rundlaufen möchte, habe ich damals ein System zusammengestrickt, diese Vertretungspläne möglichst ohne große Veränderungen für die Planer auf Monitoren darzustellen.
 +
 +Ein erstes System hat die JPEG-Funktionalität des freien PDF-Creator genutzt, um automatisch neben der Papierausgabe auch eine JPEG-Datei zu erzeugen. Diese wurden automatisch auf einem eigenen Samba-Vertretungsplanverzeichnis gespeichert. Dieses ist auf allen Rechnern im Schulnetz als nur-lesbares Laufwerk eingebunden.
 +
 +Auf vorhandenen leinen Rechnern haben wir ein Lubuntu installiert und den Ordner ebenfalls eingebunden. Nach der automatischen Anmeldung startet ein kleines Skript, welches in vordefinierten Zeitintervallen die JPEG-Dateien vom Server in ein lokales Verzeichnis auf eine Datei kopiert (und ggf. überschreibt). Der Bildbetrachter pqiv ist so eingestellt, dass er diese Datei im Vollbild darstellt. Schön dabei: ändert sich das Bild, aktualisiert pqiv die Anzeige automatisch.
 +
 +
 +===== Das derzeitige System =====
 +
 +Irgendwann trat das Schülerfernsehen mit dem Wunsch an mich heran, ihre Filme über die Vertretungsbildschirme schauen zu können. Daraufhin habe ich mich noch einmal an das Skript gesetzt und es "verfeinert". Die Steuerung, was gerade auf dem vertretungsplan angezeigt wird, wird serverseitig über die Datei .job gesteuert. Derzeit mögliche Inhalte dieser Datei sind:
 +  * jpeg - die bisherige Funktionalität. Das Skript spielt als Diashow alle Bilder ab, die im Unterordner jpeg des Vertretungsplanungs-Bildschirms liegen
 +  * html - unter html wird die Datei heute.html aufgerufen. Die Erweiterung [[https://addons.mozilla.org/de/firefox/addon/scrollyfox/|ScrollyFox]] scrollt automatisch ab- und wieder aufwärts, die Erweiterung [[https://addons.mozilla.org/de/firefox/addon/default-fullzoom-level/|Default FullZoom Level]] vergrößert die Anzeige automatisch auf Bildschirmbreite. In der Datei steht, ob/wie oft die Seite aktualisiert wird bzw. wohin diese Seite weitergeleitet (redirect) wird.
 +  * film - mit Hilfe des Abspielers mplayer wird der Film aktuell.flv im Unterverzeichnis film abgespielt (und ggf. wiederholt)
 +Über die Zahl in der Datei .wait wird die Zeit gesteuert, die die Wartezeit zwischen zwei JPEG-Bildern bzw. die Zeit, bis die HTML-Datei erneuert/weitergeleitet wird, eingestellt
 +
 +==== Die Hardware ====
 +
 +Dank Linbo hat man innerhalb kürzester Zeit ein komplettes Vertretungsplan-Modul zusammengebaut. Dafür benötigt man:
 +  * einen kleinen Rechner, der im Schulnetz registriert und in die entsprechende Gruppe eingebunden ist
 +  * einen Bildschirm, der idealerweise per kurzem DVI angeschlossen ist
 +  * 2x Strom
 +  * 1x Netzwerk
 +
 +Bisher getestete Hardware
 +  * Lenovo IdeaCentre Q150((Die Lenovo-Rechner laufen per HDMI-Kabel einwandfrei. Beim Anschluss über VGA war der Kernel-Parameter ''nomodeset'' bei den Linux-Kernelparametern in der start.conf notwendig.))
 +  * Lenovo IdeaCentre Q180((Die Lenovo-Rechner laufen per HDMI-Kabel einwandfrei. Beim Anschluss über VGA war der Kernel-Parameter ''nomodeset'' bei den Linux-Kernelparametern in der start.conf notwendig.))
 +  * Lenovo IdeaCentre Q190((Die Lenovo-Rechner laufen per HDMI-Kabel einwandfrei. Beim Anschluss über VGA war der Kernel-Parameter ''nomodeset'' bei den Linux-Kernelparametern in der start.conf notwendig.))
 +
 +==== Das Cloop-Image ====
 +
 +Kernstück des Systems ist ein gebrauchsfertiges Cloop-Image:
 +  * Lubuntu 12.10
 +  * Auto-Login als Benutzer dsb
 +  * Energiesparen abgeschaltet
 +  * SSH- und VNC-Zugang
 +  * Firefox mit ScrollyFox und AutoZoom
 +  * MPlayer samt Codecs (flv-Videos)
 +  * pqiv als Bildbetrachter
 +
 +Das Image ist derzeit gepackt ca. 650 MB groß (sicher noch optimierbar) und kann [[http://www.corvinianum.de/dsbcloop.tar.gz|hier]] heruntergeladen werden. Dazu [[http://www.corvinianum.de/dsbstart.tar.gz|hier]] die passende start.conf.dsb.
 +
 +Wie beim Linuxmuster-Client ist das Passwort auf ''lolo4711'' gesetzt.
 +
 +<note warning>**Achtung: das Cloop ist auf genau einem Typ Rechner genau 2 Tage getestet worden. Ich nenne es deswegen mal "Beta".**</note>
 +
 +==== Serverseitige Anpassungen/Skripte ====
 +
 +Auf dem Server (oder wie bei uns einem NAS) liegen die Verzeichnisse, in denen die anzuzeigenden Daten liegen:
 +  * \\<nas>\vplans\.job
 +  * \\<nas>\vplans\.wait
 +  * \\<nas>\vplans\jpeg\*.jpeg
 +  * \\<nas>\vplans\html\heute.html (und innerhalb dieser Datei verlinkte weitere Dateien)
 +  * \\<nas>\vplans\film\aktuell.flv
 +
 +//ToDo: Skript, welches die erzeugten Untis-HTML-Sätze in eine einigermaßen ansehnliche HTML-Datei für den aktuellen bzw. den Folgetag bringt und an die richtige Stelle kopiert.//
 +
 +Ein "Umstellen" des Vertretungsplans erfolgt jetzt z.B. über ein
 +<code>echo film > .job</code>
 +Nach einem kurzen Moment beginnen alle Vertretungsplanbildschirme, den Film (in einer Schleife) abzuspielen. Ein
 +<code>echo jpeg > .job</code>
 +beendet den Film und schaltet zurück auf die Photo-Wiedergabe.
 +Ändert man durch ein 
 +<code>echo 14 > .wait</code>
 +die Pause zwischen den Bildern, wird nach jedem Durchlauf die Wartezeit neu gesetzt, so dass man mit den Kollegen am Bildschirm eine angenehme Frequenz ausprobieren kann.
 +
 +
 +==== Clientseitige Anpassungen/Skripte ====
 +
 +Anzupassen sind für den Benutzer lediglich
 +  * die fstab (wo die Adressen und die Zugangsdaten für die Samba-Verzeichnisse liegen)
 +  * ggf. die Passwörter des Benutzers dsb (und das Passwort des VNC-Servers unter ''vino-preferences'')
 +
 +Auf dem Client laufen zwei Skripte. Das erste läuft im Hintergrund und überwacht im wesentlichen die Datei .job. Dieses Skript startet/beendet die jeweils (nicht) benötigten Programme. Es entscheidet anhand der IP, ob es sich um den Schüler- oder Lehrer-Vertretungsplan handelt.
 +
 +<code>
 +#/bin/bash
 +
 +# Aufräumen/(Offline-)Standardhintergrund
 +rm ~/Bilder/*
 +cp ~/standard.jpg ~/Bilder/0.jpg
 +
 +# entscheiden, ob lehrer- oder schüler-vplan -> VZ
 +case $(hostname) in
 +dsb0[0-9])
 +  # Schüler-Rechner
 +  vz=/mnt/vplans
 +  ;;
 +dsb1[0-9])
 +  # Lehrer-Rechner
 +  vz=/mnt/vplanl
 +  ;;
 +*)
 +  # unbekannte IP - das war wohl nix
 +  exit 1
 +  ;;
 +esac
 +
 +# starte "Dauerschleife" und prüfe .job
 +while true; do
 +  # die Job-Datei wurde gefunden
 +  if [ -e "$vz/.job" ]; then
 +    # was machen wir heute?
 +    case $(cat $vz/.job) in
 +    "jpeg")
 +      # andere Abspieler löschen
 +        # andere Abspieler löschen
 +        if [ $(pgrep -c -f 'firefox') -eq 1 ]; then pkill -f 'firefox'; fi
 +        if [ $(pgrep -c -f 'mplayer') -eq 1 ]; then pkill -f 'mplayer'; fi
 +        # starte JPEG-Skript
 +        if [ $(pgrep -c -f 'sh vplan_jpeg') -eq 0 ]; then 
 +          sh vplan_jpeg $vz &
 +        fi
 +      ;;
 +    "html")
 +        # andere Abspieler löschen
 +        if [ $(pgrep -c -f 'mplayer') -eq 1 ]; then pkill -f 'mplayer'; fi
 +        if [ $(pgrep -c -f 'sh vplan_jpeg') -eq 1 ]; then pkill -f 'sh vplan_jpeg'; fi
 +        if [ $(pgrep -c -f 'pqiv') -eq 1 ]; then pkill -f 'pqiv'; fi
 +        # HTML-Datei aufrufen
 +        if [ $(pgrep -c -f 'firefox') -eq 0 ]; then 
 +          firefox $vz/html/heute.html &
 +        fi
 +      ;;
 +    "film")
 +        # andere Abspieler löschen
 +        if [ $(pgrep -c -f 'sh vplan_jpeg') -eq 1 ]; then pkill -f 'sh vplan_jpeg'; fi
 +        if [ $(pgrep -c -f 'pqiv') -eq 1 ]; then pkill -f 'pqiv'; fi
 +        if [ $(pgrep -c -f 'firefox') -eq 1 ]; then pkill -f 'firefox'; fi
 +        # Film abspielen
 +        if [ $(pgrep -c -f 'mplayer') -eq 0 ]; then 
 +          mplayer -volume 100 -loop 0 -fs $vz/film/aktuell.flv &
 +        fi
 +      ;;
 +    *)
 +        # ALLE Abspieler löschen
 +        if [ $(pgrep -c -f 'sh vplan_jpeg') -eq 1 ]; then pkill -f 'sh vplan_jpeg'; fi
 +        if [ $(pgrep -c -f 'pqiv') -eq 1 ]; then pkill -f 'pqiv'; fi
 +        if [ $(pgrep -c -f 'firefox') -eq 1 ]; then pkill -f 'firefox'; fi
 +        if [ $(pgrep -c -f 'mplayer') -eq 1 ]; then pkill -f 'mplayer'; fi
 +      ;;
 +    esac
 +  fi
 +done
 +
 +</code>
 +
 +
 +Das zweite Skript ist das "Diashow-Skript". Es kopiert die JPEGs vom Server in das lokale Verzeichnis Bilder und spielt diese ab. Der Übergabeparameter gibt das Grundverzeichnis an, welches angezeigt wird (wir unterscheiden hier die Mountpoints für das Lehrer- und Schülerverzeichnis).
 +
 +<code>
 +#/bin/bash
 +vz=$1
 +
 +# wandere durch die Bilder
 +while true; do
 +  for i in $vz/jpeg/*.jpg; do
 +    # ggf. JPEG-Skript (neu) starten
 +    if [ $(pgrep -c -f 'pqiv') -eq 0 ]; then 
 +      pqiv -i -f -w ~/Bilder/0.jpg &
 +    fi
 +    cp "$i" ~/Bilder/0.jpg;
 +    echo $i ;
 +    # Wartezeit auslesen und warten
 +    wartezeit=$(cat $vz/.wait)
 +    sleep $wartezeit;
 +  done;
 +done
 +</code>
  
 [[anwenderwiki:infoboard:infoboard-lubuntu]] anwenderwiki/infoboard/infoboard-lubuntu.txt · Zuletzt geändert: 2014/01/13 18:09 von 127.0.0.1