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 | ||
+ | </ | ||