Webseite im Kiosk-Modus auf dem Raspberry Pi darstellen

Für einen speziellen Anwendungsfall wollte ich eine Webseite im Kiosk-Modus mittels eines Raspberry Pi darstellen. Der Raspberry Pi sollte hochfahren und anschließend die Webseite anzeigen. In diesem Fall wurde Midori als Browser und Raspbian als Distribution ausgewählt. Im ersten Schritt werden die entsprechenden Pakete installiert:

apt-get install xorg matchbox midori unclutter

Nachdem die benötigten Pakete installiert wurden, geht es an die Konfiguration. Dazu wird Home-Verzeichnis des Nutzers pi die Datei .xinitrc angelegt und mit folgendem Inhalt befüllt:

#!/bin/sh
/usr/bin/unclutter &
/usr/bin/matchbox-window-manager &
xset -dpms
xset s off
while true; do
/usr/bin/midori -e Fullscreen -a https://example.org
done

Mittels unclutter wird der Mauscursor ausgeblendet; anschließend wird der Window-Manager gestartet. Danach geht es an die Konfiguration von X11 – die Energiesparoptionen und der Bildschirmschoner werden deaktiviert. Zum Abschluss folgt der eigentliche Start des Browsers in einer Schleife. Dies führt dazu dass Midori nach einem Absturz sofort wieder neugestartet wird. Die aufzurufende URL sollte dabei natürlich angepasst werden. Damit X11 automatisch gestartet wird, editieren wir wir ebenfalls die Datei .bashrc – dort fügen wir an das Ende Datei folgenden Befehl hinzu:

# Start X11
startx

In diesem speziellen Fall war der Anzeigemonitor um 90 Grad gedreht, so das der Inhalt des Bildschirms ebenfalls gedreht werden musste. Dazu muss die Datei /boot/config.txt bearbeitet werden und folgender Wert hinzugefügt werden:

display_rotate=1

Nun muss nur noch dafür gesorgt werden, dass der Raspberry Pi nach dem Start automatisch in den Nutzer pi einloggt. Dazu kann das Konfigurationswerkzeug raspi-config genutzt werden.

Die Einstellung um automatisch mit dem Nutzer pi zu starten

Die entsprechende Einstellung befindet sich in den Boot Options und dort im Punkt Desktop / CLI. An dieser Stelle muss Console Autologin ausgewählt werden. Anschließend kann der Raspberry Pi neugestartet werden und das ganze getestet werden.

KVM Server unter Mac OS X verwalten

Wenn man einen KVM Host aufgesetzt hat, steht man vor der Frage wie man diesen effizient verwaltet. Für die grafische Remoteverwaltung gibt es unter Ubuntu den Virtual Machine Manager welcher einfach über die Paketverwaltung installiert werden kann:

apt-get install virt-manager

Im Virtual Machine Manager können dabei neue virtuelle Maschinen angelegt oder bestehende Maschinen verändert werden. Der Virtual Machine Manager stellt dabei eine Abstraktionsebene bereit, so kann er nicht nur KVM, sondern auch Xen und LXC Maschinen verwalten.

Virtual Machine Manager

Virtual Machine Manager

Unter Mac OS X steht keine Virtual Machine Manager Alternative zur Verfügung. Allerdings kann man hier etwas schummeln, indem man den KVM Host dafür zweckentfremdet. Dazu muss das Paket „virt-manager“ auf dem KVM Host installiert werden. Auf dem Mac muss XQuartz installiert werden, damit eine X11 Implementierung zur Verfügung steht. Nach der Installation öffnet man ein Terminal und gibt dort folgendes ein:

ssh -X root@server.example.org
virt-manager -c qemu:///system

Anschließend wird der Manager gestartet und kann wie gewohnt genutzt werden.

Der Virtual Machine Manager unter Mac OS X

Der Virtual Machine Manager unter Mac OS X

Bei diesem Verfahren wird die grafische Ausgabe des KVM Hosts auf den Mac umgeleitet. Somit wird der Virtual Machine Manager auf der Ubuntu-Maschine ausgeführt, präsentiert seine Oberfläche aber unter Mac OS X.

Xorg produziert hohe CPU Auslastung

Xorg erreichte auf meinem Kubuntu im Mittel zwischen 30 und 80 % CPU Auslastung. Ich benutze dabei eine Nvidiakarte mit dem proprietären Treiber auf zwei Bildschirmen. Durch die hohe Xorg Belastung war das System zeitweise unbedienbar geworden. Der Eintrag:

Section „Device“
Identifier „Configured Video Device“
Option „AccelMethod“ „XAA“
EndSection

in der xorg.conf löste das Problem dann nach einem Neustart aber. Nun bleibt Xorg im Mittel bei 3 – 8 % mit gelegentlichen Spitzen auf 20 – 30 %. So wirkt das ganze System wie neu und ist endlich wieder bedienbar :)

Probleme mit nvidia-settings

Ich betreibe seit kurzem an meinem Rechner zwei Bildschirme bzw. wollte sie betreiben. Eigentlich ist das kein Problem nvidia-settings mit root Rechten starten, alles fix einstellen von nvidia-settings in die xorg.conf schreiben lassen und schon läuft das ganze. Leider war das zu kurz gedacht. Ich wurde mit der Meldung:

Failed to parse existing X config file ‚/etc/X11/xorg.conf‘

überrascht. Nach einigem hin und her bin ich dann zu folgender Lösung gekommen. Im ersten Schritt wird

sudo nvidia-xconfig –twinview

in der Konsole ausgeführt und danach nvidia-settings mit root Rechten gestartet, alles eingestellt und in der xorg.conf gespeichert, was in diesem Fall dann gelingen sollte. Jetzt muss ich nur noch herausfinden warum die Fenster immer auf dem rechten Bildschirm geöffnet werden…

Über SSH auf die graphische Oberfläche des Freerunners zugreifen

Möchte man auf dem Desktop z.B. mal den Browser ausprobieren, da man auf dem Neo z.B. keinen Slash eingeben kann, so wäre es wünschenswert das man die graphische Ausgabe gleich per SSH mitnimmt. Erfreulicherweise ist das ganze auch relativ unkompliziert.

Als erstes stellt man eine Verbindung per USB Networking her. Natürlich geht das ganze auch übers WLAN, dabei müssen dann allerdings die IP Adressen angepasst werden. Sobald man sich dann per SSH mit seinem Neo verbunden hat gibt man export DISPLAY=192.168.0.200:0.0 ein und bestätigt das ganze mit der Entertaste.

Auf unseren PC öffnen wir nun noch ein Terminal und geben folgendes ein:

xhost +
ssh -X root@192.168.0.202

Um nun zu testen ob das ganze funktioniert hat, geben wir nun einfach openmoko-browser2 ein und schon müsste sich der Browser auf dem Desktop öffnen und wir können die Anwendung wie auf dem Neo benutzen.