seeseekey.net - Invictus Deus Ex Machina

Wenn man die Raspberry Pi Kamera nutzt, leuchtet während der Nutzung eine rote LED. Möchte man diese LED deaktivieren so muss die Datei /boot/config.txt bearbeitet werden:

nano /boot/config.txt

Dort muss der Parameter disable_camera_led hinzugefügt werden:

disable_camera_led=1

Anschließend muss der Raspberry Pi mittels:

reboot

neugestartet werden. Nach dem Neustart ist die LED bei Kameraoperationen abgeschaltet.

Möchte man mit der Raspberry Pi Kamera Fotos und Videos aufnehmen, so muss diese im ersten Schritt aktiviert werden. Dies geschieht mit dem Konfigurationstool raspi-config.

Das Konfigurationstool raspi-config

Nach der Aktivierung und dem Neustart des Raspberry Pi kann die Kamera genutzt werden. Mit dem Befehl:

raspistill -o bild.jpg

wird ein Bild von der Kamera auf die Festplatte geschrieben. Möchte man ein Video aufnehmen nutzt man raspivid:

raspivid  -t 10000 -o video.h264

In diesem Beispiel wird dabei ein 10 Sekunden langes Video in HD (1920 x 1080) aufgenommen.

Für ein kleines Projekt war ich auf der Suche nach einer Möglichkeit eine Reihe von Wave-Dateien mit einem Echo zu versehen. Fündig wurde ich schließlich beim freien Werkzeug Sound eXchange oder kurz sox, mit welchem solche Operationen möglich sind. Es handelt sich dabei um ein Schweizer Taschenmesser für Audiobearbeitung. Ein Echo wird dabei mittels Sound eXchange wie folgt auf eine Datei gerechnet:

sox clean.wav echo.wav echo 0.8 0.87 60 0.4

Dank MacPorts kann man das Tool nicht nur unter Linux, sondern auch unter Mac OS X nutzen. Die offizielle Projektseite ist auf SourceForge zu finden.

Da läuft der Webserver mit Nginx und PHP (eingebunden über den FastCGI Process Manager) seit vielen Wochen ohne Probleme und plötzlich wird man nur noch mit einem:

502 Bad Gateway

begrüßt. Das ist im ersten Moment verwunderlich, wenn sich nichts an der Konfiguration geändert hat. Dem Nutzer und gestressten Administrator möchte diese Meldung dabei mitteilen, das die Verbindung zum „PHP-Server“ nicht funktioniert. Wenn über ein Unixsocket auf das PHP zugegriffen wird, so kann es zur 502er Fehlermeldung kommen, wenn der Datei keine ausreichenden Rechte mehr zugewiesen sind. Mit einem beherzten:

chmod go+rw /var/run/php5-fpm.sock

verfügt das Socket wieder über die korrekten Zugriffsrechte. Unter Umständen muss die PHP-Engine mit:

service php5-fpm restart

neugestartet werden. Verursacht werden kann dieses Problem unter anderem durch automatisch eingespielte Updates, welche die Berechtigung der Socket-Datei verändern.

Vor ein paar Tagen ist mein erstes Buch Selfhosting — Server aufsetzen und betreiben erschienen. Das Buch dreht sich thematisch um das Hosting und dem Betrieb eines eigenen Servers und begleitet den Leser bei der Auswahl des passenden Anbieters, führt ihn in Linux als verwendetes Betriebssystem ein und begleitet ihn beim Aufsetzen konkreter Serverprojekte, wie das Aufsetzen von Mail-, Web– und anderen Serverdiensten. In den abschliessenden Kapiteln wird auf weitere wichtige Sachverhalte wie die Sicherheit und das Backup des eigenen Servers eingangen, so das der Leser einen guten Einblick in den Betrieb eines Servers gewinnt.

Erhältlich ist das Buch unter anderem bei Amazon, Beam, eBook.de, iTunes und Thalia. Im Buch selbst ist ein Code enthalten, mit welchem man zusätzlich zum gekauften Buch eine DRM freie Version beziehen kann.

Mit dem Raspberry Pi kann man mit Hilfe von Icecast schnell einen Streamingserver für Audio installieren. Dazu muss im ersten Schritt Icecast installiert werden:

apt-get install icecast2

Während der Installation startet die Konfiguration des Paketes. So wird nach dem Hostnamen und den Passwörtern zum Streamen gefragt. Nach der Installation ist die Weboberfläche von Icecast unter Port 8000 und der entsprechenden IP erreichbar — in meinem Beispiel unter http://192.168.1.100:8000/. Der Standardnutzer für den administrativen Bereich ist dabei admin.

Die Weboberfläche von Icecast

Mit dieser Konfiguration ist der Raspberry Pi ein Streaming Server. Mit einem Tool wie butt, kann der Server nun bespielt (Standardnutzer: source, Passwort: hackme) werden. Die Mountpoints werden bei der Verbindung automatisch angelegt. Wenn man mit butt den Mountpoint stream123 bespielt, befindet sich der Stream in diesem Beispiel unter http://192.168.1.100:8000/stream123 und kann mit einem entsprechenden Player abgespielt werden.

Für den Hackerspace in Neubrandenburg waren wir auf der Suche nach der Möglichkeit ein Kiosk-System unter Ubuntu 12.04 LTS einzurichten. Das System sollte dabei hochfahren, den Browser öffnen und eine Webseite im Vollbild darstellen. In dieser Anleitung wird dabei davon ausgegangen, das System mit der Serverversion von Ubuntu 12.04 LTS installiert wurde. Nach der Installation muss im ersten Schritt der Desktop nachinstalliert werden:

apt-get install ubuntu-desktop

Der installierte Desktop wird beim nächsten Neustart automatisch ausgeführt, so das hier keine weitere Konfiguration notwendig ist. Nun legen wir den Nutzer für den Kioskbetrieb an:

adduser kiosk

Dieser Nutzer soll beim Neustart automatisch angemeldet werden. Dazu wird die Datei /etc/lightdm/lightdm.conf bearbeitet. In diese Datei wird dabei folgendes eingetragen:

[SeatDefaults]

autologin-guest=false
autologin-user=kiosk
autologin-user-timeout=0
autologin-session=lightdm-autologin
user-session=ubuntu
greeter-session=unity-greeter

Damit sind die ersten grundlegenden Schritte fertiggestellt und der Rechner kann neugestartet werden. Der Rechner fährt nun hoch und loggt sich mit dem Nutzer kiosk ein. In unserem Fall wurde nun der Bildschirm um 90 Grad über die Systemeinstellungen gedreht, da die Webseite hochkant angezeigt werden sollte. Damit der Bildschirm nicht nach einer gewissen Zeit ausgeht, sollte der Bildschirmschoner und die automatische Sperrung in den Systemeinstellungen unter Helligkeit und Sperren deaktiviert werden. Anschließend sollte im Terminal:

gsettings set org.gnome.desktop.screensaver idle-activation-enabled false

eingeben werden. Im Nutzerordner des Nutzers kiosk wird nun eine Datei mit dem Namen firefox.sh angelegt. Die angelegte Bash-Datei wird mit folgendem Inhalt gefüllt:

#!/bin/bash
setterm -blank 0
sleep 90;
while true;
do
 firefox -url http://example.org/
      sleep 0.1s;
done

Im Firefox selbst sollte ein Add-On für den Kiosk-Modus installiert werden. Hier stehen mKiosk und R-kiosk zur Auswahl. Mit dem Add-On wird der Firefox in die Möglichkeiten versetzt die Webseite im Vollbild anzuzeigen. Für den automatischen Start des Firefox werden nun folgende Zeilen zur .profile–Datei des Nutzers kiosk hinzugefügt:

# Start firefox
./firefox.sh &

Die 90 Sekunden Verzögerung in dem Skript dienen dazu, dem System genug Zeit für die Initialisierung und die Bildschirmdrehung zu geben. Damit der Mauszeiger nicht zu sehen ist, bietet sich das Paket unclutter an. Mit:

unclutter -idle 0.01 -root

wird der Mauszeiger nach der definierten Zeit ausgeblendet, bis er wieder bewegt wird.

Betriebssysteme und Anwendungen hinterlassen an vielen Stellen Daten in Form von temporären, Sicherungs– und sonstigen Dateien. Das führt im schlimmsten Fall dazu das etliche Gigabyte auf der Festplatte unnötig belegt sind.

BleachBit unter Windows

Mit BleachBit ist es möglich dieses Problem zu entschärfen und die Festplatte zu bereinigen. Dazu wählt man im ersten Schritt die gewünschten Bereinigungsmechanismen aus. Anschließend wird ermittelt wie viel Speicherplatz damit gespart werden kann und auf Wunsch wird die Bereinigung durchgeführt. Bezogen werden kann die Software auf der offiziellen Projektseite — es sind Versionen für Windows und Linux verfügbar. BlechBit ist unter der GPL3 lizenziert und damit freie Software.

Wenn man einen Server mit einem Mail Transfer Agent wie Postfix betreibt, kann man von diesem auch Mails versenden. Auf der Konsole ist dies dabei mit dem Kommando mail möglich, welches sich im Paket mailutils befindet. Mit dem Kommando kann mittels:

echo "Nachricht" | mail -s 'Betreff' mail@example.com

eine Mail versandt werden. Natürlich können auch lokale Konten bespielt werden:

echo "Nachricht" | mail -s 'Betreff' root

Damit wird in diesem Fall dem Nutzer root eine Mail gesendet.

Vor einigen Tagen ist mir ein Mailserver (bestehend aus Postfix und Dovecot) begegnet, welcher in der mail.err regelmäßig folgende Ausgabe wiederholte:

Apr 2 13:16:35 service dovecot: lda(root): Error: chdir(/root/) failed: Permission denied (euid=65534(nobody) egid=65534(nogroup) missing +x perm: /root, dir owned by 0:0 mode=0700)
Apr 2 13:16:35 service dovecot: lda(root): Error: chdir(/root) failed: Permission denied
Apr 2 13:16:35 service dovecot: lda(root): Error: user root: Initialization failed: Namespace '': stat(/root/Maildir) failed: Permission denied (euid=65534(nobody) egid=65534(nogroup) missing +x perm: /root, dir owned by 0:0 mode=0700)
Apr 2 13:16:35 service dovecot: lda(root): Fatal: Invalid user settings. Refer to server log for more information.

Der Dovecot-Service versucht auf einen Maildir–Ordner im Nutzerverzeichnis des Nutzers root zuzugreifen, was allerdings nicht gelingt. Einfach lösen lässt sich dieses Problem in dem man einen Alias für die Mailzustellung zum Nutzer root anlegt. Dazu wird im ersten Schritt die Datei /etc/aliases bearbeitet. In dieser Datei kann der entsprechende Alias eingetragen werden:

root: webmaster@example.com

Nachdem die Datei gespeichert wurde, muss die Datei in ihre binäre Form überführt werden und die entsprechenden Services neugestartet werden:

newaliases
service dovecot restart
service postfix restart

Damit werden die Mails von root im entsprechenden Postfach hinterlegt und die Fehlermeldung gehört der Vergangenheit an.