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, | ||
| + | |||
| + | 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, | ||
| + | |||
| + | |||
| + | ===== 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 " | ||
| + | * 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:// | ||
| + | * 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/ | ||
| + | |||
| + | ==== 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 '' | ||
| + | * Lenovo IdeaCentre Q180((Die Lenovo-Rechner laufen per HDMI-Kabel einwandfrei. Beim Anschluss über VGA war der Kernel-Parameter '' | ||
| + | * Lenovo IdeaCentre Q190((Die Lenovo-Rechner laufen per HDMI-Kabel einwandfrei. Beim Anschluss über VGA war der Kernel-Parameter '' | ||
| + | |||
| + | ==== 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:// | ||
| + | |||
| + | Wie beim Linuxmuster-Client ist das Passwort auf '' | ||
| + | |||
| + | <note warning> | ||
| + | |||
| + | ==== Serverseitige Anpassungen/ | ||
| + | |||
| + | Auf dem Server (oder wie bei uns einem NAS) liegen die Verzeichnisse, | ||
| + | * \\< | ||
| + | * \\< | ||
| + | * \\< | ||
| + | * \\< | ||
| + | * \\< | ||
| + | |||
| + | //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 " | ||
| + | < | ||
| + | Nach einem kurzen Moment beginnen alle Vertretungsplanbildschirme, | ||
| + | < | ||
| + | beendet den Film und schaltet zurück auf die Photo-Wiedergabe. | ||
| + | Ändert man durch ein | ||
| + | < | ||
| + | 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/ | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | Auf dem Client laufen zwei Skripte. Das erste läuft im Hintergrund und überwacht im wesentlichen die Datei .job. Dieses Skript startet/ | ||
| + | |||
| + | < | ||
| + | #/bin/bash | ||
| + | |||
| + | # Aufräumen/ | ||
| + | rm ~/Bilder/* | ||
| + | cp ~/ | ||
| + | |||
| + | # entscheiden, | ||
| + | case $(hostname) in | ||
| + | dsb0[0-9]) | ||
| + | # Schüler-Rechner | ||
| + | vz=/ | ||
| + | ;; | ||
| + | dsb1[0-9]) | ||
| + | # Lehrer-Rechner | ||
| + | vz=/ | ||
| + | ;; | ||
| + | *) | ||
| + | # unbekannte IP - das war wohl nix | ||
| + | exit 1 | ||
| + | ;; | ||
| + | esac | ||
| + | |||
| + | # starte " | ||
| + | while true; do | ||
| + | # die Job-Datei wurde gefunden | ||
| + | if [ -e " | ||
| + | # was machen wir heute? | ||
| + | case $(cat $vz/.job) in | ||
| + | " | ||
| + | # andere Abspieler löschen | ||
| + | # andere Abspieler löschen | ||
| + | if [ $(pgrep -c -f ' | ||
| + | if [ $(pgrep -c -f ' | ||
| + | # starte JPEG-Skript | ||
| + | if [ $(pgrep -c -f 'sh vplan_jpeg' | ||
| + | sh vplan_jpeg $vz & | ||
| + | fi | ||
| + | ;; | ||
| + | " | ||
| + | # andere Abspieler löschen | ||
| + | if [ $(pgrep -c -f ' | ||
| + | if [ $(pgrep -c -f 'sh vplan_jpeg' | ||
| + | if [ $(pgrep -c -f ' | ||
| + | # HTML-Datei aufrufen | ||
| + | if [ $(pgrep -c -f ' | ||
| + | firefox $vz/ | ||
| + | fi | ||
| + | ;; | ||
| + | " | ||
| + | # andere Abspieler löschen | ||
| + | if [ $(pgrep -c -f 'sh vplan_jpeg' | ||
| + | if [ $(pgrep -c -f ' | ||
| + | if [ $(pgrep -c -f ' | ||
| + | # Film abspielen | ||
| + | if [ $(pgrep -c -f ' | ||
| + | mplayer -volume 100 -loop 0 -fs $vz/ | ||
| + | fi | ||
| + | ;; | ||
| + | *) | ||
| + | # ALLE Abspieler löschen | ||
| + | if [ $(pgrep -c -f 'sh vplan_jpeg' | ||
| + | if [ $(pgrep -c -f ' | ||
| + | if [ $(pgrep -c -f ' | ||
| + | if [ $(pgrep -c -f ' | ||
| + | ;; | ||
| + | esac | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Das zweite Skript ist das " | ||
| + | |||
| + | < | ||
| + | #/bin/bash | ||
| + | vz=$1 | ||
| + | |||
| + | # wandere durch die Bilder | ||
| + | while true; do | ||
| + | for i in $vz/ | ||
| + | # ggf. JPEG-Skript (neu) starten | ||
| + | if [ $(pgrep -c -f ' | ||
| + | pqiv -i -f -w ~/ | ||
| + | fi | ||
| + | cp " | ||
| + | echo $i ; | ||
| + | # Wartezeit auslesen und warten | ||
| + | wartezeit=$(cat $vz/.wait) | ||
| + | sleep $wartezeit; | ||
| + | done; | ||
| + | done | ||
| + | </ | ||