Raspberry Pi – der Einplatinencomputer im praktischen Einsatz
Kommentare

Beim Entwickeln von kommerziellen Serversystemen entsteht immer wieder der Wunsch nach einem kleinen billigen Testsystem, das aufgrund seiner kompakten Abmessungen und des minimalen Strombedarfs auch mal im Rudel über Nacht rackert.

Wichtig ist hierbei weniger die Performance und die Zuverlässigkeit als die schiere Masse. Beim Simulieren von Skalierungsproblemen ist es egal, wie viel Leistung der individuelle Server mitbringt – wichtig ist, dass möglichst viele Rechenknechte zur Verfügung stehen. Der Raspberry Pi erfüllt alle in der Einleitung genannten Kriterien zu hundert Prozent. Der Preis von maximal 35 Dollar ist human, die Stromversorgung durch MicroUSB dank Smartphones und den zu ihnen gehörenden Wall Warts ebenfalls kein Problem. Im Rahmen der Auslieferung des Kommunikationsprogramms „GottaTxt“ hat der Autor jede Menge Erfahrung mit der Hardware sammeln dürfen. Hier deshalb eine kleine Zusammenfassung aller für den praktischen Einsatz wichtigen Punkte.

Akademische Anfänge

Im Jahr 2009 gründete sich in England eine karitative Vereinigung namens Raspberry Pi Foundation. Die Aufgabe des von Managern beim Chiphersteller Broadcom unterstützten Vereins ist das Fördern der Informatikerausbildung an Schulen.
Als eines der Kernprobleme identifizierte der Gründer das Fehlen von „einfach programmierbarer Hardware“ – die in den 80ern und 90ern verbreiteten Minicomputer sind verschwunden, heutige Handcomputer wären vor zehn Jahren als Workstations durchgegangen. Das führt dazu, dass die Schulen zu wenig 18-Jährige produzieren, die „gut“ programmieren können – das Erstellen von Anwendungen in JavaScript ist kein Problem, solange für jede Routine 1 MB Speicher zur Verschwendung bereitsteht.
Diese JavaScript-Großmeister stellen die nachgeschalteten Universitäten – Prinzip Garbage In Garbage Out – vor beinahe unlösbare Aufgaben. Im Idealfall entsteht nach fünf Jahren ein Absolvent, der Speicher auch in 100-KB-Schritten verbraucht – für die technische und mikroelektronische Industrie ist das Fehlen von geeignetem Programmierernachwuchs schon jetzt ein massives Problem.

Scheckkartencomputer herbei

Zum hardwarenahen Programmieren ist es erforderlich, den Auszubildenden Zugang zu preiswerter und leicht verständlicher Hardware anzubieten. Dafür sind die aus dem Smartphone-Bereich bekannten ARM-Prozessoren geradezu ideal, weshalb die Foundation zur Entwicklung des in Abbildung 1 gezeigten Single-Board-Computers schritt.

 

Abb. 1: Der Raspberry Pi erinnert eher an ein Elektronikbastelprojekt als an einen Computer

Als Prozessor und Hauptplatine kommt der Broadcom BCM2835 zum Einsatz. Dabei handelt es sich um eine Einheit aus einem 700-MhZ-ARM11-Prozessor, einem Grafikchip und je nach Modell entweder 256 oder 512 MB Arbeitsspeicher.
Als Festwertspeicher dient eine SD-Karte, weiterer Massenspeicher lässt sich über den USB-Hostcontroller anschließen. Zur Ausgabe von Daten an den Bildschirm dient ein HDMI-Stecker. Die Tonausgabe erfolgt über einen handelsüblichen 3.5“-Klinkenstecker. Zusätzlich gibt es einige GPIO-Ports, die zum Anschließen von eigener Hardware vorgesehen sind. Die Stromversorgung erfolgt über das von Smartphones bekannte MicroUSB-Kabel; je nach Revision sind entweder 300 oder 700 mA Strom erforderlich.
Mittlerweile gibt es drei verschiedene Revisionen der Hardware. Das im Handel noch nicht in Stückzahlen erhältliche Modell A kostet 25 US-Dollar plus Steuern und hat 256 MB Arbeitsspeicher im SOC. Ansonsten ist es absolut „barebones“ und hat nur einen USB-Anschluss zur Kommunikation mit der Außenwelt.
Das Modell B ist optisch leicht von der A-Version zu unterscheiden. Anders als die Basisversion bringt die B-Edition nämlich zwei USB-Ports und eine Ethernet-Buchse für das von PC und Notebook her bekannte 10/100 MBit-LAN mit. Auch ist das SOC hier mit 512 MB RAM ausgestattet, was bei der Ausführung von komplexeren Anwendungen hilfreich ist.
Zu guter Letzt gibt es im Handel noch eine ältere Version des Modells B. Sie hat statt der aktuell verbauten 512 MB nur 256 MB RAM, entspricht sonst aber 1:1 den soeben besprochenen Spezifikationen.
Ein amüsantes Detail am Rande: In Vorträgen von Mitarbeitern der Raspberry Pi Foundation hört man immer wieder, dass die diesem Gerät zugrundeliegende Hardwareplattform für die Meltemi-Klasse von Nokia vorgesehen war – das erklärt das ehemals große Interesse der Finnen an der Verteilung der Planare.

Erste Schritte

Der Raspberry Pi ist mittlerweile bei einer Vielzahl von Distributoren frei erhältlich. In der Vergangenheit hat sich der auf elektronische Komponenten spezialisierte Shop RS Components als außergewöhnlich zuverlässige Quelle erwiesen – der hier verwendete Pi stammt ebenfalls von RS und ist ein Modell B mit 256 MB RAM.
Als Hardware ist neben einem HDMI-fähigen Monitor samt dazu passendem Kabel eine Stromversorgung, eine USB-Tastatur, eine USB-Maus und eine SD-Karte mit einem Betriebssystem notwendig. Da selbst die von Raspberry „gebrandeten“ Karten ohne Betriebssystem ausgeliefert werden, führt der nächste Schritt auf [1].
Der Pi verarbeitet eine Vielzahl von Linux-Distributionen. Die Foundation selbst empfiehlt das Verwenden von Debian und bietet zwei verschiedene Images namens RaspBian und Soft-float Debian an.
Im Normalfall ist das Verwenden von RaspBian die beste Vorgehensweise – dabei handelt es sich um eine spezielle Version von Debian, die auf das Verwenden der abgespeckten Gleitkommaeinheit des Broadcom-Prozessors optimiert ist. Leider ist sie mit einigen wichtigen Programmen nicht kompatibel, weshalb der Autor für die folgenden Schritte auf die normale Version setzt.
Zum Einrichten der SD-Karte unter Windows empfiehlt sich der Image Writer for Windows. Er steht als .zip-Archiv zum Download bereit und ist sofort nach der Extraktion startklar. Nutzen Sie ihn, um die .img-Datei auf die SD-Karte zu schreiben.
Die dafür erforderlichen Einstellungen sind in Abbildung 2 gezeigt. Wichtig ist, dass Sie nicht aus Versehen das falsche Laufwerk als Ziel definieren – die Wiederherstellung von Daten ist danach nämlich selbst für Datenrettungslabore nicht ohne Weiteres machbar.

Abb. 2: So wandert das Betriebssystem auf die Speicherkarte

Danach ist die Hardware einsatzbereit zu machen. Stecken Sie die SD-Karte in den Slot auf der Unterseite des Minicomputers, bis sie plan an der Rückseite des Slots anliegt. Da der Steckplatz keine Federmechanik hat, ist unter Umständen etwas Kraftanwendung erforderlich – achten Sie aber darauf, die empfindliche Platine nicht durch Verbiegen zu beschädigen und keine Komponenten abzubrechen.
Im nächsten Schritt folgt das Anschließen des HDMI-Kabels, der USB-Tastatur und der USB-Maus. Wenn alle Hardware am Raspberry Pi steckt, müssen Sie sicherstellen, dass die Planare auf einem elektrisch nicht leitenden Untergrund liegt. Das ist von eminentester Bedeutung – wenn die Planare auf einer Metallplatte liegt, treten zwischen den auf der Unterseite befindlichen Lötstellen Kurzschlüsse auf, die das Gerät mit relativer Sicherheit zerstören.
Nachdem all diese Kriterien überprüft wurden, ist das Gerät startbereit. Stecken Sie die MicroUSB-Wall-wart in den MicroUSB-Steckplatz des Raspberry Pi, um den Boot-Prozess zu starten – da es auf der Platine keinen Einschaltknopf gibt, startet der Minicomputer sofort nach dem Anschließen der Stromversorgung.
Beim ersten Start von einer nicht provisionierten SD-Karte wird der Konfigurator des Geräts aufgerufen. Er erlaubt das Festlegen einiger Einstellungen – es ist in jedem Fall sinnvoll, das direkte Booten des Desktops zu aktivieren. Wer eine SD-Karte mit mehr als 4 GB Speicherkapazität einsetzt, sollte die Partitionen automatisch vergrößern lassen, um den Speicher voll auszunutzen. Auch ist es sinnvoll, das direkte Starten des Desktops zu aktivieren. Zu guter Letzt ist es an dieser Stelle möglich, die Speicherverteilung zwischen GPU und CPU anzupassen – 64 MB Grafikspeicher sind für die meisten Anwendungsszenarien ausreichend.
Nach dem Speichern der Einstellungen fordert das Konfigurationsprogramm zum Genehmigen eines Reboots auf. Danach ist der Desktop einsatzbereit – neben IDEs für einige exotische Programmiersprachen gibt es von Haus aus auch einen grundlegenden Webbrowser ohne Flash-Fähigkeit.
Zum Ausschalten empfiehlt es sich, durch Druck auf Strg + Alt + F2 in eine Textkonsole zu wechseln. Dort loggen Sie sich mit dem Benutzernamen „pi“ und dem Passwort „raspberry“ ein, und schalten die Maschine durch Eingabe von „shutdown –h now“ aus – beachten Sie, dass das Betriebssystem von Haus aus mit amerikanischer Tastaturbelegung arbeitet. Nachdem der Shutdown-Prozess abgeschlossen ist, stecken Sie die Stromversorgung ab.

SSH herbei

Im praktischen Einsatz ist es sehr unangenehm, jede Planare mit einem Monitor und einer Tastatur ausstatten zu müssen. Es empfiehlt sich deshalb insbesondere bei nicht-grafischen Anwendungen, so bald als irgendwie möglich auf die Kommunikation per SSH umzusteigen.
Je nach Version des installierten RaspBian-Betriebssystems ist die genaue Kommandofolge etwas anders. Weitere Informationen hierzu finden sich auf der Webseite des Raspberry-Pi-Projekts [2].

Java am Raspberry Pi

Im Serverbereich trifft man immer wieder auf die Programmiersprache Java. Von Haus aus fehlt dem Raspberry Pi eine virtuelle Maschine, die aber nachinstallierbar ist. Der erste Schritt dazu ist das Verbinden der Platine mit dem Internet – dazu genügt ein normales Netzwerkkabel, das an die Netzwerkbuchse und an einen Router angeschlossen wird.
Im nächsten Schritt folgt die Auswahl der zur verwendenden Runtime. Die maximale Kompatibilität erreichen Sie durch das Verwenden des OpenJDK.
Zur Installation dieser Laufzeitumgebung müssen Sie einige Schritte befolgen, die unter [3] im Detail beschrieben sind – danach ist Ihr Raspberry Pi für den Einsatz als „Java-Applikationsserver“ vorbereitet und wartet auf zu bearbeitende JAR-Files.
Leider ist die Performance des OpenJDK unter ARM alles andere als zufriedenstellend. Das komplette Fehlen eines JIT-fähigen Compilers sorgt für extrem geringe Rechenleistung. Wer eine unter Java SE Embedded lauffähige Applikation hat, kann stattdessen auf die schnellere Embedded-Runtime umsteigen. Auch hierzu findet sich weiteres im Internet – das Thema Java am Raspberry Pi würde den Rahmen dieses Artikels sprengen [4].

QtOnPi

Aufgrund der Nähe zwischen der Meltemi-Hardware und der Planare des Raspberry Pi betrieb Nokia vor dem Beginn der Kooperation im Bereich Windows Phone ein durchaus aktives Promotionsprogramm für den Einplatinencomputer – ausgewählte Entwickler erhielten seinerzeit sogar je ein Platinchen als Geschenk.
Ein QtOnPi genanntes Image erlaubte die Verwendung des Pi als „Emulator“ für die damals noch nicht offen angekündigte Plattform. Mittlerweile ist auch diese Initiative eingeschlafen, stattdessen gibt es für die RaspBian-Distribution spezielle Pakete, die die Qt-Runtime nachrüsten.

Erweitere mich …

Zu allererst sei explizit davon abgeraten, den Raspberry Pi als Arbeitsstation für Leitstellenmitarbeiter oder sonstige Non-Technicals einzusetzen. Die geringe Rechenleistung des ARM-Prozessors entspricht der eines Pentium II mit 300 MhZ – an produktives Arbeiten mit aktueller Software wie z. B. OpenOffice ist nicht zu denken. Auch als Webclient macht das Gerät eine denkbar schlechte Figur. Dass die von Haus aus beigelegte Distribution statt Firefox einen schlankeren Browser enthält, ist keine Schikane – weder die Rechenleistung noch der Arbeitsspeicher erlauben größere Sprünge.
Als Mediaplayer macht der Pi je nach vorliegendem Quellmaterial unter Umständen eine bessere Figur. Die integrierte Grafik-Engine ist nämlich durchaus leistungsfähig und kommt auch mit „dickeren“ Videos ohne allzu große Probleme zurecht … zumindest dann, wenn die Playersoftware Arbeit an die GPU auslagert.
Wer dem Raspberry Pi als Home Server einsetzt, braucht über kurz oder lang mehr Speicherplatz. Dazu gibt es zwei verschiedene Möglichkeiten: Erstens kann eine größere SD-Karte verwendet werden. Alternativ ist es auch legitim, eine externe Festplatte per USB anzuschließen – das ist bei hoher I/O-Belastung sogar sinnvoller, da SD-Karten an sich nicht als Betriebsmassenspeicher vorgesehen wird.

… auf mikroelektronischer Basis

Auf der Oberseite des Raspberry Pi findet sich ein an IDE erinnernder Steckverbinder. Je nach Revision der Planare finden sich dort mehr oder weniger GPIO-Pins sowie einige Busse (I2C und SPI) zur direkten Kommunikation mit mikroelektronischer Peripherie aus eigenem Hause. Dabei ist zu beachten, dass der Raspberry Pi ein reines 3.3V-Gerät ist. Klassische und mit 5V arbeitende Logik führt zur Zerstörung des Mikrocomputers, da die Anschlüsse nicht gegen Überspannung geschützt sind.
Die mit Abstand einfachste Methode zum Anschließen von eigener Peripherie ist das Verwenden von fertigen Breakout Kits. Ein Beispiel dafür ist das von Adafruit angebotene Prototyping Kit [5] oder sein Schwestermodell für Steckplatinen [6]. Alternativ ist es natürlich auch möglich, ein altes IDE-Kabel zweckzuentfremden.
Alternativ ist es natürlich auch möglich, einen der USB-Anschlüsse des Pi zur Kommunikation mit der externen Hardware einzusetzen. Die meisten Mikrocontroller haben heute sowieso ein integriertes USB-Modul – da das Erstellen von Echtzeitanwendungen für Linux in Arbeit ausartet, ist das unter Umständen die weniger aufwändige Lösung.

Fazit

Der Raspberry Pi ersetzt mit Sicherheit nicht den Vier-Wege-Server im Rechenzentrum. Das ist aber auch nicht die Intention hinter dem Gerät – er brilliert immer dann, wenn Sie mehrere kleine und relative zuverlässige Systeme zum Testen einer Implementierung benötigen. Auch ist der Pi als Behelfsserver zum „Hochbringen“ eines Systems hervorragend geeignet.
Im Bereich der Embedded-Systeme läuft die Hardware zu Höchstform auf. Beim Entwerfen von Flugsystemen ist die Verfügbarkeit von hoher Rechenleistung z. B. zur Zielaquisition Gold wert – der USB-Controller erleichtert das Anschließen von handelsüblicher Peripherie.
Zu guter Letzt ist es natürlich auch möglich, den Pi als preiswerten Mini-Home-Server einzusetzen. Was immer Sie auch tun, haben Sie Spaß – und teilen Sie uns Ihre Resultate per Leserbrief mit!

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -