Eindrücke vom Kleinst-Computer
von Maik Schmidt – 07.06.2012
Der Raspberry Pi ist mit dem Ziel an den Start gegangen, Desktop-PCs Konkurrenz zu machen und Kinder an die Programmierung heranzuführen. Wir haben geprüft, ob der Winzling den Ansprüchen genügt.Der Raspberry Pi – kurz: Pi oder Raspi – kommt als nackte Platine ohne Gehäuse daher. Wie den BBC Micro, der just seinen 30-Jährigen Geburtstag feiert, gibt es auch den Pi in zwei Varianten mit den Namen Model A und Model B. Im Gegensatz zu Model A verfügt Model B über eine Ethernet-Schnittstelle und über zwei statt nur einem USB-Port. Vermutlich wird dem bislang noch nicht verfügbaren Model A der CSI-Port fehlen, an dem sich Zusätzgeräte wie Kameras anschließen lassen. Ansonsten sind sie technisch äquivalent; das Model A schlägt mit 25$, Model B mit 35$ zu Buche.
Der offizielle Verkauf begann am 29. Februar um Punkt 7 Uhr deutscher Zeit und endete mehr oder weniger in einem Desaster. Die Server der beiden Elektronik-Händler, die mit der Produktion und dem Vertrieb beauftragt wurden, waren mit dem Ansturm heillos überfordert. Selbst Tage später waren sie immer noch nur schwer zu erreichen. Darüber hinaus mussten die 10000 Kunden, die Glück mit ihrer Bestellung hatten, unerwartet lange auf ihre Lieferung warten, denn bei der ersten Charge wurden falsche Ethernet-Schnittstellen verbaut.
Erste Schritte
Nach den ersten Anlaufschwierigkeiten trudeln weltweit nach und nach Geräte bei der geduldigen Kundschaft ein und auch in Deutschland sind die ersten bereits angekommen. Ein glamouröses Auspackerlebnis erwartet bei diesem Preis sicherlich niemand und so kommt der Pi in einer schlichten Pappschachtel daher, in der sich neben dem Board nur zwei Zettel mit den notwendigsten und vorgeschriebenen Informationen finden.
Das Board selbst wirkt ebenfalls aufgeräumt schlicht und hat ziemlich genau die Fläche einer Kreditkarte. Allerdings ragen ein paar der erstaunlich vielen Anschlüsse zum Teil deutlich über den Rand hinaus. Die Video-Ausgabe erfolgt wahlweise per HDMI oder per Composite-Ausgang. Eine VGA-Schnittstelle gibt es nicht, weil das Projekt-Team diesen Standard für überholt hält.Sound wird sowohl über den HDMI-Port als auch über eine 3,5mm-Klinkenbuchse ausgegeben. Zur Verbindung mit Maus und Tastatur dient ein Doppel-USB-Port, an den bei Bedarf auch ein USB-Hub angeschlossen werden kann. Auf der Unterseite findet sich ein Slot für eine SD-Karte und Besitzer des Model B dürfen sich über einen Ethernet-Port freuen. Zusätzlich zu den vielen Standardbuchsen gibt es einen ganzen Satz von GPIO-Pins (General Purpose IO); diese sind für Erweiterungen und Hardware-Basteleien gedacht.
Strom bezieht der Pi über einen Micro-USB-Port und verlangt mindestens 5V und 700mA, was deutlich über der USB-Spezifikation liegt. Je nach angeschlossener Peripherie sollte es ruhig ein etwas mehr sein, und im Test traten die meisten Probleme wegen akuter Unterversorgung auf. Beispielsweise erkannte die Tastatur Tastendrücke plötzlich nur noch sporadisch oder wiederholte sie endlos.
Zu wenig Strom führte auch zum Versagen der Netzwerk-Verbindung. Sollten solche Phänomene auftreten, ist der Einsatz eines stärkeren Netzteils angeraten. Typische Handy-Netzteile sind in der Regel zu schwach. Einen Überblick über leistungsfähige USB-Netzteile bietet der c't-Artikel "Stromstöpsel".
Die Wärmeentwicklung auf dem Pi ist erfreulich gering. Nach zwölfstündigem Betrieb, in dem die CPU über lange Strecken unter Volllast lief, blieb das ganze System handwarm. Es spricht also nichts gegen ein schickes Gehäuse. Bei Adafruit gibt es eine passende Box aus Acrylglas, mit Öffnungen für alle Anschlüsse.
Herz und Hirn der Platine bildet ein "SoC" (System on a Chip) bestehend aus einem ARM1176JZF-S (700 MHz) und einer Broadcom VideoCore IV GPU. Während der Prozessor Standardkost ist, ist die GPU vielen Kritikern ein Dorn im Auge, weil sowohl die Hardware als auch die dazugehörigen Treiber proprietär sind. Puristen können das nur schwer mit dem Geist von Linux vereinbaren.
Aus Kostengründen gibt es auf dem Board keine Echtzeituhr, sie lässt sich aber prinzipiell über die GPIO-Pins nachrüsten. Auch gibt es noch keinen flexiblen Bootloader, und so kann der Pi nur von einer SD-Karte booten. Darauf darf sich jedoch nur die Boot-Partition selbst befinden. Das Root-Filesystem kann dann auf einem USB-Gerät liegen.
Installation
Bald sollen SD-Karten im Handel erhältlich sein, auf denen sich Fedora Linux, die bevorzugte Distribution des Raspberry-Teams, befindet. Noch ist es aber nicht soweit, und auch wer eine andere Distribution oder ein anderes Betriebssystem vorzieht, muss selbst ein Image erzeugen und auf eine Karte bringen.
Im Prinzip sollte jede Linux-Version für die ARM-Architektur funktionieren, auf der offiziellen Download-Seite stehen fertige SD-Karten-Images für Debian "squeeze", Arch Linux ARM und QtonPi zur Verfügung. Selbstverständlich läuft auch das originale RISC OS inklusive BBC Basic auf dem Pi, für Anfänger und erste Tests empfiehlt sich aber die Debian-Variante.
Die Vorbereitung der Karte ist auf jedem Betriebssystem möglich. Unter Windows lässt sich beispielsweise das Debian-Image bequem mittels Win32DiskImager auf die Karte bringen. Sowohl unter Linux als auch unter Mac OS X hilft das dd-Kommando. Ausführliche Anleitungen hält das Wiki des Projekts bereit.
Wir verwendeten im weiteren Verlauf Debian "squeeze". Nachdem die SD-Karte eingelegt und der Pi zum ersten Mal gestartet wurde, erstellt das System einige Initialisierungsdaten. Das kann zwei, drei Minuten dauern. In seltenen Fällen hakt es, dann hilft nur der Griff zum Netzstecker.
Danach sollte das System ohne besondere Meldungen neu starten und zur Eingabe von Benutzernamen und Passwort auffordern. Hier hat sich seit dem Versenden der ersten Boards ein wenig getan und auf den Flyern, die dem Pi beiliegen, stehen noch der Benutzername 'pi' und das Passwort 'suse'. Das Passwort lautet jetzt 'raspberry' und kann sich durchaus noch mal ändern. Wenn die Anmeldung scheitert, hilft ein genauer Blick auf die Download-Seite, denn dort sind die aktuellen Anmeldedaten vermerkt.
Etwas unglücklich ist, dass das Passwort ein 'y' enthält. Besitzer einer QWERTZ-Tastatur werden hier mit hoher Wahrscheinlichkeit schnell mal versehentlich ein 'z' eingeben, weil das voreingestellte Tastaturlayout ein englisches ist. Wer das ändern möchte, kann dies nach erfolgter Anmeldung tun:
Dieses Kommando gestattet die menügeführte Konfiguration der bevorzugten Landessprache und -einstellungen.
Mehr Platz
Vor dem ersten Start des Desktops ist es ratsam, die SD-Karte neu zu partitionieren. Fedora wird in Zukunft automatisch den größtmöglichen Platz auf der Karte zur Verfügung stellen, aber beim Debian-Image ist das nicht der Fall. Unabhängig von der tatsächlichen Größe der Karte sind hier nur 2 GB nutzbar.
Das Projekt-Wiki erklärt, wie sich die Karte auf einem separaten Linux-System vergrößern lässt. Ungeduldige Naturen machen es aber direkt auf dem Pi:
Dieses Kommando versorgt das Programm fdisk, das die Partitionierung vornimmt, mit geeigneten Eingaben. Es löscht die Partitionen 2 und 3 und legt die primäre Partition 2 ab Block 157696 erneut an. Wer Angst vor Tippfehlern hat, kann auch "sudo fdisk -cu /dev/mmcblk0" starten und jeweils mit der Return-Taste getrennt die Werte d, 3, d, 2, n, p, 2, 157696 und w eingeben (vor der Eingabe des Zeichens 'w' wird noch einmal die Return-Taste gedrückt). Die Zahl 157696 gibt den Startblock an, ab dem die neue Partition beginnt. Er entspricht dem höheren Wert in der Ausgabe "First Cylinder" und kann sich mit neueren Debian-Versionen ändern.
Anschließend wird das System heruntergefahren:
Nach einer erneuten Anmeldung findet die eigentliche Vergrößerung des Dateisystems statt:
Jetzt wirds bunt
Nach diesen vorbereitenden Maßnahmen, startet man die graphische Oberfläche mit "startx". Der Desktop unter Debian "squeeze" ist LXDE, und wer mit der Bedienung von Windows oder anderen Linux-Desktops vertraut ist, fühlt sich schnell heimisch.
Alle wichtigen Bedienelemente finden sich in der Statusleiste am unteren Bildschirmrand. Normalerweise werden Anwendungen über das Startmenü gestartet. Für häufig genutzte Programme, wie zum Beispiel den Web-Browser, gibt es Schnellstart-Icons. Darüber hinaus erlaubt LXDE die Nutzung virtueller Bildschirme.
Apropos Browser: Der knappe Hauptspeicher des Pi macht die Portierung ressourcenhungriger Kandidaten wie Firefox und Chrome schwierig bis unmöglich. Daher verrichtet unter "squeeze" ein Browser namens Midori seinen Dienst. HTML5, Flash und Java kennt er nicht (was populäre Seiten wie YouTube ausschließt) und schnappt sich zur Darstellung komplexer Seiten auch schon mal die ganze CPU. Trotzdem ermöglicht Midori ein halbwegs komfortables Surfen und ist allemal besser als nichts.
Ein weiterer Blick ins Startmenü zeigt, wofür der Raspberry Pi ursprünglich gedacht war, denn hier finden sich hauptsächlich Editoren und IDEs für unterschiedliche Programmiersprachen, wie Python und Smalltalk. Spiele, Office-Pakete und Multimedia-Software wurden aus Platz- und Performancegründen eingespart. Selbstverständlich gibt es aber Standardwerkzeuge, wie zum Beispiel ein Terminal, und es lassen sich auch diverse Systemeinstellungen grafisch ändern.
Noch mehr Retro
Dank des Debian-Paketmanagers apt-get ist die Installation neuer Software ein Kinderspiel, und mit wenigen Handgriffen lässt sich zum Beispiel der C64-Emulator Vice aufs System bringen. Weil der nicht in den Standard-Komponenten für Debian-Pakete liegt, muss der Datei /etc/apt/sources.list zuerst die Komponente "contrib" hinzugefügt werden. Mit einem der mitgelieferten Text-Editoren (vi und joe) ist dazu die Zeile
in
zu ändern. Anschließend lässt sich Vice wie folgt installieren (das erste Kommando muss in manchen Fällen zweimal ausgeführt werden):
Allerdings fehlen noch die ROM-Daten des C64. Wer im Besitz eines C64 ist, darf sie wie folgt installieren:
$ cd /tmp
$ wget http://www.zimmers.net/anonftp/pub/cbm/crossplatform/emulators/VICE/old/vice-1.5-roms.tar.gz
$ tar xvfz- vice-1.5-roms.tar.gz
$ cp -a vice-1.5-roms/data/* /usr/lib/vice
Mit dem Befehl "x64" geht es dann los und es lassen sich wie gewohnt C64-Disk- oder Tape-Images einbinden und Programme ausführen. Größere Schwierigkeiten gibt es noch bei der Sound-Ausgabe. Sie lassen sich in der Regel wie folgt beheben:
Der Aufruf von amixer ist nur notwendig, wenn die Sound-Ausgabe des Pi nicht per HDMI erfolgt. Danach muss im Vice-Menü "Settings -> Sound Settings -> Sound device name" der Eintrag "alsa" ausgewählt werden. Führen die obigen Kommandos zum gewünschten Ergebnis, sollten sie in die Datei /etc/rc.local aufgenommen werden. Insgesamt ist der Pi ein wenig zu schwach auf der Brust, um den Brotkasten konstant zu 100% und mit einer passablen Framerate zu emulieren. Analoges gilt auch für den Arcade-Emulator MAME. Der lässt sich in der Version AdvanceMAME sogar in halbwegs annehmbarer Zeit auf dem Pi übersetzen, hat aber noch jede Menge Ecken und Kanten. Dafür läuft Quake III mit wenig Details recht flüssig, auch wenn es noch Probleme mit dem Sound gibt.
Multimedia mit XBMC
Ansonsten tut sich mittlerweile einiges an der Multimedia-Front. Zwar gibt es noch keine Portierung von VLC, aber XBMC läuft schon halbwegs rund. Noch ist die Installation etwas unbequem, es wird aber vermutlich schon bald SD-Karten-Images von der Stange geben. Bis dahin führt kein Weg an der manuellen Erstellung einer Distribution vorbei. Am einfachsten geht das mit OpenELEC.tv.
$ sudo apt-get install git build-essential cvs gperf xsltproc texinfo
$ sudo apt-get install glibncurses-dev libxml-perl
$ cd /tmp
$ git clone git://github.com/OpenELEC/OpenELEC.tv.git
$ cd OpenELEC.tv/
$ PROJECT=RPi ARCH=arm make
Selbst auf einem halbwegs kraftvollen PC und guter Internet-Anbindung dauert dieser Vorgang mehrere Stunden. Danach liegt im Verzeichnis OpenELEC.tv eine komplette Linux-Distribution, die noch auf eine SD-Karte kopiert werden muss. Die folgenden Anweisungen arbeiten mit einer SD-Karte, die unter /dev/sdc gemountet ist. Sie sind entsprechend anzupassen und löschen alle Daten, die sich auf der Karte befinden!
$ umount /dev/sdc1
$ umount /dev/sdc2
$ sudo parted -s /dev/sdc mklabel msdos
$ sudo parted -s /dev/sdc unit cyl mkpart primary fat32 -- 0 16
$ sudo parted -s /dev/sdc set 1 boot on
$ sudo parted -s /dev/sdc unit cyl mkpart primary ext2 -- 16 -2
$ sudo mkfs.vfat -n System /dev/sdc1
$ sudo mkfs.ext4 -L Storage /dev/sdc2
$ sudo partprobe
$ cd OpenELEC.tv/
$ cp build.OpenELEC-RPi.arm-devel/bcm2835-driver-*/boot/arm128_start.elf /media/System/start.elf
$ cp build.OpenELEC-RPi.arm-devel/bcm2835-driver-*/boot/bootcode.bin /media/System/
$ cp build.OpenELEC-RPi.arm-devel/bcm2835-driver-*/boot/loader.bin /media/System/
$ cp target/OpenELEC-RPi.arm-devel-20120510013156-r10899.system /media/System/SYSTEM
$ cp target/OpenELEC-RPi.arm-devel-20120510013156-r10899.kernel /media/System/kernel.img
$ echo "dwc_otg.lpm_enable=0 root=/dev/ram0 rdinit=/init boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 ssh quiet" > /media/System/cmdline.txt
$ sudo umount /dev/sdc1
$ sudo umount /dev/sdc2
Alles anzeigen
Bei den letzten beiden cp-Befehlen ist zu beachten, dass die zu kopierenden Dateien einen Zeitstempel im Namen haben und entsprechend anders heißen werden. Am Ende des Vorgangs steht eine SD-Karte, mit der der Pi in knapp einer halben Minute zum Multimedia-Center mutiert.
Film-, Bild- und Musik-Dateien gibt XBMC problemlos in allen gängigen Formaten wieder –selbst Filme in HD waren im Test kein Problem. Auch die Installation weiterer Add-Ons funktioniert reibungslos. Nur die Wiedergabe von Streaming-Inhalten, also zum Beispiel von YouTube-Videos, wollte nicht gelingen und das System reagiert ingesamt sehr träge auf Benutzereingaben. Der Wechsel zwischen zwei Menüpunkten kann schon mal fünf bis zehn Sekunden dauern. Das Einbinden von USB-Sticks und Festplatten verläuft hingegen flott und das ganze System steht automatisch als Samba-Share zur Verfügung.
Auf den ersten Blick würde man nie vermuten, dass das alles auf solch einem Winzling läuft und der Stand der Dinge ist schon jetzt beeindruckend. Im Detail ist aber noch viel zu tun, bis XBMC auf dem Pi massentauglich wird.
Fazit
Seinem originären Anspruch als Entwicklungsmaschine für erste Programmier-Experimente wird der Raspberry Pi voll und ganz gerecht. Er unterstützt nicht nur populäre Sprachen wie Python, Perl und Ruby, sondern er lädt auch zum Experimentieren mit Elektronik-Projekten ein. Auch als kleiner Heimserver kommt er in Frage, und wenn die Arbeiten an XBMC-Portierungen mit dem jetzigen Tempo weitergehen, wird aus dem Winzling auch schnell ein komfortables Multimedia-Center. Für den täglichen PC-Einsatz sind der geringe Hauptspeicher und die momentan nicht vollends ausgereizten Grafik-Treiber ein echter Hemmschuh, ebenso der Mangel an modernen Web-Browsern.
Zu guter Letzt bringt der Pi auch ein bisschen vom Flair vergangener Tage mit sich. Und wer weiß? Vielleicht tauschen die Kids auf dem Schulhof bald SD-Karten-Images.
Quelle : heise.de