Präsentation von Webseiten mit dem Raspberry Pi

Die Seite wird erstellt Johanna Hanke
 
WEITER LESEN
58. UKW-Tagung Weinheim 2013

              Präsentation von Webseiten mit dem Raspberry Pi
                                    Tobias Kaboth, DG2DBT
                                          dg2dbt@darc.de

Einleitung
Im täglichen Amateurfunkleben nutzt manche YL und mancher OM Webseiten mit Informationen
welche sich dynamisch und automatisch ändern. Die Möglichkeiten sind zahlreich, z.B. können
somit Clustermeldungen, interaktive Weltkarten mit Funkverbindungen / -ausbreitungen oder
Wetterberichte dargestellt werden.
Um diese Informationen ständig im Blick zu haben bietet sich ein kleines und stromsparendes
Zusatzsystem, abgetrennt vom Hauptrechner und -monitor an, welches mit einem Raspberry Pi und
einem TFT-Monitor in Wunschgröße realisiert werden kann. Je nach baulicher Ausführung ist ein
handliches Gerät beim Fieldday und im Urlaub mit Internetanbindung dabei oder hängt im
Bilderrahmen neben den Diplomen im Shack.

In diesem Artikel wird die Installation und Konfiguration des Raspberry Pi auf Basis des Image
Raspbian „wheezy“ (Stand 29.02.2013) dokumentiert, welches zum Download auf der
Projektwebseite des Raspberry angeboten wird.

Ein gewisses Grundverständnis mit einem Linuxsystem, auch mit dem Umgang auf einer Shell, ist
hilfreich und setzt der Autor voraus. Ebenso zusätzliche Hardware wie ein stabilisiertes Netzteil
(z.B. ein Mobileladegerät 5V / 1A) und einen Internetanschluß. Eine Tastatur und eine Maus ist
lediglich bei der Installation und Konfiguration notwendig.

Vorbereitung und Konfiguration beim ersten Booten
Zuerst muß das Image von der Raspberry Projektwebseite geladen und auf eine SD-Karte installiert
werden. Dieser Vorgang wird u.a. auf der Webseite http://elinux.org/RPi_Easy_SD_Card_Setup
ausführlich dokumentiert und soll in diesem Artikel nicht weiter beschrieben werden.
Die Gesamtinstallation paßt auf eine SD-Karte mit der Größe von 2GB aber der Speicherplatz wird
schnell eng und schränkt gewisse Installationen ein. Beim Versuch des Autors, mit einigen wenigen
weiteren Installationen (u.a. Mailserver), waren gerade noch 60 MB freier Speicherplatz übrig,
wobei allerdings keine Pakete der Standardinstallation entfernt wurden. Im laufenden Betrieb wird
dieser freie Speicherplatz durch das Schreiben von Systemlogdateien und einem ggf. konfigurierten
Browsercache verringert. Aus diesen Gründen empfiehlt sich der Einsatz von Speicherkarten von
mindestens 4GB.

Beim ersten Start des Raspberry Pi sollte ein TFT-Monitor oder ein TV-Gerät am HDMI-Anschluß
betrieben werden. Somit erkennt das System beim Booten das Sichtgerät und kann somit die
Grafikkonfiguration vornehmen. Das Wechseln des Sichtgerätes ist später natürlich möglich. Auch
hierbei wird beim Booten erkannt welche Parametrierung des Grafikmodus notwendig ist. Nach
dem initialen Bootvorgang wird automatisch die Auswahl für die Grundkonfiguration gestartet. In
diesem können Grundeinstellungen, nach den eigenen Bedürfnissen, für das Gesamtsystem
vorgenommen werden.

Ein Betrieb und die Konfiguration eines analogen Sichtgeräts ist möglich, wurde aber vom Autor
nicht getestet.

Für unser Projekt wählen wir folgende Einstellungen aus dem Konfigurationsmenu.
expand-rootfs
Hierüber weisen wir den maximal verfügbaren Speicher der SD-Karte der Rootpartition zu.

configure_keyboard
Dies erleichtert die Eingabe über die Tastatur insbesondere bei Eingaben in der Shell.

change_pass
Es wird dringend empfohlen das Paßwort des Standardusers pi zu ändern.

change_timezone
Es ist hilfreich wenn nicht nur die Zeit über NTP automatisch gesetzt wird, sondern wenn auch die
Zeitzone stimmt. Insbesondere, wenn in Logdateien gesucht werden muß oder um Cronjobs effektiv
zu betreiben.

ssh
Wir aktivieren den SSH Zugriff über ein Netzwerk damit später auf das laufende System wenigstens
per Textkonsole zugegriffen werden kann ohne eine Maus oder Tastatur am Raspberry anschließen
zu müssen. Hierbei sollte Wert auf entsprechende Sicherheit gelegt werden. Beim Einsatz von
Tastatur und Maus kann der Zugriff über SSH auch deaktiviert bleiben.

boot_behaviour
Hierüber konfigurieren wir das System so, daß automatisch die grafische Oberfläche für den User pi
startet. Bei dieser Einstellung gibt es keine Aufforderung das Paßwort einzugeben.

update
Die gewählten Einstellungen werden nun aktiviert und das System startet.

Andere Konfigurationen können nach Belieben, bzw. Anforderung eingestellt werden.

Bei Bedarf kann das Konfigurationsprogramm später unter dem User root manuell aufgerufen
werden.

       /usr/bin/raspi-config
Systemupdate
Nach der Grundinstallation und Konfiguration bietet es sich an das System zu aktualisieren. Hierzu
ist eine aktive Internetverbindung Voraussetzung.

Folgende Schritte der Aktualisierung können als User root im LXTerminal ausgeführt werden.

       apt-get update
       apt-get -fy upgrade
       apt-get -y dist-upgrade
       apt-get -y autoclean
       apt-get -y autoremove

Mindestens empfehlenswert sind die ersten zwei Eingaben mit der Ausführung von update und
upgrade um die Paketindexdatei mit ihren Quellen zu synchronisieren und um die neuesten
Versionen aller aktuell auf dem System installierten Pakete zu installieren.
Für weitere Informationen wird das Studium der Manpage für apt-get empfohlen.

Evtl. ist es notwendig das System anschließend zu rebooten (um ggf. einen neuen Kernel zu
aktivieren).

Die grafische Oberfläche LXDE startet nun automatisch.

Browser starten
Als nächstes soll der Browser automatisch starten. Wir nutzen den schlanken Webbrowser midori.
Dieser ist bereits bei der Standardinstallation vorhanden.
Für den automatischen Start legen wir im Homeverzeichnis des Users pi ein Verzeichnis scripts an
(im LXTerminal mit dem user pi).

       cd /home/pi
mkdir scripts

Nun erstellen wir in dem Verzeichnis /home/pi/scripts das folgende Shellscript Namens midori.sh
(mit einem Editor eigener Wahl) .

Quellcode:

#!/bin/bash
export DISPLAY=:0
while [ TRUE ]; do
    ps -ef | grep 'midori -e Fullscreen' | grep -v grep > /dev/null 2>&1
    if [ $? -eq 1 ] ; then
         midori -e Fullscreen --display=:0 &
    else
         midori -e Reload
    fi
    sleep 3600
done

Das Script läuft in einer Endlosschleife. Hierbei wird regelmäßig geprüft ob der Ausdruck „midori
-e Fullscreen“ in der Prozeßliste gefunden wird. Falls nicht, wird der Browser im Vollbildmodus
und als Hintergrundprozeß gestartet. Die Ausgabe wird auf das Standarddisplay ausgegeben. Wenn
das Script erkennt, daß der Browser bereits läuft wird dieser angewiesen einen Reload
durchzuführen. Dies kann bei Webseiten notwendig sein welche selbst keinen Reload durchführen.
Es kann auch sein, daß der Refresh der Webseite nicht mehr funktioniert oder die Browseranzeige
hängen geblieben ist. Standardmäßig ist eine Wartezeit von einer Stunde (3600 Sekunden)
eingestellt, welche natürlich auf die eigenen Anforderungen geändert werden kann.

Um den Browser im laufenden Betrieb (wenn keine Tastatur/Maus mehr angeschlossen ist, oder
wenn das System zu weit entfernt steht) manuell neu zu starten reicht es aus sich per SSH auf das
System zu verbinden und dann den entsprechenden Prozeß zu killen.

Beispiel:
       pi@raspberrypi ~/scripts $ ps -ef | grep midori
       pi    2171 1 0 13:01 ?          00:00:00 /bin/bash /home/pi/scripts/midori.sh
       pi    2177 2171 5 13:01 ?         00:29:08 midori -e Fullscreen --display=:0
       pi    3703 2414 0 21:54 pts/0 00:00:00 grep --color=auto midori
       pi@raspberrypi ~/scripts $ kill 2177
       pi@raspberrypi ~/scripts $

Nach Ablauf der Wartezeit, welche im Script midori.sh angegeben ist, wird der Browser neu
gestartet. Das Kontrollscript midori.sh kann nach Modifikationen manuell restartet werden, sowie
die X-Displayausgabe nicht verändert wurde.

Die Rechte des Scripts müssen noch gesetzt werden damit das Programm für den User pi ausführbar
ist.

       chmod 744 ~/scripts/midori.sh

Damit das Script automatisch ausgeführt wird muß es in der Autostart-Datei vom LXDE
eingetragen werden.
Diese Datei existiert zu dem Zeitpunkt noch nicht, ebenso auch noch nicht das Verzeichnis in dem
die Datei vorhanden sein muß.

Wir legen erst (mit dem User pi) das Verzeichnis ~/.config/lxsession/LXDE/ an.

       mkdir -p ~/.config/lxsession/LXDE

In dem erstellten Verzeichnis LXDE legen wir die Textdatei Namens autostart an, welche wie folgt
aussehen sollte.

/usr/bin/unclutter &
/home/pi/scripts/midori.sh

Wir erkennen in der Konfigurationsdatei auch den Aufruf des Programms unclutter.
Dieses dient dazu bei Nichtaktivität den Mauszeiger nach ein paar Sekunden (Zeitspanne kann bei
Bedarf konfiguriert werden) nicht mehr anzeigen zu lassen. Für einen Präsentationsmodus ist dies
sehr empfehlenswert.

Das Programm unclutter muß allerdings erst installiert werden.
Per Standardinstallation wird nach einigen Minuten der Nichtaktivität der Bildschirm schwarz
geschaltet. Für eine Präsentation müssen wir dies über den Bildschirmschoner deaktivieren.
Deswegen installieren wir auch den Bildschirmschoner xscreensaver.

Beide Programmpakete werden über folgenden Befehl mit dem User root installiert.

       apt-get install unclutter xscreensaver

Es kann sein, daß mit der Laufzeit Probleme mit dem Browser auftreten, da dieser viel Speicher
benötigt. Um das Risiko einer Fehlfunktion zu minimieren restarten wir den Browser z.B. jeden
Montag Morgen um 05:00 Uhr. Hierzu erstellen wir folgenden Crontab (mit dem Befehl crontab -e)
unter dem User pi mit dem wir den Browser hart killen.

       0 5 * * 1 kill -9 `ps -ef | grep midori | grep Fullscreen | awk {'print $2'}` > /dev/null 2>&1

Nach Ablauf des Wartetimers im Script midori.sh wird der Browser automatisch gestartet.

Screensaver konfigurieren
Über das LXME-Menu Preferences wird der Screensaver gestartet und die Option „Mode: Disable
Screen Saver“ ausgewählt.
Webbrowser midori konfigurieren
Wir können nun den Webbrowser midori konfigurieren.
Im einzelnen werden wir die URL, die Größe des Browsercache und die Browserkennung einstellen.
Letztere würde (aufgrund eines Bugs) das System als einen Macintosh und nicht als ein
Linuxsystem repräsentieren.

Wir starten den Browser über die GUI von LXDE (vorausgesetzt er wurde noch nicht bei einem
erneuten Reboot oder durch den manuellen Aufruf vom Script midori.sh gestartet) und
konfigurieren folgende Menupunkte über den Aufruf von Preferences im Browser.

Im Reiter Startup geben wir die URL ein die automatisch aufgerufen werden soll.
Wir wählen die Einstellungen „Show Homepage“ und „use current page as homepage“ aus.

Im Reiter Network passen wir den WebCache an. In dem Fall wurde er auf eine Größe von 10MB
reduziert.
Damit sich der Browser konform ausweist wählen wir noch „Identify as Midori“ aus.

Die Daten werden automatisch gespeichert. Wir können das Menu Preferences verlassen und den
Raspberry rebooten. Nun wird automatisch die Wunschwebseite im Vollbild angezeigt und
regelmäßig aktualisiert.
Fazit
Mit geringem Einsatz von Hard- und Software ist es uns gelungen, daß der Raspberry Pi beim
einschalten bootet und automatisch die grafische Benutzeroberfläche LXDE aktiviert. Anschließend
wird der Browser midori im Vollbildmodus gestartet. Dieser ruft eine gewünschte Webseite auf.

Die Themenbereiche Netzwerk, Sicherheit und auch weitere Themen auf Betriebssystem- oder
Applikationsebene, welche u.U. beim Betrieb eines solchen Systems betrachtet werden müssen,
wurden absichtlich nicht in diesem Artikel behandelt, da die Ansprüche an diese Themen sehr
individuell sein können. Hier verweist der Autor auf weiterführende Lektüre, welche im Internet
oder Fachhandel zu finden ist.

Quellenverweise
http://www.raspberrypi.org/                       Raspberry Projektwebseite
http://elinux.org/RPi_Easy_SD_Card_Setup          Installation des Images auf SD-Karte
Sie können auch lesen