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

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.

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

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.

Mit Shairport ist es möglich einen Airplay Server aufzusetzen. Allerdings wird das Projekt seit einiger Zeit nicht mehr aktiv betreut:

As I no longer use Shairport myself, I am no longer maintaining or supporting Shairport. Thanks to everyone who has contributed over the years; it's been a great experience. For the ongoing user, there are a great many forks and ports to choose from now, many of which are of a very high quality and well maintained.

— James

Allerdings gibt es mit Shairport Sync einen Nachfolger von Shairport. Im Gegensatz zum Original verfügt Shairport Sync über die Möglichkeit mehrere Räume bespielen zu können. Bezogen werden kann das ganze über die Projektseite auf GitHub.

Möchte man eine SD-Karte unter Windows bespielen, um diese in einem Rasperry Pi zu nutzen, so benötigt man die Software Win32 Disk Imager welche auf SourceForge bezogen werden kann.

Win32 Disk Imager beim Schreiben eines Images

Win32 Disk Imager beim Schreiben eines Images

Dort wählt man anschließend das Image seiner Wahl und startet den Schreibvorgang mit dem Button Write. Dabei sollte man darauf achten das richtige Laufwerk zu beschreiben, da auch externe Festplatten in der Geräteauswahl auftauchen. Je nach Größe des Images und der maximalen Schreibgeschwindigkeit, kann der Vorgang einige Zeit in Anspruch nehmen.

Microsoft kauft Mojang und damit Minecraft. Wenn man sich andere Akquisitionen von Microsoft im Spielebereich anschaut, bekommt man bei dieser Vorstellung ein mulmiges Gefühl. Entweder Sie fahren das Spiel gegen die Wand, oder es läuft demnächst nur noch auf Microsoft-Betriebssystemen. Natürlich kann auch alles funktionierten und unsere Befürchtungen erweisen sich als gegenstandslos. Allerdings zeigt der Aufkauf von Mojang eine Abhängigkeit auf. So haben viele Menschen riesige Bauwerke geschaffen, welche unter Umständen bald nicht mehr verfügbar sind. Minecraft ist nicht nur ein Spiel, es ist ein Kreativbetriebssystem. In einem solchem Fall spielt freie Software ihre Vorteile aus. Bei einer solchen Software, kann man das ganze einfach forken und in seinem Sinne weiterentwickeln. Bei proprietärer Software wird dies schwierig.

Eine von vielen Minecraft-Welten

Eine von vielen Minecraft-Welten

Mit Minetest gibt es einen durch Minecraft inspirierten Clone, welcher für Mac OS X, Linux und Windows verfügbar ist. Das Spiel ist im Gegensatz zur aktuellen Minecraft-Version etwas rudimentär, was Dinge wie verfügbare Blöcke und ähnliches angeht. Allerdings relativiert sich das ganze wenn man sich die API-Schnittstelle anschaut. Mit Hilfe der API, kann man alle möglichen Erweiterungen wie Loren, TNT, Mobs oder Pyramiden ins Spiel holen. Die maximale Weltgröße ist auf −30912 zu 30927 in allen Dimensionen (auch Z) beschränkt. Etwas seltsam erscheint mir allerdings die Speicherung der Map in einer SQLite-Datenbank – dort muss sich zeigen ob dies bei großen Welten wirklich performant ist. Auch für Server-Backups ist dieses Verfahren nicht wirklich gut geeignet. Minetest ist in C++ entwickelt, was sich positiv auf die allgemeine Performance auswirkt, so das es auch auf schwächeren Rechnern genutzt werden kann – so gibt es schon Versuche das ganze auch auf dem Raspberry Pi zum laufen zu bringen.

Minetest in Aktion

Minetest in Aktion

Die Entwicklung von Minetest sieht dabei vielversprechend aus, so das man in Zukunft viele Verbesserungen und neue Features erwarten darf. Neben dem Client ist auch ein Server für den Mehrspieler-Betrieb verfügbar. Der unter der LGPL lizenzierte Quellcode kann über GitHub bezogen werden. Die offizielle Seite von Minetest ist unter minetest.net zu finden.

Den Raspberry Pi kann auf vielfältige Weise genutzt werden. Meist möchte man für einen Test nicht gleich die Hardware rauskramen, sondern stattdessen das ganze erst einmal im Emulator ausprobieren. Die entsprechende ARM-Architektur lässt sich ohne Probleme mittels QEMU emulieren, allerdings ist die Konfiguration eines Raspberry Pi etwas anspruchsvoller.

Die Emulation mittels QEMU

Die Emulation mittels QEMU

Einfacher wird es durch das Projekt „Raspberry Pi emulation for Windows“ welches auf SourceForge zu finden ist. Das Projekt stellt eine knapp 550 MiB große Zusammenstellung bereit, in welcher eine komplette Raspberry Pi Emulation zu finden ist. Das Paket muss nur entpackt werden, anschließend kann der Raspberry Pi Emulator durch Start der „run.bat“ ausgeführt werden.

Wenn eine Software auf den Namen Jasper hört, dann klingt das irgendwie ein bisschen nach Jarvis aus dem Film Iron Man. Und genau dies bietet die Jasper. Die Steuerung des Rechners mittels der Stimme. Dabei bietet Jasper die Möglichkeit auf Kommandos zu reagieren oder informiert den Nutzer wenn bestimmte Ereignisse eingetreten sind.

Technisch setzt Jasper dabei unter anderem auf die Projekte Pocketsphinx und Phonetisaurus auf. Bevorzugt entwickelt wurde Jasper dabei für Rechner wie den Raspberry Pi, wie man im Video sehen kann. Die Autoren der Software sind die Priceton-Studenten Shubhro Saha und Charlie Marsh. Als Programmiersprache kam Python zum Einsatz. Jasper verfügt eine API mit welcher man eigene Erweiterungen für das System schreiben kann.

Jasper ist freie Software und unter der MIT-Lizenz lizenziert. Die offizielle Webseite ist unter jasperproject.github.io zu finden. Auch der Quelltext ist auf GitHub verfügbar.

Manchmal benötigt man ein Image von einer SD-Karte, z.B. dann wenn man eine Installation einer Raspberry Pi Distribution von einer solchen Karte sichern möchte. Im ersten Schritt muss man ermitteln welche Kennung die SD-Karte trägt. Dies geschieht im Terminal mittels:

diskutil list

Die Ausgabe könnte dann in etwa so aussehen:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *249.8 GB   disk1
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *16.1 GB    disk2
   1:             Windows_FAT_32 NO NAME                 16.1 GB    disk2s1

In diesem Fall ist das Gerät „/dev/disk2“ die SD-Karte ist. Mittels des Befehls „dd“ wird dann das entsprechende Image erzeugt:

sudo dd if=/dev/disk2 of=sdcard.img

Der Vorgang nimmt dabei durchaus einige Zeit in Anspruch, in welcher man keine Ausgaben auf der Konsole sieht. Nach der Erzeugung des Images, gibt „dd“ noch eine Auswertung des Kopiervorganges zum Besten und die Kopie ist komplett.

Wer einen Drucker ohne Netzwerkanschluss besitzt, kann ihn mit Hilfe eines Raspberry Pi zu einem Netzwerkdrücker umrüsten. Dazu werden im ersten Schritt die notwendigen Pakete installiert:

sudo apt-get install avahi-daemon cups cups-pdf

Nach der Installation geht es an die Konfiguration. Dazu wird die „cupsd.conf“ bearbeitet:

sudo nano /etc/cups/cupsd.conf

Den Sektionen „<Location />“, „<Location /admin>“ und „<Location /admin/conf>“ wird dabei die Zeile:

Allow @Local

hinzugefügt. Daneben sollte noch die Zeile:

Listen <IP Adresse>:631

hinzugefügt werden. Das sorgt dafür das auf dem passenden Interface gehorcht wird. Danach geben wir in der Konsole folgendes ein:

sudo adduser pi lpadmin
sudo service cups restart

Damit wird der Nutzer „pi“ der Gruppe der Nutzer hinzugefügt welche Einstellungen vornehmen dürfen. Außerdem wird der CUPS Service neugestartet, so das die Änderungen in der Konfigurationsdatei wirksam werden. Nun kann sich über die URL:

https://<IP Adresse>:631

mit dem Webinterface von CUPS verbunden werden.

Das CUPS Webinterface

Das CUPS Webinterface

Im Webinterface wird nun unter dem Tab „Verwaltung“ der Punkt „Freigeben von Druckern welche mit diesem System verbunden sind“ aktiviert. Bestätigt wird das ganze mit den Zugangsdaten des Nutzers „pi“. Abschließend klickt man auf den Button „Verfügbare Drucker auflisten“ und fügt die angeschlossenen Drucker hinzu und gibt ihn frei. Dazu muss das passende Modell ausgesucht und bestätigt werden.

Anschließend kann man den Drucker in seinem Betriebssystem hinzufügen und über den Raspberry Pi drucken. Sollte wieder erwarten kein Druck stattfinden, so liegt das meist am falsch gewählten Druckertyp. Mit der beschriebenen Konfiguration lässt sich auch von iOS Geräten mittels AirPrint druchen.