seeseekey.net - Invictus Deus Ex Machina

Seit November 2016 wird die Standarddistribution für den Raspberry Pi namens Raspbian, eine auf Debian basierende Distribution, mit deaktiviertem SSH-Server ausgeliefert. Was aus Sicherheitsgründen lobenswert ist hat natürlich für die schnelle Inbetriebnahme eines Raspberry Pi einige Nachteile.

Ein Raspberry Pi 3

Allerdings existieren zwei relativ einfache Wege den SSH-Dienst wieder zu aktivieren. Die erste Möglichkeit ist, nachdem das Image auf die für den Raspberry Pi verwendete SD- bzw. microSD-Karte gebracht wurde, auf der boot-Partion der Karte eine Datei mit dem Namen ssh anzulegen. Ist diese Datei vorhanden, so wird der SSH-Serverdienst beim Start des Raspberry Pi aktiviert.

Die entsprechende Option in raspi-config

Läuft der Raspberry Pi bereits und man hat Zugriff auf diesen kann der SSH-Dienst mittels des Konfigurationstools raspi-config aktiviert werden. Nachdem dieses gestartet wurde, wird dort der Punkt Interfacing Options ausgewählt. Dort findet sich der Unterpunkt P2 SSH. Wählt man diesen Unterpunkt an, wird nach der Bestätigung der Sicherheitsabfrage der SSH-Dienst aktiviert.

Nach der Sicherheitsabfrage wird der SSH-Dienst aktiviert

Nun kann sich (wenn das Raspbian noch in der Standardkonfiguration läuft) mittels:

ssh pi@raspberry.local

und dem Passwort raspberry eingeloggt werden. Da man dieses Passwort nach der Ersteinrichtung ändern sollte, erhält man beim Login über ssh folgenden Hinweis:

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

Dieses Hinweis sollte befolgt werden und das Passwort mit dem Kommando:

passwd

geändert werden. Anschließend kann der Raspberry Pi ohne Probleme mit dem SSH-Dienst genutzt werden. In der offiziellen Raspberry Pi Dokumentation wird weiterführend auf das Thema eingegangen. Dort wird neben der eigentlichen Einrichtung des SSH-Dienstes auch die Nutzung verschiedener Clients in den unterschiedlichen Betriebssystemen besprochen.

Vor einiger Zeit schrieb ich einen Artikel in welchem ich beschrieb wie die Firmware des Raspberry Pi aktualisiert werden kann. Mittlerweile lässt sich das ganze noch einen Schritt einfacher bewerkstelligen. Im ersten Schritt muss rpi-update installiert werden:

sudo apt-get install rpi-update

Anschließend kann der Updater mittels:

sudo rpi-update

aufgerufen werden. Neben diesem Aufruf existieren eine Reihe weiterer Optionen mit denen sich der Aktualisierungsprozess noch besser steuern lässt. Im Normalfall werden diese allerdings nicht benötigt. Nach dem Backup der alten Firmware und vor dem eigentlichen Update erscheint in der aktuellen Version eine Sicherheitsabfrage:

#############################################################
WARNING: This update bumps to rpi-4.9.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934
##############################################################
Would you like to proceed? (y/N)

Wenn man keine spezielle Hardware (der Beitrag im Forum behandelt eventuelle Probleme) betreibt, kann man das ganze mit einem Druck auf die y-Taste bestätigen. Anschließend wird das Firmware-Update durchgeführt. Dabei werden die Firmware, Kernel Module, das SDK, einige Bibliotheken wie z.B. die VideoCore und HardFP-Bibliotheken und weitere Komponenten aktualisiert. Wenn die Aktualisierung fehlerfrei durchlief, sollte der Raspberry Pi mittels:

sudo reboot

neugestartet werden. Das Projekt des Updaters kann auf GitHub gefunden werden. Der Updater ist unter der MIT Lizenz lizenziert und freie Software. Technisch handelt es sich bei dem rpi-update-Tool um ein Bash-Skript. Es befindet sich seit April 2012 in aktiver Entwicklung, so das man auch in Zukunft auf dieses Tool bauen kann.

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.