Minipc mit Linux: Raspberry Pi

Der Raspberry Pi.

Der Raspberry Pi.

Der Raspberry Pi ist laut Wikipedia ein kreditkartengroßer „Einplatinen-Computer“. Diese Beschreibung ist keineswegs übertrieben, sondern sogar wörtlich zu nehmen. Der Raspberry Pi ist ein vollwertiger Computer in der Größe einer üblichen Scheckkarte.

Auf den ersten Blick wirkt der Pi wie etwas für Bastler, schließlich schaut er doch eher nackt aus. Das Tolle ist: Er ist sowohl unproblematisch für Laien als auch das Gerät für jeden Bastler. Man kann ihn ganz schnell und unkompliziert in Betrieb nehmen und im Internet surfen, oder aber man schreibt dafür Software, steuert externe Geräte oder lässt einen Roboter laufen. Diese Vielseitigkeit und gleichzeitige Einfachheit ist sein Erfolgsrezept.
Den Pi gibt es aktuell in zwei Ausführungen: eine mit 256 MB RAM (Modell A) und eine mit 512 MB RAM (Modell B). Alle weiteren Details und Bilder in diesem Artikel beziehen sich auf das Modell B.

Geschichte

Der Raspberry Pi geht auf einen Prototypen aus dem Jahr 2006 zurück. Ziel der Entwicklung war ein kleiner und günstiger Computer für britische Schüler. Man rechnete mit einem Verkauf von rund 1000 Stück. Die Raspberry Pi Foundation (eine gemeinnützige Organisation) hatte ursprünglich vor, Jugendlichen das Programmieren-Lernen zu erleichtern. Schnell kam man aber auf die Idee, dass man am besten mit einem preisgünstigen Computer helfen kann. Sechs Jahre nach der ersten Idee erreichte der Hype um den Raspberry Pi seinen Höhepunkt. Anfang 2013 teilte die Raspberry Pi Foundation mit, dass bereits eine Million Pis verkauft wurden.

Der Raspberry Pi in einem Case mit angestecktem LAN- und HDMI-Kabel.

Der Raspberry Pi in einem Case mit angestecktem LAN- und HDMI-Kabel.

Komponenten

Auf der Platine sind alle Komponenten eines Computers untergebracht. Das Herz des Raspberry Pis ist seine CPU. Die Recheneinheit des Pis ist ein ARM1176JZF-S-Prozessor. Dieser wird ab Werk mit 700 MHz getaktet. ARM-Prozessoren kennt man von mobilen Geräten wie Handys oder Tablets. Sie sind sehr stromsparend und brauchen vor allem keine aktive Kühlung.
Für die grafischen Berechnungen sorgt die GPU. Hier kommt ein Broadcom VideoCore-IV-Grafikkoprozessor zum Einsatz. Dieser ist so leistungsstark, dass man ein Full-HD-Signal ohne Ruckeln darstellen kann. Es wird OpenGL ES 2.0 unterstützt. Man kann damit 3-D-Spiele laufen lassen wie zum Beispiel Quake 3.
Der nächste wichtige Bestandteil ist der Hauptspeicher. Es stehen 512 MB zur Verfügung, die aber mit der GPU geteilt werden müssen. Üblicherweise verwendet diese davon 64 MB. Der Arbeitsspeicher ist nicht groß, aber ausreichend.
Der große Unterschied des Raspberry Pis gegenüber vielen anderen Einplatinen-Computer sind seine Anschlüsse: Es gibt zwei USB-2.0-Steckplätze, die heute jeder PC oder Laptop auch hat. An die USB-Anschlüsse sollte man nur passive Geräte anstecken. Geräte, die zu viel Strom benötigen, funktionieren ohne eigene Stromversorgung nicht richtig (z. B. externe Festplatten). Der Raspberry hat auch einen 10/100-MBit-Ethernet-Netzwerkanschluss. Für die Ausgabe von Ton gibt es einen 3,5mm-Klinkenanschluss (normaler Kopfhörer-Anschluss). Für die Videoausgabe gibt es zwei Möglichkeiten, entweder über HDMI oder über einen FBAS (gelber Cinch-Anschluss). Für Bastler gibt es auch eine eigene Schnittstelle. Diese hat 16 Pins, die man selbst mit Programmen ansteuern kann. Zu guter Letzt sei noch der SD-Kartenslot erwähnt.
Die Stromversorgung läuft beim Raspberry über einen Micro-USB-Stecker. So kann man ihn mit heutigen Handyladekabeln an das Stromnetz anschließen. Der Raspberry benötigt 5V mit 700mA, das sind 3,5 Watt.
Techniker vermissen eventuell ein paar Dinge, die ein üblicher PC hat. Der Raspberry Pi hat keinen Zeitgeber, also keine interne Uhr. Die Uhrzeit holt er sich normalerweise über das Netzwerk, vergisst diese jedoch bei Stromverlust.
Außerdem gibt es kein Speichermedium. Dafür gibt es an der Unterseite einen SD-Kartenschacht. Dort kann man eine SD-Karte mit einem Speicher von 2 GB oder mehr einstecken. Von dort wird das Betriebssystem gebootet und dort kann man auch (so wie auf einer Festplatte) Daten speichern.
Als Betriebssystem verwendet man üblicherweise Linux. Raspbian basiert auf Debian und ist die Standarddistribution für den Raspberry Pi. Man kann jedoch auch jedes andere für ARM kompilierte Linux installieren. Tatsächlich erlaubt der Raspberry auch das Programmieren eines eigenen Betriebssystems. Das kann man durch einfachen Tausch der SD-Karte testen. Wer gerne sein eigenes Betriebssystem schreiben will, kann sich dazu einen Kurs der Cambridge Universität ansehen. Dort wird der Raspberry Pi im Unterricht verwendet.

System

Wer nun Lust bekommen hat und auch einen Raspberry Pi benötigt, findet auf der offiziellen Homepage auch Links zu Verkäufern. Diese Webseite ist auch der Anlaufpunkt Nummer 1 für den Pi. Dort wird auch Raspian als Image zum Download angeboten. Die aktuelle Version heißt „wheezy“ und basiert auf Debian. Nur wie installiert man diese?

Installation

Im Grunde ist die Installation einfach. Man muss lediglich das Image auf eine SD-Karte kopieren. Wichtig ist, dass dieses auch bootbar bleibt. Aus diesem Grund benötigt man hierfür das Programm dd. Der Transfer auf die SD-Karte kann wie folgt aussehen:

1
$ dd bs=1M if=raspbian_wheezy.img of=/dev/sdX

Wobei hier das X bei sdX mit der Nummer der SD-Karte ersetzt werden muss.
Der Rest der Installation ist trivial. Man muss lediglich die SD-Karte in den Raspberry Pi einsetzen und ihn mit Strom versorgen.

Programme

Nach dem ersten Bootvorgang startet das wichtigste Programm des Pis, sein Konfigurationsprogramm raspi_config. Dieses kann jederzeit von der Konsole aus gestartet werden.

raspi_config-Einstellungen.

raspi_config-Einstellungen.

Folgende Dinge kann man hier einstellen:

„expand_rootfs“:
Hat man eine SD-Karte mit mehr als 2 GB Speicher, so sollte man hier das Filesystem auf den vollen Speicher ausdehnen, denn egal wie groß der Speicher ist, das Image verwendet ohne Konfiguration nur 2 GB.

„configure_keyboard“:
Hier sollte man das Tastaturlayout auf Deutsch setzen, da nach der Installation Englisch eingestellt ist.

„change_pass“:
Voreingestellt ist ein Benutzer mit dem Benutzernamen „pi“ und dem Passwort „raspberry“. Hier sollte man unbedingt das Passwort ändern!

„change_locale“ und „change_timezone“:
Mit diesen beiden Einstellungen setzt man Ort und Zeitzone.

„overclock“:
Den Prozessor des Raspberry Pis kann man übertakten. Werte bis zu 1 GHz sind möglich. Man sollte dabei aber sehr vorsichtig sein!

„ssh“:
Hier kann man den SSH-Zugriff erlauben, um sich über das Netzwerk an der Konsole anzumelden. Der Raspberry Pi eignet sich sehr gut für Controller-Aufgaben und benötigt dafür weder Eingabegeräte noch eine Bildschirmausgabe.

„boot_behaviour“:
Zuletzt kann man noch festlegen, ob im Konsolenmodus oder direkt im grafischen Modus gestartet werden soll.

Alle anderen Programme von Raspbian sollten Debian-Benutzern bereits bekannt sein. Es ist hier nur wichtig zu erwähnen, dass aufgrund des kleinen Images nur wenige davon installiert sind. Man kann aber einfach Programme über den Paketmanager nachinstallieren.

Store

Seit einigen Monaten gibt es auch einen eigenen Raspberry Pi Store. Dort werden Programme angeboten, welche speziell für den Raspberry Pi entwickelt, kompiliert oder konfiguriert wurden. Viele davon sind gratis. Die grafische Oberfläche hat in den neueren Versionen des Images bereits ein Desktop-Icon für den Store.

Netzwerk/Internet

Die wohl wichtigste Komponente des Raspberry Pis ist meiner Meinung nach seine Netzwerkschnittstelle. Diese ist standardmäßig so konfiguriert, dass sie über DHCP vom Router eine IP-Adresse bezieht. Das passt perfekt, wenn man den Pi beispielsweise über ein LAN-Kabel direkt an den Router ansteckt. Mit aktiviertem SSH ist der Pi nun über seine IP-Adresse von allen anderen Rechnern über:

1
$ ssh pi@192.168.1.2

erreichbar. Diese Beispiel-IP-Adresse muss natürlich mit jener des Pis ausgetauscht werden.
Will man den Raspberry Pi etwas „mobiler“ verwenden, dann benötigt man einen WLAN-Stick. Es ist sehr wichtig, sich zuerst zu informieren, welche WLAN-Sticks vom Raspberry Pi unterstützt werden, denn sonst artet die Inbetriebnahme in endlose Treiberinstallationen aus. Ein guter WLAN-Stick ist der von der Firma EDIMAX. Die Konfiguration des Sticks selbst ist sehr einfach, da am Desktop des grafischen Modus bereits eine Verknüpfung zum WiFi-Tool liegt. Damit ist der Pi in zwei Minuten im Netz.
Zum Internetsurfen liefert der Pi den Browser Midori mit. Dieser ist nicht sehr performant, dafür aber leichtgewichtig, und wird von Webseiten üblicherweise als mobiler Browser erkannt. Allerdings versteht dieser weder HTML5 noch Flash, daher kann man u. a. keine Videos abspielen.

Mediencenter

Eine der genialsten Anwendungen für den Raspberry Pi ist die Verwendung als Mediencenter. Da der Pi in Echtzeit Full-HD-Signale verarbeiten und am HDMI-Ausgang ausgeben kann, ist er das ideale Werkzeug dafür. Im Gegensatz zu anderen Mediencentern im Handel ist der Pi geschenkt. Doch wie verwendet man den Pi als Mediencenter?
Dafür gibt es das XBMC-Mediencenter, welches schon sehr bald auf den Pi portiert wurde und vollständig konfiguriert als minimales Netzwerkimage zur Installation vorliegt. Diese Portirung ist unter dem Namen Raspbmc bekannt.

Raspbmc-Installation

Auf der Homepage gibt es diverse Images zum Download. Zu bevorzugen ist das minimale Netzwerkimage. Dieses kopiert man, wie schon beschrieben mit dd, auf die SD-Karte und steckt diese dann in den Raspberry Pi, welcher über das LAN-Kabel mit dem Internet verbunden ist. Danach startet man den Pi und das Mediencenter wird in ca. 15 bis 20 Minuten automatisch installiert und konfiguriert.
Ich habe mein Mediencenter so konfiguriert, dass der Raspberry Pi mit dem HDMI-Anschluss am Fernseher und über das LAN-Kabel mit dem lokalen Netzwerk verbunden ist. Über das Netzwerk kann man am Fernseher Videos und Bilder ansehen oder Musik hören.
Ein besonderes Feature des XBMC-Mediencenters ist, dass es auch mit einer Fernbedienung steuerbar ist. Hierzu kann man eine normale Infrarot-Fernbedienung verwenden, jedoch muss dazu der angeschlossene Fernseher den CEC-Standard erfüllen. Eine Möglichkeit, die unabhängig vom TV-Gerät funktioniert, ist die Verwendung eines Smartphones als Fernbedienung.
Die offizielle XBMC-Remote-App gibt es für das iPhone oder iPad oder für Android Geräte. Die offizielle App ist gratis. Es gibt aber auch einige ähnliche Apps zu kaufen. Wenn Smartphone oder Tablet im selben Netzwerk (WLAN) hängen, kann man damit das Mediencenter sogar über größere Entfernung steuern. Ein Webinterface ermöglicht auch die Steuerung über das Internet. Somit könnte man von jedem Punkt in der Welt die eigene Wiedergabeliste steuern.

Anwendungen

Der Raspberry Pi kann noch sehr viel mehr.

Webserver

Ein schöner Anwendungsfall für den Pi ist ein LAMP-Webserver. Dafür installiert man nachträglich MySQL als Datenbank, Apache als Webserver und PHP zum Ausführen von PHP-Skripten. Diese Installation und Konfiguration sollte eher trivial sein und wird hier nicht näher beschrieben.
Das größte Problem für die Nutzung als Webserver ist hier ganz klar der Arbeitsspeicher. Mit 512 MB ist man weit davon entfernt, was ein normaler Server haben sollte. Man kann ihn aber sehr gut für einfache Dinge benutzen. Man könnte zum Beispiel täglich Skripte über Cron aufrufen lassen, die bestimmte Werte auslesen (z. B. aus dem Internet, von angeschlossenen Messinstrumenten oder anderen Datenquellen). Diese Werte könnte man in einer Datenbank speichern und über eine Weboberfläche mit dem Apache grafisch ausgeben. Auf diese Art und Weise könnte man den Pi auch zur Steuerung und Regelung anhand verschiedener Werte im eigenen Haus benutzen. Man denke hier zum Beispiel an einen Temperatursensor, der Außen- und Innentemperaturen abfragt, auswertet und eventuell Klimaanlage oder Heizung steuert.

Retro

Das Spiel „Dig Dug“ im Atari2600-Emulator.

Das Spiel „Dig Dug“ im Atari2600-Emulator.

Manche ältere Leser wird der Raspberry Pi an Computer aus den 80er Jahren erinnern. Man denke hier nur an einen Apple II. Damals waren Computer noch Rechner mit maximal einer Tastatur, ohne Speichermedium und lediglich einem Diskettenlaufwerk. Außerdem steckte man diese am Bildschirm oder Fernseher an, welche nicht beim Kauf dabei waren. Damals erlaubten diese Computer noch das Basteln und kamen oft mit umfangreicher technischer Anleitung.
Dieser Retro-Flair wird vor allem dann deutlich, wenn man selbst am Raspberry Pi Emulatoren für alte Spiele installiert.

DOSBox gestartet unter Raspbian.

DOSBox gestartet unter Raspbian.

Ein anderer, den meisten vermutlich bekannter Emulator ist DOSBox. Damit lassen sich noch nicht ganz so alte Programme ausführen.

Visualisierungen

Nachdem der Raspberry Pi durch seine Hardware sowohl Full-HD-Signalbearbeitung als auch OpenGL ES 2.0 erlaubt, kann man ihn perfekt dafür benutzen, schnell und einfach eine grafische Ausgabe zu erzeugen. Man denke hier an Visualisierungen auf einer Messe oder einfach um irgendwo in einem Warteraum eine Ausgabe auf einen Fernseher zu bringen.

Quake 3 läuft am Raspberry Pi flüssig.

Quake 3 läuft am Raspberry Pi flüssig.

Als Referenz bei Grafikkarten-Benchmarks dient oft Quake III Arena. Also warum sollte man nicht auch hier Quake 3 probieren? Das ist vor allem deshalb möglich, da die Quake-3-Engine Open Source ist.
Quake 3 kann nicht einfach heruntergeladen und installiert werden. Es muss zuerst (für den ARM-Prozessor) kompiliert werden. Dies ist etwas komplizierter und dauert auch gut und gern eine Stunde.

Game-Server

Minecraft Pi Edition unter Raspbian ausgeführt.

Minecraft Pi Edition unter Raspbian ausgeführt.

Selbst als Game-Server kann man den Raspberry Pi verwenden. Beispiele dafür sind der Minecraft– oder auch der FreeCiv-Server. Hier sollte man jedoch nicht zu viel erwarten. Für ein kleines Spiel mit Freunden reicht es gerade noch, aber als Minecraft-Server mit tausenden Spielern reichen RAM und Rechenkapazität einfach nicht aus. Bei fünf bis zehn Spielern ist Schluss! Für rundenbasierte Spiele wie FreeCiv ist der Raspberry Pi aber ideal.

Python-Programmierumgebung

Man darf nicht vergessen, dass der Pi konzipiert wurde, um Programmieren zu lernen. Dafür hat der Pi standardmäßig eine Programmierumgebung für Python installiert. Im Internet sind dazu auch Tutorials zu finden, um einen einfachen Einstieg zu haben.
Mit Python kann man beispielsweise auch die 16 Pins ansprechen. Dort kann man eigene Hardware anstecken wie Temperatursensoren, LC-Displays, usw. Leser, die sich ein wenig mit Elektrotechnik auskennen, fühlen sich hier vermutlich wohler. Ein sehr guter Blog zu diesem Thema ist von adafruit industries.

Probleme/Kritik

Der Raspberry Pi ist an sich ein tolles Gerät. Man sollte sich aber vor dem Kauf überlegen, ob man sich wirklich einen zulegen möchte. Man muss selbst auch ein wenig Zeit investieren. Der Pi ist als PC nur schlecht zu gebrauchen. Man kann im Internet surfen, E-Mails abrufen, man kann sogar LibreOffice installieren und damit arbeiten. Aber: alles eher langsam und nur sehr begrenzt. Der Pi verwendet als Speichermedium eine SD-Karte und diese kann man von vornherein schon nicht endlos überschreiben.
Die Stromversorgung ist ein weiteres Problem. Der Pi verbraucht nur 3,5 Watt, also bei derzeitigen Stromkosten keine 10 € im Jahr (bei Dauerbetrieb). Die 3,5 Watt sind aber für Peripheriegeräte zuwenig. Eine Maus und eine Tastatur können gerade noch betrieben werden (mit Problemen), externe Festplatten ohne eigene Stromversorgung funktionieren nicht! Sollte man auf USB-Geräte angewiesen sein, sollte man sich unbedingt einen USB-Hub mit eigener Stromversorgung zulegen.
Wie man am Stromproblem sieht, benötigt man schnell mehr Geräte. So braucht man immer mehr Kabel und endet in einem kompletten Chaos.
Ich persönlich verwende meinen Pi entweder als XBMC-Mediencenter (angesteckt am Router über LAN-Kabel, HDMI am Fernseher und am Stromnetz) oder als Rechner im Netz (mit Strom und WLAN-Stick). Alles andere ist meiner Meinung nach nur zum Testen geeignet und nicht für den laufenden Betrieb.


Der Artikel Raspberry Pi von Werner Ziegelwanger, erschienen bei freiesMagazin unterliegt der CC-BY-SA-3.0 Unportted. Es wird die Erlaubnis gewährt, den Artikel unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren, zu verteilen und/oder zu modifizieren.