In den vergangenen Monaten hat eine Klasse preisgünstiger Minicomputer auf einer Platine eine Nische für sich erobert: Deren bekanntester Vertreter ist der Raspberry Pi („Himbeerkuchen“), eine Entwicklung aus Großbritannien. Das Board des Einplatinen- Computers mit ARM-CPU ist gerade mal etwas größer als eine EC- oder Kreditkarte. Vom Prozessor über den Speicher, den SD-Kartenslot, die Audiobuchse bis zu den Anschlüssen für USB, Composite Video, HDMI und bei Modell B 100-MBit-Ethernet ist alles auf der Platine untergebracht. Dazu kommt eine Stiftleiste mit Pins, um den Raspberry Pi nicht nur als eigenständigen Mini-PC einzusetzen, sondern auch als Mikro-Controller, auf dem ein ausgewachsenes Linux-Betriebssystem läuft. Das alles gibt es für gerade mal etwas mehr als 30 Euro. Seit der Veröffentlichung im Februar 2012 wurde der Raspberry Pi in seinen beiden Varianten bereits über zwei Millionen Mal verkauft.

Überraschungserfolg: Python und ARM-Plattform
Für die kleine Entwicklerfirma, die britische Raspberry Pi Foundation, die unter anderem vom legendären Spieleentwickler David Braben („Elite“, „Frontier“) und dem Broadcom-Technikchef Eben Upton erst 2009 gegründet wurde, kam der Erfolg ganz unerwartet: Der Raspberry Pi war ursprünglich für den Unterricht an Schulen und Universitäten zugeschnitten, um Studenten eine einfache, günstige und ausgiebig dokumentierte Computerplattform für didaktische Projekte und eigene Basteleien zur Verfügung zu stellen. Den Dozenten fiel auf, dass Studenten in ihren Kursen zwar die theoretischen Grundlagen der Informatik und Kommunikationstechnik lernen, aber von Praxis, Hardware und erfinderischer Problemlösung immer weniger Ahnung haben. Anders als die Homecomputer der 80er-Jahre laden Windows-PCs nicht gerade zum Experimentieren ein, und mit Linux beschäftigten sich auf dem Desktop-PC freiwillig auch nicht alle. Der Raspberry Pi war keinesfalls die erste Platine ihrer Klasse: Es gab bereits zuvor, seit 2005, den Mikro-Controller Arduino. Der aber wird über C/C++ und eine ähnliche Sprache mittels Java-Entwicklerumgebung programmiert und hat eine andere Zielgruppe. Der Raspberry Pi will Lernkurve und Einstiegshürden möglichst flach halten und präsentiert sich als eigenständiges Mini-System, auf dem ansehnliche Linux-Betriebssysteme laufen und das sich für ein breiteres Einsatzfeld eignet. Von Mediaplayer, Mini-Server, spielerischer Linux-Plattform bis hin zu Mikro-Controller-Eigenschaften hat der Raspberry Pi alle nötigen Voraussetzungen auf dem Board.

Das „Pi“ im Namen steht dabei für die gut zu erlernende, aber äußerst mächtige und formal sehr strikte Script-Sprache Python, die auch die Merkmale einer höheren Programmiersprache mit dynamischer Typisierung besitzt. Für die Entwicklung von Bibliotheken wird Python von den Raspberry-Pi-Entwicklern und Zulieferern von Extra-Hardware für den Minicomputer bevorzugt. Natürlich bietet ein Raspberry Pi mit einem ausgewachsenen Linux- System aber auch den C-Compiler GCC und die Interpreter von vielen handlichen Script-Sprachen wie Bash. Dies ist auch einer der großen Unterschiede zu Mikro-Controllern wie dem Arduino: Anstatt einer speziellen Entwicklungsumgebung (IDE) gibt es alles an Script- und Programmiersprachen, die Linux hergibt.
Raspberry Pi: Die ersten Schritte im Video erklärt

Die ARM-CPU: Risc statt Cisc
Mit der Entwicklung des Raspberry Pi begann Eben Upton mit einem Team von Akademikern bereits 2006 und ließ sich vom BBC Micro von 1981 inspirieren. Zunächst sollte wie auf dem Arduino ein Atmel-Mikro-Controller zum Einsatz kommen. Die ersten Prototypen mit ARM-Prozessor hatten dann die Größe eines USB-Sticks, bis im August 2011 der Raspberry Pi in der Form vorgestellt wurde, die später als Modell B bekannt wurde und eine ausgewachsene Desktop-Umgebung stemmen kann. Auf der Platine arbeitet ein ARM-Chip der elften Generation (ARM11) mit 700 MHz in einem System-on-Chip (SoC) von Broadcom, das CPU, GPU und Speicher vereint. Das „R“ in ARM steht für Risc, was wiederum die Abkürzung für „Reduced Instruction Set Computing“ ist. Dies bezieht sich auf den Befehlssatz, den ein Chip unterstützt. Bei ARM ist der Satz auf Befehle zum Speicherzugriff (Load/Store), Arithmetik, boolesche Operatoren und Programmsprünge (Jumps und Subroutinen) begrenzt. Im Vergleich zu Cisc-Prozessoren (Complex Instruction Set Computing), um die es sich bei der x86-Plattform handelt, ist das ein überschaubares Arsenal. Alle Befehle benötigen jeweils einen Takt zur Ausführung, und dies hilft, die Prozessorstruktur von ARM einfach und dank weniger Transistoren klein zu halten. Weniger Transistoren bedeuten weniger Leistungsaufnahme. Zudem enthält der ARM-Befehlssatz eine interne Auszeichnung von If-else-Schleifen, um Sprünge in Programmen zu vermeiden und damit deren Ablauf zu beschleunigen. Da es sich um eine eine eigene Architektur handelt, müssen Programme und Betriebssysteme speziell für ARM kompiliert sein, und Optimierungen im Programmcode zahlen sich ebenfalls aus, um das letzte Quäntchen Leistung aus dem Chipdesign herauszuholen. Der Preis von Risc ist, dass Operationen wie Fließkommaberechnungen und Divisionen mit den vorhandenen Befehlen nicht in einem Taktzyklus erledigt sind, sondern mehrere Zyklen benötigen. Cisc geht einen ganz anderen Weg: Der Befehlssatz bietet Aktionen, die Speicherzugriffe und logische Operationen zusammenfassen, und Abkürzungen für häufig benötigte Muster. Wofür ein Risc-Prozessor beispielsweise drei Taktzyklen benötigt, kann Cisc in einen einzigen Taktzyklus abarbeiten.
Die Grafikeinheit: GPU mit Decoder-Fähigkeiten
Eine Besonderheit des System-on-Chip des Raspberry Pi ist der integrierte Grafikchip, bei dem es sich um einen Videocore IV von Broadcom handelt, der auf Full-HD-Output (1080p) und Multimedia-Codecs spezialisiert ist. Die Shader-Leistung liegt über jener des Nvidia Tegra 2 und laut Eben Upton in vielen Bereichen um den Faktor zwei über jener eines iPhone 4S. Ihren Speicher zwackt die GPU vom verfügbaren Hauptspeicher des SoC ab. Der GPU ist es zu verdanken, dass sich der Raspberry Pi so gut als Mediaplayer eignet und auch Linux-Desktops mit Leichtigkeit in hoher Auflösung darstellen kann. Die Leistung hat aber ihren Preis: Die Treiberbibliotheken für Open Max, Open GL ES und Open VG und natürlich die Codecs sind Closed-Source, und die GPU-Firmware wird als „Binary Blob“ geladen. Es ist also nicht alles Open Source, was im Raspberry Pi steckt, und es lassen sich nicht alle Fähigkeiten der GPU nutzen. Für den Anschluss von TV-Geräten und Bildschirmen verfügt die Platine über einen HDMI-Ausgang, der auch das Audiosignal digital überträgt. Für die Kompatibilität mit älteren Fernsehern gibt es zudem noch Composite- Video in Form einer Cinch-Buchse (RCA), die NTSC und PAL unterstützt. Über die Stiftleiste gibt es die Möglichkeit, per Serial Peripheral Interface (SPI) Touchscreens und LCD-Panels anzusteuern. Auf dem Board selbst gibt es in Form eines Flachbandkabel- Anschlusses ein Display Serial Interface (DSI), das aber wegen der geschlossenen GPU-Firmware nicht einfach zur Verfügung steht. Entsprechende Treiber müssten erst von Broadcom lizenziert werden.
Die besten Verwendungsmöglichkeiten für den Raspberry Pi

Unterschiede Modell A und Modell B
Anders als die Typenbezeichnung nahelegt, gab es das Modell B des Raspberry Pi schon vor dem Modell A. Letzteres gibt es erst seit Februar 2013 zu kaufen, rund ein Jahr nach dem Modell B. Die Unterschied ist der Ethernet-Port mit Ethernet-Controller auf dem Board des Modell B, welcher bei Modell A fehlt. Zudem ist Modell A nur mit 256 MB RAM ausgestattet und hat nur einen USB-Anschluss, womit insgesamt die Leistungsaufnahme von 3,5 Watt auf 1,5 Watt sinkt. Modell A eignet sich damit weniger als Mini-PC oder Server, sondern wird eher einer Rolle als sparsamer Mikro-Controller gerecht.

©Raspberry Pi Foundation
Modell B – Board und Anschlüsse im Überblick
Die Einteilung in Modell A und B ist eine Hommage an den Homecomputer BBC Micro der 80er-Jahre. Aufgrund seiner früheren Marktreife und üppigen Ausstattung hat das Modell B des Raspberry Pi bis dato höhere Stückzahlen erreicht. Zwischenzeitlich kam die Fertigung in China nicht nach, und die Raspberry Foundation öffnete im September 2012 eine zweite Fertigung in Sonys Halbleiterwerk in Wales. Es liegen inzwischen zwei Revisionen des Modell B vor: die aktuelle Revision 2.0 erhöht die Menge des RAMs von 256 auf 512 MB, entfernt die Spannungsbegrenzung für USB-Ports und hat Montagelöcher auf der Platine.

Linux-Systeme: Speziell für den Raspberry Pi
Bereits in der frühen Entwicklungsphase der Platine war klar, dass als kostenloses Betriebssystem nur Linux in Frage kommen würde, da Linux in Sachen Lizenzen und hinsichtlich Anpassung und Distribution äußerst freizügig ist – die meisten Teile des Systems stehen unter der GNU Public License 2.0 und kompatiblen Lizenzen. Zudem gibt es den Linux-Kernel schon eine ganze Weile für die ARM-Plattform, das Rad muss also nicht neu erfunden werden. Allerdings gibt es seitens der Hardware eine Einschränkung: Der Prozessor des Raspberry Pi nutzt noch den Befehlssatz des ARMv6, eine in die Jahre gekommene CPU-Generation von 2002. Auf der Platine laufen also nur Linux-Kernel, die noch für diese alte ARM-Version kompiliert wurden. Es gibt deshalb nicht alle Linux-Distributionen für den Raspberry Pi. Viele Distributionen, etwa Ubuntu, haben keine Unterstützung mehr für ARM-Architekturen unter dem ARMv7.

Das ist aber kein großes Hindernis, denn es bleibt Anwendern immer noch die Qual der Wahl, mit welcher Geschmacksrichtung von Linux der eigene Raspberry Pi laufen soll. Die Raspberry Pi Foundation hat mit verschiedenen Linux-Distributionen geliebäugelt und sich dann zu einer Empfehlung für Raspbian durchgerungen, eine Entwicklung, die auf Debian 7 („Wheezy“) basiert und für den Raspberry Pi optimiert ist. Die meisten Debian-Programmpakete stehen auch für Raspbian zur Verfügung. Es gibt darüber hinaus aber unzählige Systeme, die sich auf nahezu jedes Einsatzgebiet der Platine spezialisiert haben. Eine aktuelle Liste an Linux-Distributionen für den Raspberry Pi finden Sie unter http://elinux.org/ RPi_Distributions . Folgende Distributionen haben zudem von der Raspberry Pi Foundation besondere Aufmerksamkeit bekommen und stehen über das komfortable Installationsscript Noobs zur Verfügung. Arch Linux: Eine anspruchsvolle Linux-Distribution für erfahrene Anwender, die möglichst jeden Aspekt und die Konfiguration aller Details selbst unter Kontrolle haben möchten. Der Charme dieses Systems ist, mit dem Paketmanager und der großen Zahl von installierbaren Software-Paketen ein maßgeschneidertes oder auch extrem schlankes Linux-System zusammenzustellen. Aufwand und Lernkurve sind hier aber eher hoch. Open Elec: Diese Distribution dient als Multimedia- Zentrum, wofür sie auf dem bewährten, fernsehtauglichen Mediaplayer XBMC basiert. Es handelt sich um ein reduziertes System für den vornehmlichen Einsatz als Player, und die Software-Auswahl von 140 Paketen über diesen Zweck hinaus ist schmal. Die Open-Elec-Entwickler haben ein zusätzliches Menü in XBMC eingepflegt, das die Konfiguration des Systems erleichtert. Pidora: Diese inoffizielle Version von Fedora bringt die von Red Hat gesponsorte Linux-Distribution auf den Raspberry Pi. Pidora entspricht der Version 18 von Fedora und enthält Kernel und Software, die speziell für den Raspberry Pi kompiliert wurden. Laut der Entwickler gibt es hier fast alle Pakete, die auch das normale Fedora 18 kennt.

Raspbian: Dies ist die offiziell von der Raspberry Pi Foundation entwickelte Distribution für den Minirechner. Das Betriebssystem basiert auf Debian GNU/Linux. Die aktuelle Version auf Debian Testing heißt „Wheezy“. Als Desktop-Umgebung bringt Raspbian LXDE mit sich und ist speziell auf den Einsatz des Raspberry Pi optimiert. Per Standard finden Sie auch Programme vorinstalliert, die den Einstieg in die Linux- und Programmierwelt erleichtern. Wenn Sie kein Linux-Experte sind, ist Raspbian wohl die beste Wahl, um die Mini-Hardware zu nutzen. Rasp BMC: Diese Distribution basiert auf Raspbian und dient ebenfalls als Multimedia-Zentrum, wofür sie das bewährte XBMC als Player und Oberfläche nutzt. Anders als Open Elec handelt es sich aber um eine ausgewachsenes Debian-System mit über 20.000 installierbaren Software-Paketen. Dies ist das richtige System, wenn der Raspberry Pi auch, aber nicht nur als Player dienen soll. Risc OS: Ausnahmsweise kein Linux-System. Risc OS ist eine Version des originalen Betriebssystems für den Acorn Archimedes, ein Homecomputer, der Ende der 80er-Jahre bereits die ARM-Plattform nutzte. Es gibt hier zwar keine gewohnten Anwendungen, aber immerhin auch einen Webbrowser und Dateimanager. Risc OS zeichnet sich durch seine Geschwindigkeit und extrem kleinen Fußabdruck aus.
Raspberry Pi als NAS einsetzen
Einstieg: Mit Noobs ein System installieren
Zum Start eines Linux-Systems auf dem Raspberry Pi müssen Sie dessen Image unter Linux oder unter Windows auf eine SD-Karte übertragen. Unter Linux dient dazu das Kommandozeilen-Tool dd . Diese Möglichkeit gibt es unter Windows nicht, und für die Microsoft-Betriebssysteme brauchen Sie eine Hilfsanwendung wie den Win32 Disk Imager (Open Source, englischsprachig, 5,4 MB). Von einigen Distributionen wie Pidora gibt es für die Erstellung der SD-Karte auch eigene Tools. Daneben hat die Raspberry Foundation für den möglichst bequemen Start auch ein eigenes Installations-Script erstellt: Das erwähnte Tool Noobs (1,3 GB) muss nur aus seinem ZIP-Archiv heraus auf eine FAT-formatierte SD-Karte mit mindestens 4 GB entpackt werden. Verwenden Sie zum Formatieren der Karte unter Windows am besten das Tool SD Formatter . Stellen Sie über „Option“ den Parameter „Format Size Adjustment“ auf „On“. Wird der Raspberry Pi dann von der SD-Karte gestartet, können von einem Menü aus die Distributionen Arch Linux, Open Elec, Pidora, Raspbian oder Rasp BMC auf dem unbelegten Platz der SD-Karte eingerichtet werden. Außerdem bietet Noobs einen Recovery-Modus, der sich während des Boots mit gedrückter Umschalt- Taste aufrufen lässt und unter anderem einen Editor für die „config.txt“ sowie einen minimalen Webbrowser bietet. Das Installationsmenü kann zudem jederzeit ein frisches Linux-System neu installieren.