26.02.2014 Aufrufe

Raspberry Pi Geek RasPi-Hacks - Projekte für Einsteiger und Fortgeschrittene (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Auf DVD<br />

Die besten Distributionen <strong>für</strong> den Ras<strong>Pi</strong>:<br />

Arch Linux, NOOBS, Raspbian, <strong>Pi</strong>dora<br />

05/2013 • August/September<br />

Ras<strong>Pi</strong>-<strong>Hacks</strong><br />

Alles<br />

zum Thema<br />

<strong>Raspberry</strong> <strong>Pi</strong><br />

NEU!<br />

<strong>Projekte</strong> <strong>für</strong> <strong>Einsteiger</strong> <strong>und</strong> <strong>Fortgeschrittene</strong><br />

Home-Server<br />

Datenablage, Webserver<br />

<strong>und</strong> Wireless-Druckzentrale<br />

Multimedia<br />

Media-Center mit XBMC,<br />

Jukebox <strong>und</strong> Game-Server<br />

Messen+Regeln<br />

GPIO-Programmierung,<br />

Wetterstation im Eigenbau<br />

Gr<strong>und</strong>lagen<br />

Crashkurs: Raspian <strong>für</strong> <strong>Einsteiger</strong>,<br />

Ras<strong>Pi</strong>-Betriebssysteme im Vergleich,<br />

Fernzugriff per SSH, <strong>Projekte</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

www.raspberry-pi-geek.de<br />

EUR 9,80<br />

Deutschland<br />

A EUR 10,80 - BeNeLux EUR 11,25<br />

CH sfr 19,60 - E / I EUR 12,75<br />

4 198554 709800 05


Basics. <strong>Projekte</strong>.<br />

Ideen. Know-how.<br />

NEU!<br />

Mini-Abo<br />

zwei Ausgaben<br />

nur 9,80 €<br />

Jetzt bestellen!<br />

www.medialinx-shop.de/raspberry-pi-geek


Editorial<br />

In eigener Sache<br />

Sehr geehrte Leserinnen <strong>und</strong> Leser,<br />

manche Dinge entwickeln, sobald man<br />

sie einmal angeschoben hat, unerwartet<br />

ein gewisses Eigenleben – <strong>und</strong> bewegen<br />

sich in Richtungen, die vom Erfinder so<br />

eigentlich nicht vorgesehen waren.<br />

In diese Kategorie fällt ganz sicher<br />

auch der <strong>Raspberry</strong> <strong>Pi</strong>: Sein geistiger<br />

Vater Eben Upton <strong>und</strong> seine Kollegen von<br />

der <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation wollten eigentlich<br />

nur einen kleinen, billigen Rechner<br />

<strong>für</strong> Ausbildungszwecke entwickeln.<br />

Der sollte den britischen Unis zu mehr<br />

Nachwuchs <strong>für</strong> IT-Studiengänge verhelfen,<br />

nachdem sich herausgestellt hatte,<br />

dass kaum noch jemand aus der Handy<strong>und</strong><br />

Facebook-Generation programmieren<br />

konnte oder auch nur wollte.<br />

Stattdessen wurde der Mini-Rechner<br />

fast über Nacht zum Selbstläufer in der<br />

Maker-Szene. Statt sich der Nachwuchsgenerierung<br />

<strong>für</strong> eine neue Generation<br />

von Hard- <strong>und</strong> Software-Ingenieuren<br />

widmen zu können, mussten sich Upton<br />

<strong>und</strong> Co. monatelang die Nächte mit Produktionsentscheidungen<br />

um die Ohren<br />

schlagen. Der Bildungsansatz blieb erst<br />

mal auf der Strecke – da<strong>für</strong> sind mittlerweile<br />

über eine Million Ras<strong>Pi</strong>s an den<br />

<strong>Geek</strong> gebracht, <strong>und</strong> monatlich kommen<br />

40 000 neue dazu.<br />

Ein ähnlich Eigenleben entwickelndes<br />

Projekt hat dazu geführt, dass Sie heute<br />

dieses Heft in der Hand halten. Eigentlich<br />

macht das Redaktionsteam bereits<br />

eine monatlich erscheinende Zeitschrift:<br />

LinuxUser, das Praxismagazin <strong>für</strong> Anwender<br />

des freien Betriebssystems,<br />

kennt vermutlich der ein oder andere<br />

von Ihnen bereits. Da eine Linux-Distri-<br />

bution als Standardbetriebssystem <strong>für</strong><br />

den <strong>Raspberry</strong> <strong>Pi</strong> dient, haben schon<br />

mehr als einmal Artikel zum Mini-Rechner<br />

in LinuxUser Eingang gef<strong>und</strong>en. Und<br />

nachdem die Redaktion ohnehin längst<br />

Ras<strong>Pi</strong>-infiziert ist – nur ein Kollege hat<br />

noch keinen zu Hause – lag der Gedanke<br />

nahe, doch mal ein Sonderheft zu dem<br />

Thema zu machen.<br />

Das war ja schön gedacht, entpuppte<br />

sich jedoch schnell als zu kurz geworfen:<br />

Leser fragten nach einem regelmäßigen<br />

deutschsprachigen Magazin zum <strong>Raspberry</strong>,<br />

um nicht immer Englischsprachiges<br />

aufdröseln zu müssen. Kollegen aus<br />

anderen Abteilungen des Verlags outeten<br />

sich als begeisterte Ras<strong>Pi</strong>-Jünger auf<br />

Futtersuche. Langjährige Stammautoren<br />

von LinuxUser bombardierten uns mit<br />

mehr Artikelvorschlägen zum Thema<br />

<strong>Raspberry</strong>, als wir selbst in zwei Sonderheften<br />

abdrucken könnten. Und auch<br />

die Kollegen unserer internationalen<br />

Verlagsschwestern zeigten reges Interesse,<br />

wie Sie an den Beiträgen britischer,<br />

spanischer <strong>und</strong> nordamerikanischer<br />

Autoren in diesem Heft sehen.<br />

Bekanntlich hilft oft nur weiter, die<br />

Not flugs zur Tugend umzuwidmen, <strong>und</strong><br />

so haben wir schließlich beschlossen,<br />

aus dem Sonderheft ein eigenes Magazin<br />

zu machen. <strong>Raspberry</strong> <strong>Pi</strong> <strong>Geek</strong><br />

(http:// www. raspi‐geek. de) heißt das<br />

Kind <strong>und</strong> erscheint <strong>für</strong>s Erste alle zwei<br />

Monate. Entsprechendes Interesse von<br />

Jörg Luther<br />

Chefredakteur<br />

Ihrer Seite vorausgesetzt, spricht gr<strong>und</strong>sätzlich<br />

auch nichts dagegen, das Heft<br />

öfter <strong>und</strong> dicker zu drucken. Sehen Sie<br />

sich unseren Erstling in aller Ruhe an,<br />

<strong>und</strong> schreiben Sie uns dann: Was gefällt<br />

Ihnen gut, was sollten wir besser machen?<br />

Welche Themen interessieren Sie<br />

mehr, welche weniger? Fehlt der Artikelmischung<br />

eine entscheidende Zutat?<br />

Wir freuen uns schon auf Ihre E-Mails<br />

an redaktion@raspi‐geek.de. Noch<br />

bleibt sogar genug Zeit, Ihre Anregungen<br />

mit in die nächste Ausgabe von<br />

Rasp berry <strong>Pi</strong> <strong>Geek</strong> einfließen zu lassen,<br />

<strong>für</strong> die wir hier in der Redaktion bereits<br />

kräftig Anlauf nehmen. Jetzt aber erstmal<br />

viel Spaß bei der Lektüre!<br />

Herzliche Grüße,<br />

05.2013 www.raspberry-pi-geek.de<br />

3


05<br />

6<br />

Projektgründer Eben Upton kommt<br />

noch heute nicht aus dem Staunen<br />

heraus, wenn er rekapituliert, was alles geschah,<br />

bis der erste Ras<strong>Pi</strong> vom Band lief.<br />

14<br />

Einen <strong>Raspberry</strong> <strong>Pi</strong> zu bestellen,<br />

das gelingt heute per Mausklick.<br />

Aber liegt der Mini-PC erst einmal auf dem<br />

Tisch, stellt sich schnell die Frage: Was tun?<br />

Wir stellen einige handliche <strong>Projekte</strong> vor,<br />

die den Einstieg leicht machen.<br />

28<br />

Der <strong>Raspberry</strong> <strong>Pi</strong> läuft bevorzugt<br />

mit Linux. Das Unix-ähnliche System<br />

weist zahlreiche Eigenheiten auf. Ein<br />

kleiner R<strong>und</strong>gang erläutert die Gr<strong>und</strong>lagen<br />

<strong>und</strong> hilft bei den ersten Schritten.<br />

Report<br />

Erfolgsgeschichte Ras<strong>Pi</strong>.. . . . . . . . . 6<br />

Nach sechs Jahren der Entwicklung ernten<br />

der Projektgründer Eben Upton <strong>und</strong> die<br />

anderen Mitglieder der <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation<br />

jetzt die Früchte ihrer Bemühungen –<br />

Zeit <strong>für</strong> eine Bestandsaufnahme.<br />

<strong>Pi</strong> and More 3 .. . . . . . . . . . . . . . . . 10<br />

Mitte Juni trafen sich die deutschen <strong>Raspberry</strong>-<strong>Pi</strong>-Fans<br />

in Trier zur „<strong>Pi</strong> and More 3“.<br />

Die Community-getriebene Veranstaltung<br />

deckte eine breite Palette an Themen ab.<br />

Nur mit einem<br />

36 speziell angepassten<br />

System entfaltet<br />

der <strong>Raspberry</strong> <strong>Pi</strong><br />

sein volles Potenzial.<br />

Auf der beiliegenden<br />

Heft-DVD finden Sie<br />

eine Auswahl der<br />

Top-Distros sowie<br />

nützliche Tools <strong>für</strong><br />

Ihre <strong>Projekte</strong>.<br />

Basics<br />

Ras<strong>Pi</strong>-<strong>Einsteiger</strong>projekte .. . . . . . . 14<br />

Der <strong>Raspberry</strong> <strong>Pi</strong> erweist sich als unkompliziertes<br />

Multitalent, das sich gleichermaßen<br />

zum Regeln <strong>und</strong> Steuern wie als kleiner<br />

Server eignet. Wir zeigen, wie Sie den Einstieg<br />

mit dem System <strong>und</strong> der handlichen<br />

Hardware unkompliziert meistern.<br />

Remote Access via SSH. ........ 22<br />

Mit den Werkzeugen aus dem OpenSSH-Paket<br />

verwalten Sie den <strong>Raspberry</strong> <strong>Pi</strong> problemlos<br />

aus der Ferne <strong>und</strong> ersparen sich dadurch<br />

die Anschaffung eines zusätzlichen Monitors<br />

<strong>und</strong> einer Tastatur. Der Konfigurationsaufwand<br />

<strong>für</strong> eine solche Headless-Lösung hält<br />

sich in erfreulich überschaubaren Grenzen.<br />

Software<br />

Crash-Kurs: Raspbian-Shell.. . . . . 28<br />

Wer bislang nur wenig mit Linux zu tun<br />

hatte, der tut sich am Anfang eventuell mit<br />

Rasp bian etwas schwer. Dabei ist der Einstieg<br />

beileibe keine Hexerei.<br />

Ras<strong>Pi</strong>-Betriebssysteme.......... 36<br />

Für den <strong>Raspberry</strong> <strong>Pi</strong> gibt es inzwischen eine<br />

Vielzahl an Betriebssystemen. Wir stellen<br />

Ihnen die zwölf wichtigsten Vertreter vor.<br />

Server<br />

File- <strong>und</strong> Print-Server.. . . . . . . . . . 42<br />

Dank des geringen Stromverbrauchs eignet<br />

sich der Ras<strong>Pi</strong> optimal als r<strong>und</strong> um die Uhr<br />

laufender Homeserver <strong>und</strong> lässt sich flexibel<br />

an die eigenen Wünsche anpassen.<br />

Ras<strong>Pi</strong> als Webserver.. . . . . . . . . . . 46<br />

Raspbian bringt alles mit, was Sie <strong>für</strong> die<br />

Konfiguration <strong>und</strong> den Betrieb eines vollwertigen<br />

Webservers samt PHP, Datenbank <strong>und</strong><br />

CMS im LAN brauchen.<br />

4 05.2013


42<br />

Trotz der auf den ersten Blick<br />

etwas schwachen Hardware verrichtet<br />

der <strong>Raspberry</strong> <strong>Pi</strong> bei Bedarf sogar<br />

als kleiner LAN-Server seinen Dienst. Wir<br />

zeigen, wie Sie die wichtigsten Daten- <strong>und</strong><br />

Druckdienste auf dem Mini-PC einrichten.<br />

60<br />

Messen, Steuern, Regeln – hier<br />

läuft der Ras<strong>Pi</strong> zu Höchstform<br />

auf. Wir zeigen in einem Beispiel, wie Sie<br />

die Daten einer Wetterstation auswerten<br />

<strong>und</strong> optisch ansprechend aufbereiten.<br />

70<br />

Mit Komponenten <strong>für</strong> wenige<br />

Cent schlagen Sie die Brücke zwischen<br />

Ras<strong>Pi</strong> <strong>und</strong> Arduino <strong>und</strong> eröffnen<br />

sich so ungeahnte Möglichkeiten.<br />

Multimedia<br />

Ras<strong>Pi</strong> als Jukebox.. . . . . . . . . . . . . 50<br />

Der Music Player Deamon MPD macht aus<br />

dem Ras<strong>Pi</strong> eine kleine Jukebox. Die Konfiguration<br />

ist allerdings nicht immer geradlinig.<br />

Wir zeigen, worauf Sie dabei achten müssen.<br />

Ras<strong>Pi</strong> als Media-Center. ........ 55<br />

Ihrem Fernseher fehlen Media-Center- oder<br />

Smart-TV-Funktionen? Die rüsten Sie mit<br />

einem <strong>Raspberry</strong> <strong>Pi</strong> sowohl preisgünstig als<br />

auch individuell nach.<br />

<strong>Hacks</strong><br />

Ras<strong>Pi</strong> als Wetterstation. ........60<br />

Da in einem <strong>Raspberry</strong> <strong>Pi</strong> ein ausgewachsenes<br />

Linux steckt, stellen auch eigene<br />

Webanwendungen <strong>für</strong> den Heimgebrauch<br />

kein Problem dar. Der Artikel zeigt, wie Sie<br />

die Daten einer Wetterstation mit Ruby auswerten<br />

<strong>und</strong> dann mithilfe eines Webservers<br />

im Eigenbau präsentieren.<br />

Ras<strong>Pi</strong> als Printserver............66<br />

Der <strong>Raspberry</strong> <strong>Pi</strong> eignet sich – ganz im Sinn<br />

der „Green IT“ – auch als WLAN-Printserver<br />

<strong>für</strong> das Recycling eines eigentlich schon<br />

ausgedienten Multifunktionsdruckers. Ganz<br />

nebenbei sparen Sie auch noch Geld.<br />

Open Hardware<br />

Ras<strong>Pi</strong> <strong>und</strong> Arduino .. . . . . . . . . . . . 70<br />

Mittels eines einfachen Aufbaus können<br />

<strong>Raspberry</strong> <strong>Pi</strong> <strong>und</strong> Arduino miteinander<br />

kommunizieren, wobei sich die einfache<br />

Sensoransteuerung des Arduino <strong>und</strong> die<br />

Rechenpower des Ras<strong>Pi</strong> ideal ergänzen.<br />

Know-how<br />

GPIO-Programmierung.......... 74<br />

Nach den ersten erfolgreichen Experimenten<br />

locken komplexere Probleme. Das ist der<br />

ideale Zeitpunkt, um sich eingehender mit<br />

dem frei programmierbaren GPIO-Interface<br />

des <strong>Raspberry</strong> zu beschäftigen. Das macht<br />

erfreulicherweise weniger Mühe, als viele<br />

erstmal be<strong>für</strong>chten.<br />

46<br />

Um Webseiten zu entwickeln,<br />

brauchen Sie eine abgesicherte<br />

Umgebung. Auf dem <strong>Raspberry</strong> <strong>Pi</strong> finden<br />

Ihre <strong>Projekte</strong> ein sicheres Zuhause<br />

– inklusive CMS, PHP <strong>und</strong> Datenbank.<br />

Service<br />

Editorial.. . . . . . . . . . . . . . . . . . . . . . 3<br />

Impressum....................80<br />

<strong>Vorschau</strong>: 06/2013 .. . . . . . . . . . . . 81<br />

Heft-DVD-Inhalt ...............82<br />

05.2013 www.raspberry-pi-geek.de<br />

5


Report<br />

Erfolgsgeschichte Ras<strong>Pi</strong><br />

Eben Upton <strong>und</strong> der steinige Weg<br />

zur <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation<br />

Schritt <strong>für</strong><br />

Schritt<br />

© Markus Gann, 123RF<br />

Nach sechs Jahren der Entwicklung ernten der Projektgründer Eben Upton <strong>und</strong> die anderen<br />

Mitglieder der <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation jetzt die Früchte ihrer Bemühungen. Der Weg war<br />

steinig, wie die Bestandsaufnahme des Raspi-Vaters zeigt. Bruce Byfield<br />

Readme<br />

Das <strong>Raspberry</strong>-<strong>Pi</strong>-Projekt hat von der ersten<br />

Idee bis zur ersten Million ausgelieferter<br />

Minirechner einen langen <strong>und</strong> nicht immer<br />

störungsfreien Weg zurückgelegt. Der Projektgründer<br />

Eben Upton kommentiert in<br />

diesem Artikel die wichtigsten Stationen.<br />

„Es ist absolut unglaublich!“ Wenn Eben<br />

Upton die Ereignisse r<strong>und</strong> um die Entwicklung<br />

des <strong>Raspberry</strong> <strong>Pi</strong> Revue passieren<br />

lässt, kommt er selbst aus dem Staunen<br />

kaum heraus û. Dabei war der gebürtige<br />

Brite so nahe dran, wie wenige<br />

sonst auf diesem Planeten: Er ist der Projektvater<br />

des Mini-PCs.<br />

Der am 29. Februar 2012 vorgestellte,<br />

nur kreditkartengroße Minicomputer<br />

zählt zu den größten Erfolgsgeschichten<br />

der freien Software. Ungeachtet der anfänglichen<br />

Schwierigkeiten bei der Produktion<br />

– anfangs durfte jeder Interessent<br />

nicht mehr als einen einzigen der<br />

Minirechner bestellen – wurden inzwischen<br />

weit mehr als eine Million <strong>Raspberry</strong><br />

<strong>Pi</strong>s verkauft, monatlich kommen<br />

r<strong>und</strong> 40 000 weitere Geräte hinzu. Zu<br />

seinem dritten Geburtstag dürfte der<br />

Ras<strong>Pi</strong> die Drei-Millionen-Marke locker<br />

geknackt haben.<br />

Upton, heute ein Mittdreißiger, programmiert<br />

schon seit seinem zehnten<br />

Lebensjahr 1 . Er begann seine Laufbahn<br />

auf einem BBC-Heimcomputer û,<br />

später folgten ein Commodore C-64 <strong>und</strong><br />

ein Amiga. Später war er ein Mitglied<br />

des Instituts <strong>für</strong> Computertechnik der<br />

Universität Cambridge û, Gründer des<br />

Spielestudios Ideaworks, heute arbeitet<br />

er als Schaltkreisentwickler in der Computerindustrie.<br />

Eben Upton ist seit Langem<br />

ein Anhänger <strong>und</strong> Anwender freier<br />

Software. Vor dem <strong>Raspberry</strong> <strong>Pi</strong> bereicherte<br />

er den F<strong>und</strong>us an freien Programmen<br />

bereits mit BlueCove û, einer JSR-<br />

82-konformen Java-API-Implementation<br />

6 www.raspberry-pi-geek.de<br />

05.2013


Erfolgsgeschichte Ras<strong>Pi</strong><br />

Report<br />

<strong>für</strong> die Bluetooth-Kommunikation unter<br />

Windows <strong>und</strong> Mac OS X. Später übernahm<br />

er die Portierung des Linux-Kernels<br />

<strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong>. Bescheiden<br />

kommentiert er seine jetzige Tätigkeit:<br />

„Tatsächlich habe ich schon länger nicht<br />

mehr als Ingenieur gearbeitet – die<br />

meiste Zeit verbringe ich in Meetings<br />

<strong>und</strong> am Telefon.“ Angesichts dessen<br />

zeigt er sich dankbar da<strong>für</strong>, dass sein<br />

derzeitiger Brötchengeber Broadcom<br />

ihn recht großzügig <strong>für</strong> das Ras<strong>Pi</strong>-Projekt<br />

freistellt: „Sonst müsste ich alles in meiner<br />

Freizeit <strong>und</strong> an den Wochenenden<br />

erledigen, <strong>und</strong> meine Familie bekäme<br />

mich gar nicht mehr zu Gesicht.“<br />

Nachwuchsgewinnung<br />

Die Gr<strong>und</strong>idee <strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong><br />

stammt aus dem Institut <strong>für</strong> Computertechnik<br />

der Universität Cambridge. Eben<br />

Upton <strong>und</strong> seine späteren Mitstreiter in<br />

der <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation û – Rob<br />

Mullins, Jack Lang <strong>und</strong> Alan Mycroft –<br />

machten sich Sorgen darüber, dass in<br />

den ersten fünf Jahren des neuen Jahrtausends<br />

die Anzahl der qualifizierten<br />

Studienbewerber <strong>für</strong> Informationstechnik<br />

um nicht weniger als die Hälfte gesunken<br />

war. „Als wir die Zahlen durchsahen,<br />

stach uns dieser unaufhörliche<br />

Rückgang ins Auge“, erinnert sich Upton,<br />

„nach einer Weile ließ uns das Thema<br />

nicht mehr los, <strong>und</strong> wir dachten: Wir<br />

müssen unbedingt was dagegen tun.“<br />

Zusammen mit anderen Institutsmitgliedern<br />

führte er das Ausbleiben von<br />

Bewerbern schließlich darauf zurück,<br />

dass es kaum noch erschwingliche, frei<br />

programmierbare Rechner gab. Stattdessen<br />

befanden sich geschlossene, auf einen<br />

speziellen Einsatzzweck zugeschnittene<br />

Hardware-Appliances auf dem zügigen<br />

Vormarsch. Schließlich ersannen Sie<br />

einen Plan, um „ein Gerät zu entwickeln,<br />

das in einem Kinderzimmer seinen Platz<br />

fände, <strong>und</strong> so <strong>für</strong> den Zustrom von Bewerbern<br />

zu sorgen, den eine lebendige<br />

universitäre Umgebung braucht. Es durfte<br />

keine Blackbox sein, sondern musste<br />

dazu ermutigen, sich bis ins letzte Detail<br />

damit auseinanderzusetzen, ohne Barrieren<br />

zwischen User <strong>und</strong> Hardware.“<br />

Soweit die Idee. In der Praxis allerdings<br />

begeistert der <strong>Raspberry</strong> <strong>Pi</strong> heute vor allem<br />

erwachsene Computer-Fans. Dennoch<br />

hofft die <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation,<br />

in den nächsten Jahren ihrem ursprünglichen<br />

Bildungsziel näherzukommen.<br />

Produktionsfragen<br />

Angesichts ihres im Wesentlichen gemeinnützigen<br />

Ziels fanden Upton <strong>und</strong><br />

seine Kollegen es logisch, da<strong>für</strong> eine gemeinnützige<br />

Stiftung zu gründen. Obendrein<br />

waren die meisten von ihnen ohnehin<br />

in der freien Wirtschaft tätig, <strong>und</strong><br />

„fanden es nett, sich mal mit etwas beschäftigen<br />

zu können, bei dem es nicht<br />

ums Geld geht“, erläutert Upton die Motivation<br />

der Gruppe. Zudem erleichterte<br />

es der Status der Stiftung, bei Chipherstellern<br />

Rabatte eingeräumt zu bekommen.<br />

„Zwar kauften wir anfangs nur<br />

10 000 Chips, baten aber um dieselben<br />

Konditionen, als ob wir 100 000 abnähmen“,<br />

erinnert sich Upton, „immerhin:<br />

Inzwischen kaufen wir tatsächlich in solchen<br />

großen Stückzahlen. Da hat es sich<br />

also schon rentiert.“<br />

Anfangs peilte die Fo<strong>und</strong>ation ein<br />

ähnliches Board an wie den Arduino û,<br />

dessen gute Aufnahme im Markt <strong>für</strong><br />

einen hohen Bedarf an preisgünstigen<br />

Rechnern sprach. Allerdings wurde<br />

1 Programmierer, Schaltkreisentwickler <strong>und</strong> <strong>Raspberry</strong>-<strong>Pi</strong>-Vater Eben Upton.<br />

05.2013 www.raspberry-pi-geek.de<br />

7


Report<br />

Erfolgsgeschichte Ras<strong>Pi</strong><br />

dominiert wurden – 25 US-Dollar <strong>für</strong> das<br />

Low-End-Modell A <strong>und</strong> 35 US-Dollar <strong>für</strong><br />

den <strong>Raspberry</strong> <strong>Pi</strong> B mit einem zweiten<br />

USB-Port <strong>und</strong> einer Netzwerkschnittstelle.<br />

Ebenfalls früh stand fest, dass sich die<br />

Ziele nur durch den weitgehenden Einsatz<br />

freier Software würden lösen lassen.<br />

„Sowohl aus praktischen wie aus philosophischen<br />

Gründen lag die Implementation<br />

als Open-Source-Plattform auf der<br />

Hand“, kommentiert Upton dazu, „<strong>und</strong> es<br />

ist schon echt beeindruckend, wie die<br />

Open-Source-Gemeinde auf den Zug<br />

aufgesprungen ist.“<br />

Freie Software<br />

2 Der <strong>Raspberry</strong> <strong>Pi</strong> Modell B bringt zwei USB-Ports, eine Fast-Ethernet-Interface, je<br />

einen So<strong>und</strong>-, HDMI- <strong>und</strong> Composite-Anschluss sowie einige frei programmierbare I/​O-<br />

Ports mit. Als Massenspeicher dient eine SD-Karte.<br />

SoC: System on Chip. Baustein, der alle<br />

oder zumindest einen Großteil der Funktionen<br />

eines Computers in einem einzigen<br />

Chip implementiert.<br />

GPU: Graphics Processing Unit. Der Grafikprozessor<br />

zur Berechnung der Bildschirmausgabe.<br />

Auf PCs sitzt er in der Regel als eigener<br />

Baustein auf dem Motherboard oder<br />

einer Steckkarte. Bei einem SoC ist er im<br />

Systemchip integriert, man spricht dann von<br />

einer APU (Accelerated Processing Unit).<br />

Upton <strong>und</strong> seinen Kollegen bald klar,<br />

dass „eine solche Plattform die Neugier<br />

von Kindern nicht anstacheln konnte.<br />

Dazu gehören heute schon eine gute<br />

Grafik-Performance <strong>und</strong> eine gewisse<br />

Bedienerfre<strong>und</strong>lichkeit.“ Wonach die<br />

Fo<strong>und</strong>ation suchte, das lag offensichtlich<br />

näher an einem BeagleBoard û. Allerdings<br />

gab es noch kein SoC, das zum<br />

angepeilten Kostenpunkt die nötige<br />

Leistungsfähigkeit bereitstellte. Der kam<br />

erst in Gestalt des Broadcom BCM2835,<br />

nicht ganz zufällig: Eben Upton hatte an<br />

dessen Entwicklung mitgewirkt.<br />

Mit dem passenden SoC ließ sich die<br />

Entwicklung des Boards schnell zu Ende<br />

bringen. Die Speicherausstattung des<br />

Einstiegsmodells A musste man dabei<br />

von ausgangs geplanten 128 MByte auf<br />

256 MByte verdoppeln: „Ein bisschen<br />

Embedded-Hacking wäre mit 128 MByte<br />

schon gegangen, aber das hätte nie <strong>und</strong><br />

nimmer <strong>für</strong> eine grafische Oberfläche<br />

oder einen Webbrowser gereicht.“ Während<br />

der späteren Produktion erlaubte<br />

dann der Preisverfall bei RAM-Bausteinen<br />

sogar 512 MByte Hauptspeicher<br />

beim Modell B 2 .<br />

Schon früh wurde klar, dass die meisten<br />

Ausstattungsentscheidungen von<br />

den angepeilten Endverkaufspreisen<br />

Tatsächlich befriedigte die Community<br />

die Bedürfnisse des <strong>Projekte</strong>s umgehend<br />

mit Betriebssystem-Portierungen von<br />

Arch Linux über Slackware <strong>und</strong> FreeBSD<br />

bis hin zu Android. Als Gr<strong>und</strong>ausstattung<br />

<strong>für</strong> <strong>Einsteiger</strong> empfiehlt die Fo<strong>und</strong>ation<br />

den Debian-Port Raspbian (siehe<br />

Heft-DVD). Daneben stützt sich das Projekt-Team<br />

auf das X Window System sowie<br />

die 2D-Grafikbibliothek Cairo ab <strong>und</strong><br />

hofft, schon bald zur Entwicklung des<br />

designierten X.org-Nachfolgers Wayland<br />

û beitragen zu können. Als offizielle<br />

Programmiersprache dient Python, da<br />

es anders als Sprachen wie Java „<strong>Einsteiger</strong>n<br />

nicht durch obskure Sprachkonstrukte<br />

eine steile Lernkurve abfordert.<br />

Zum Lernen braucht es eine Sprache, bei<br />

der man ohne Schwierigkeiten den Fuß<br />

in die Tür bekommt“, stellt Upton klar.<br />

Der <strong>Pi</strong> bringt sogar eine frei lizenzierte<br />

Firmware <strong>für</strong> seinen als solchen proprietären<br />

Grafikkern mit. Dieses Arrangement<br />

kritisierten allerdings einige Mitglieder<br />

der FOSS-Community recht vehement<br />

(„Der GPU-Treiber <strong>für</strong> den <strong>Raspberry</strong><br />

ist Schrott“ û) als nicht ausreichend<br />

<strong>für</strong> ein wirklich freies System. Die<br />

resultierenden Streitigkeit beschreibt ein<br />

sichtlich getroffener Upton als „eine der<br />

niederschmetterndsten Erfahrungen<br />

meines Lebens“. Er habe die GPU mit<br />

entwickelt <strong>und</strong> hätte ihre exakte Spezifikation<br />

bis herunter auf die Registerebene<br />

nur zu gerne offengelegt, versichert<br />

er, denn er sei stolz auf seine Arbeit. „In<br />

der Praxis steckt aber Intellectual Pro-<br />

8 www.raspberry-pi-geek.de<br />

05.2013


Report<br />

perty von Broadcom mit in der GPU, das<br />

die Firma schützen muss. Klar gibt es<br />

Leute, die aus durchaus guten Gründen<br />

– vor allem zu Ausbildungszwecken –<br />

gerne die Interna einsehen würden“,<br />

erläutert er das Problem.<br />

Gleichzeitig stellt er aber klar: „Mit<br />

dem, was wir veröffentlichen konnten,<br />

können die Leute aber durchaus interessante<br />

Dinge anstellen. Ich denke, dass<br />

viele Benutzer anerkennen, dass wir das<br />

Bestmögliche getan haben. Ich hoffe,<br />

dass andere GPU-Hersteller sich davon<br />

eine Scheibe abschneiden <strong>und</strong> vielleicht<br />

sogar noch mehr Interna offenlegen.<br />

Und vielleicht können wir die Sache in<br />

ein oder zwei Jahren nochmal unter die<br />

Lupe nehmen <strong>und</strong> möglicherweise weitere<br />

Details freigeben.“<br />

Höhen <strong>und</strong> Tiefen<br />

Für die <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation war<br />

2012 ein Jahr voller Höhen <strong>und</strong> Tiefen.<br />

Neben dem Gerangel um die GPU zehrte<br />

es zusätzlich an den Nerven, das „wir Tag<br />

<strong>und</strong> Nacht ranklotzen mussten, um die<br />

Boards rauszubringen. Das war schon<br />

taff“, resümiert Upton. „Und es war ein<br />

gef<strong>und</strong>enes Fressen <strong>für</strong> die Presse. Einige<br />

glaubten wohl, dass wir es nie schaffen<br />

würden, aber jetzt sind wir durch: Du<br />

kannst heute einen Ras<strong>Pi</strong> bestellen, <strong>und</strong><br />

morgen kriegst du ihn schon geliefert.“<br />

Upton ist aber deutlich anzumerken,<br />

dass <strong>für</strong> ihn die Highlights des <strong>Projekte</strong>s<br />

alle Probleme auf dem Weg bei Weitem<br />

aufwiegen: „Mir gefällt es, was die Anwender<br />

alles mit dem <strong>Raspberry</strong> anstellen,<br />

besonders hardwareseitig. Ich selbst<br />

komme ja von der Programmiererseite,<br />

deswegen hatte ich eher all die freie<br />

Software im Sinn, die man <strong>für</strong> den <strong>Pi</strong><br />

schreiben könnte. Aber schau dir bloß an,<br />

was die Leute mit der Hardware machen<br />

– etwa einen Ballon 40 Kilometer hoch in<br />

die Luft schicken, um aus der Stratosphäre<br />

Fotos zu knipsen. Das fand ich<br />

spitze, ich bin selbst Weltraum-Fan.“<br />

Doch die größte Befriedigung zieht<br />

Upton aus einer ganz bestimmten Art<br />

von E-Mails, die ihn von Zeit zu Zeit erreicht:<br />

Die von Ingenieurskollegen, die<br />

lange vergeblich versucht haben, ihre<br />

Kinder <strong>für</strong> Technik zu begeistern. „Da<br />

steht dann: ’Ich hab mir einen <strong>Pi</strong> besorgt,<br />

<strong>und</strong> jetzt programmieren meine Kinder<br />

begeistert zusammen mit mir.’ Diese<br />

E-Mails wiegen <strong>für</strong> mich alle Schwierigkeiten<br />

mit dem Projekt wieder auf“, freut<br />

sich Upton – nicht zuletzt deshalb, weil<br />

der <strong>Raspberry</strong> offenbar zumindest hier<br />

dem Zweck dient, <strong>für</strong> den er von Anfang<br />

an konzipiert war.<br />

Wenn es etwas gibt, das Upton bedauert,<br />

dann nur eines: „Wir hatten Schwierigkeiten,<br />

uns auf das Bildungsziel zu<br />

konzentrieren, weil die operative Seite<br />

des <strong>Projekte</strong>s so schnell gewachsen ist.<br />

Obwohl wir überhaupt nur deswegen<br />

angetreten sind, mussten wir hier zurückstecken<br />

<strong>und</strong> erstmal Boards unter<br />

die Leute bringen“. Die aus der FOSS-<br />

Szene stammenden Anwender haben<br />

aber inzwischen eine praktisch autarke<br />

Subkultur auf die Beine gestellt. Daher<br />

arbeitet Upton nun daran, die Fo<strong>und</strong>ation<br />

wieder auf den ursprünglichen Kurs<br />

zu bringen. Dazu hat die Fo<strong>und</strong>ation sogar<br />

explizit <strong>für</strong> den Bildungssektor einige<br />

neue Mitarbeiter eingestellt.<br />

Fazit<br />

„Ich selbst habe massiv von mehr oder<br />

minder freier Soft- <strong>und</strong> Hardware profitiert“,<br />

begründet Upton sein Engagement,<br />

„es macht wirklich Spaß, einer Generation<br />

zur gleichen Erfahrungen zu<br />

verhelfen. Ansonsten enden wir möglicherweise<br />

bei geschlossenen Plattformen<br />

<strong>und</strong> die Software-Entwicklung geht<br />

dann unweigerlich den Bach runter.“<br />

Tatsächlich handelt es sich bei den<br />

meisten Mitgliedern der <strong>Raspberry</strong> <strong>Pi</strong><br />

Fo<strong>und</strong>ation um gesetzte Herren in den<br />

Vierziger <strong>und</strong> Fünfzigern, die über Jahrzehnte<br />

Erfahrung in der IT verfügen.<br />

Man könnte die Fo<strong>und</strong>ation auch als ihren<br />

Versuch betrachten, ein bleibendes<br />

Erbe in der Computerindustrie zu hinterlassen.<br />

Falls dem so ist, steuern sie das<br />

Ziel ziemlich zielstrebig an. (jlu) n<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29877<br />

05.2013 www.raspberry-pi-geek.de<br />

9


Report<br />

<strong>Pi</strong> and More 3<br />

Veranstaltungsbericht: „<strong>Pi</strong> and More 3“ in Trier<br />

Löten <strong>und</strong> Grillen<br />

© Tobias Hübner, medienistik.de<br />

Aus ganz Deutschland zog es Fans des Rasp berry <strong>Pi</strong> nach Trier zur „<strong>Pi</strong> and More 3“. Die<br />

Veranstaltung sprach Enthusiasten aller Alters- <strong>und</strong> Interessengruppen an. Marko Dragicevic<br />

Readme<br />

Am 15. Juni fand im rheinland-pfälzischen<br />

Trier bereits zum dritten Mal das <strong>Raspberry</strong>-<br />

<strong>Pi</strong>-Anwendertreffen „<strong>Pi</strong> and More“ statt.<br />

Einen ganzen Tag lang trafen sich dort Fans<br />

des Mini-PCs <strong>und</strong> lauschten hochklassigen<br />

Vorträgen oder legten in Workshops selbst<br />

Hand an die Hardware an.<br />

In Großbritannien haben sich <strong>Raspberry</strong>-<strong>Pi</strong>-Jams<br />

schon seit einiger Zeit zur festen<br />

Größe entwickelt: Im Heimatland<br />

des knuffigen Minicomputers findet<br />

praktisch jeden Monat irgendwo ein solches<br />

Treffen statt. Anderswo breiten sich<br />

entsprechende Veranstaltungen zunehmend<br />

aus: So fand am 15. Juni 2013 die<br />

deutsche Ras<strong>Pi</strong>-Jam „<strong>Pi</strong> and More“ û bereits<br />

zum dritten Mal statt.<br />

Die halbjährliche Veranstaltung wuchs<br />

im Vergleich zu den Vorgängern diesmal<br />

überdurchschnittlich. Bereits eine halbe<br />

St<strong>und</strong>e vor Beginn des ersten Programmpunktes<br />

waren ein Großteil der<br />

Stühle belegt, die 100 Plätze der kostenlosen<br />

Veranstaltung bereits Tage vor Beginn<br />

ausgebucht. Die „<strong>Pi</strong> and More“ vereint<br />

unterschiedlichste Teilnehmer unter<br />

einem Dach: Lehrer, Informatik-Professoren,<br />

Bastler <strong>und</strong> Hobbyisten, darunter<br />

ein zehnjähriger Junge, der sich das Programmierung<br />

über Tutorials selbst angeeignet<br />

hatte.<br />

Im ersten Vortrag erläuterte Tobias<br />

Hübner, Lehrer am St.-Georg-Gymnasium<br />

in Bocholt, wie er Schüler <strong>für</strong> den<br />

Minicomputer begeisterte. Dazu gründete<br />

der Lehrer mit Kindern einer sechsten<br />

Klasse eine <strong>Raspberry</strong>-<strong>Pi</strong>-AG, die neben<br />

altersgerecht aufbereiteten Inhalten<br />

die technischen Gr<strong>und</strong>lagen vermittelt.<br />

10 www.raspberry-pi-geek.de<br />

05.2013


<strong>Pi</strong> and More 3<br />

Report<br />

Die erste Aufgabe bestand allerdings darin,<br />

mit einem echten Comptometer<br />

herauszufinden, wie dieses auf mechanische<br />

Art <strong>und</strong> Weise Zahlen addiert. Nach<br />

Erläuterungen zum Binärsystem <strong>und</strong> zur<br />

Funktionsweise von Transistoren erfolgte<br />

der Brückenschlag ins Jetzt: Die Kinder<br />

nahmen die Ras<strong>Pi</strong>s in Empfang <strong>und</strong><br />

lernten zunächst anhand von Libre-<br />

Office, wie sie Korrespondenz <strong>und</strong> Büroarbeiten<br />

mit freier Software abwickeln.<br />

Eine R<strong>und</strong>e Mindcraft stimmte die Kinder<br />

auf den nachfolgenden Python-Kurs<br />

ein – sie durften anschließend die Spielewelt<br />

mit eigenen Skripten modifizieren.<br />

Die letzten Wochen der AG drehten<br />

sich um Hardware-Basteleien <strong>und</strong> Physical<br />

Computing. Tobias Hübner stellt die<br />

<strong>für</strong> diese AG erstellten Lehrmaterialien<br />

auf seiner Homepage bereit û.<br />

Screenly <strong>und</strong> KiCAD<br />

Viktor Petersson erzählte beim zweiten<br />

Programmpunkt die Erfolgsgeschichte<br />

von Screenly û: Die Software läuft auf<br />

einem <strong>Pi</strong> <strong>und</strong> stellt gewünschte Informationen<br />

auf einem Monitor dar, wie beispielsweise<br />

Infomercials in einem Kaufhaus.<br />

Das Programm existiert sowohl als<br />

freie Software unter GPLv2-Lizenz sowie<br />

in einer kommerziellen Variante.<br />

Wer mit dem Ras<strong>Pi</strong> bastelt, fängt in<br />

der Regel mit dem Steckbrett an. Wie<br />

überführen Sie aber die gesteckte Schaltung<br />

in eine richtige Platine? Hier<strong>für</strong> erläuterte<br />

Guido Schmitz im dritten Vortrag<br />

die Software KiCAD û. Als Beispielschaltung<br />

verwendete er das Laddergame<br />

û, das sich oft in <strong>Einsteiger</strong>tutorials<br />

<strong>für</strong> den <strong>Pi</strong> wiederfindet. Mit KiCAD<br />

entsteht zunächst ein Schaltplan, anschließend<br />

ein entsprechendes Platinenlayout.<br />

Zum Schluss erfolgt eine interessante<br />

Übersicht, welche Preise den geneigten<br />

Bastler erwarten, wenn er seine<br />

Platine ätzen lassen möchte.<br />

Workshops <strong>und</strong> Open Space<br />

Zwischen den Vorträgen besuchten etliche<br />

Teilnehmer einen der Workshops. Einer<br />

richtete sich an Anfänger: Hier zeigte<br />

ein Helfer <strong>Einsteiger</strong>n, wie sie das Image<br />

1 Verstehen sich bestens: Tux <strong>und</strong> der <strong>Raspberry</strong> <strong>Pi</strong> in allen Varianten.<br />

einer passenden Distribution auf eine<br />

SD-Karte schreiben. Ferner erfuhren die<br />

Neuankömmlinge, welches Zubehör sie<br />

sich zulegen sollten. Ein weiterer Workshop<br />

demonstrierte die Installation von<br />

Minecraft auf dem Minicomputer 2 .<br />

Einige Besucher hatten ihren eigenen<br />

<strong>Raspberry</strong> <strong>Pi</strong> mitgenommen, sodass sie<br />

am Ende der Veranstaltung über eine<br />

lauffähige Installation verfügten. Hier<br />

fanden sich viele derjenigen wieder, die<br />

zuvor schon den Anfänger-Workshop<br />

besucht hatten.<br />

Diejenigen Besucher, die über mehr<br />

Vorkenntnisse verfügten, steuerten in<br />

der Regel stattdessen im Ausstellungsbereich<br />

einen der zahlreichen Tische mit<br />

Hardware-Aufbauten an: Hier demonstrierten<br />

engagierte Bastler ihre <strong>Projekte</strong>.<br />

Eines davon vertiefte Nico Maas in einem<br />

eigenen Vortrag: Beim Sunwell-Projekt<br />

û teilen RGB-Lampen Kellnern eines<br />

Cafés mittels optischer Signale mit,<br />

welcher Tisch als Nächstes seine Bestellung<br />

erhält 3 . Während die Lampen an<br />

sich mit Atmel-Mikrocontrollern realisiert<br />

wurden, übernimmt der <strong>Raspberry</strong><br />

<strong>Pi</strong> das Steuern der Lichter <strong>und</strong> darüber<br />

hinaus die Kommunikation mit dem Kassensystem<br />

des Lokals.<br />

05.2013 www.raspberry-pi-geek.de<br />

11


Report<br />

<strong>Pi</strong> and More 3<br />

Viele Anwender betreiben ihren Ras<strong>Pi</strong><br />

ohne Monitor, um ihn als Heimserver zu<br />

nutzen. Peter Sturm, der die beiden letzten<br />

Vorträge des Tages hielt, ging als Erstes<br />

auf dieses Thema ein: Wie greift man<br />

auf den „kopflosen“ <strong>Raspberry</strong> <strong>Pi</strong> zu, um<br />

die Konfiguration zu ändern? Die erste<br />

Möglichkeit, die sich gemäß einer Handzeichen-Abstimmung<br />

als die gebräuchlichste<br />

unter den Zuhörern herausstellte,<br />

verwendet hier<strong>für</strong> die Ethernet-Schnittstelle.<br />

An diesem Punkt fokussierte das<br />

Gespräch nötige Konfigurationsanpassungen<br />

der Netzwerk-Konfiguration,<br />

<strong>und</strong> dabei unter anderem, wie es gelingt,<br />

dem Device eine feste IP zuzuweisen<br />

<strong>und</strong> wie man mit Nmap den <strong>Pi</strong> mittels<br />

Netzwerkscan findet.<br />

Serieller Zugriff<br />

3 Die Ampel <strong>für</strong> das kleine Bistro an der Ecke. Der Hardware-Aufbau mit RGB-Lampen<br />

kann in Cafés <strong>für</strong> zügigere Bedienung sorgen. Foto: Tobias Hübner, medienistik.de<br />

Im Anschluss wechselte der Vortrag auf<br />

die beim ein oder anderen weniger bekannte<br />

Zugriffsmethode via serieller<br />

Konsole. Hierzu klemmt man zwischen<br />

PC <strong>und</strong> Ras<strong>Pi</strong> einen USB-to-Serial-Adapter,<br />

findet mittels lsusb <strong>und</strong> dmesg heraus,<br />

welches Interface anzusprechen ist,<br />

<strong>und</strong> greift mittels Terminal-Emulator<br />

(etwa Minicom) darauf zu. Nachteil dieser<br />

Methode: Der Adapter blockiert<br />

mehrere PINs des GPIO-Ports, die damit<br />

<strong>für</strong> anderweitige Nutzung ausfallen.<br />

Hinter „<strong>Pi</strong>-Törn“ verbirgt sich ein von der<br />

Nikolaus-Koch-Stiftung gefördertes Projekt,<br />

in dem Schüler Programme <strong>für</strong> einen<br />

<strong>Raspberry</strong> <strong>Pi</strong> schreiben, der die Kontrolle<br />

über ein Segelschiffmodell 4<br />

übernimmt. An Bord befinden sich noch<br />

zwei Servomotoren zum Ansteuern von<br />

Steuerruder <strong>und</strong> Segeln. Hinzu kommen<br />

Sensoren – etwa Infrarot <strong>und</strong> Ultraschall<br />

– deren Werte das Programm auswertet<br />

<strong>und</strong> das Schiff entsprechend steuert.<br />

Die Jugendlichen erhalten als Gr<strong>und</strong>lage<br />

eine Software, mittels derer sie die von<br />

ihnen entworfenen Algorithmen an einem<br />

virtuellen Segelschiff austesten, bevor<br />

diese sich an Bord des echten Bootes<br />

beweisen müssen. Den Simulator, genauso<br />

wie diverse Low-Level-Feinheiten<br />

bei der Hardware-Ansteuerung, haben<br />

Informatik-Studenten umgesetzt; die<br />

Schüler konzentrieren sich ganz auf die<br />

Steuerungslogik ihrer Programme.<br />

2 Selbst Kurzweiliges<br />

fand seinen Platz auf der "<strong>Pi</strong><br />

and More" – zum Beispiel bei<br />

einer R<strong>und</strong>e Minecraft.<br />

4 Mit einem <strong>Raspberry</strong> <strong>Pi</strong><br />

als elektronischem Skipper<br />

sollen 2014 Segelschiffe wie<br />

dieses auf eine Regatta gehen.<br />

12 www.raspberry-pi-geek.de<br />

05.2013


<strong>Pi</strong> and More 3<br />

Report<br />

2014 wird eine Segelregatta stattfinden,<br />

bei der sich die Mini-Schiffe aller teilnehmenden<br />

Schülergruppen miteinander<br />

messen: Dabei gilt es, das eigene Boot<br />

möglichst nahe an ein Ziel zu bringen,<br />

ohne dass es mit anderen Objekten kollidiert<br />

oder gar sinkt. Diverse Firmen, welche<br />

ihr Logo auf die gut sichtbaren Segel<br />

aufdrucken, sollen die Schiffe sponsern.<br />

Der Kostenpunkt liegt bei r<strong>und</strong><br />

600 Euro pro Exemplar.<br />

Sinn des <strong>Projekte</strong>s ist es, Jugendliche<br />

auf eine spielerische Art an Informatik<br />

heran zuführen. Da diese hier keine abstrakten<br />

Programme schreiben, sondern<br />

eine Interaktion des Codes mit der realen<br />

Welt erfolgt, erhoffen sich die Initiatoren<br />

gesteigertes Interesse bei den Jugendlichen.<br />

Schülergruppen können sich<br />

künftig online <strong>für</strong> den „<strong>Pi</strong>-Törn“ bewerben<br />

û. Zum Redaktionsschluss war die<br />

Seite allerdings noch nicht betriebsbereit.<br />

Mehr Jams!<br />

Abends verließen diejenigen Teilnehmer,<br />

die als Heimweg noch eine längere Strecke<br />

vor sich hatten, das Gebäude in<br />

Richtung Parkplatz. Der Rest tauschte<br />

sich wenige Meter davon entfernt beim<br />

Grillen noch weiter aus <strong>und</strong> ließen währenddessen<br />

den Tag mit seinen vielen<br />

Eindrücken Revue passieren.<br />

Dabei drängte sich unweigerlich die<br />

Frage auf, warum nicht noch mehr<br />

deutschsprachige <strong>Raspberry</strong>-<strong>Pi</strong>-Jams<br />

existieren. Sicherlich gibt es b<strong>und</strong>esweit<br />

noch viel mehr als die in Trier erschienenen<br />

100 Teilnehmer, die von so einer<br />

Veranstaltung profitieren würden. Und:<br />

Was schaffen Jugendliche, die mit 10 bis<br />

12 Jahren mit dem Coden <strong>und</strong> Löten anfangen,<br />

wenn sie erst einmal 25 sind?<br />

In die Schulen<br />

Im Prinzip versteht man hier umso mehr,<br />

welches Potenzial im <strong>Raspberry</strong> <strong>Pi</strong> steckt.<br />

Aus dem „Homebrew Computer Club“<br />

im Silicon Valley der 1970er entstanden<br />

später milliardenschwere Unternehmen.<br />

Es bleibt zu hoffen, dass hierzulande einmal<br />

britische Verhältnisse herrschen:<br />

<strong>Raspberry</strong> <strong>Pi</strong>s an jeder Schule <strong>und</strong> aktive<br />

Usergroups <strong>für</strong> die Enthusiasten aller Altersklassen.<br />

(jlu) n<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 30045<br />

Interview: <strong>Pi</strong> and (much) More?<br />

Stellvertretend <strong>für</strong> alle ehrenamtlichen Helfer des Organisationsteams<br />

beantworteten Daniel Fett <strong>und</strong> Christopher Perrin am Rande<br />

der Veranstaltung Fragen zu den Hintergründen von <strong>Pi</strong> and More.<br />

? <strong>Pi</strong> and More findet zum dritten Mal statt. Wie kam es zu der<br />

Idee, einen deutschsprachigen <strong>Raspberry</strong>-<strong>Pi</strong>-Jam zu veranstalten?<br />

! Im Bekanntenkreis redeten wir viel über den Ras<strong>Pi</strong> <strong>und</strong> seine<br />

Möglichkeiten. „Hast du deinen schon bekommen, oder musst du<br />

auch noch warten?“, lautete eine typische Frage. Im Gespräch stellten<br />

wir fest, dass so eine Veranstaltung eine gute Sache wäre.<br />

? In Großbritannien sind <strong>Pi</strong>-Jams schon weit verbreitet. In Deutschland<br />

scheint ihr bisher die einzigen zu sein, die einen veranstalten.<br />

! Es gab einen Briten, der an englischen Schulen in Deutschland<br />

<strong>Raspberry</strong>-<strong>Pi</strong>-Jams veranstaltet hat. Davon abgesehen, sind wir<br />

wohl momentan tatsächlich die einzigen.<br />

? Setzt ihr bei „<strong>Pi</strong> and More“ bestimmte Schwerpunkte – zum Beispiel<br />

Maker-Themen oder Ähnliches?<br />

! Nein, im Prinzip ist die Themenauswahl ausgeglichen. Die ersten<br />

beiden Veranstaltungstermine fielen noch sehr technisch aus. Mittlerweile<br />

haben wir auch ein Angebot <strong>für</strong> diejenigen, die einen Anfänger-Workshop<br />

besuchen wollen oder sich <strong>für</strong> den Bildungseinsatz<br />

des Ras<strong>Pi</strong> interessieren.<br />

? Verfolgt ihr mit der Veranstaltung auch bestimmte Ziele?<br />

! Jeder, der mithilft, hat sicherlich seine persönlichen Ziele. Der<br />

eine lernte in seiner Kindheit viel durch den C-64 <strong>und</strong> möchte deswegen,<br />

dass der Ras<strong>Pi</strong> stärker Eingang in den EDV-Unterricht findet:<br />

An einem kleinen Gerät mit technischen Limits lässt sich sehr viel<br />

technisches Know-how erlangen. Der andere sucht einen Treffpunkt<br />

<strong>für</strong> den Austausch. Übrigens steht das „… and More“ im Veranstaltungstitel<br />

da<strong>für</strong>, dass auch Arduino & Co. willkommen sind.<br />

? Der Eintritt ist kostenlos, die Redner reisen zum Teil aus dem<br />

Ausland an. Wie finanziert ihr das, nutzt ihr Sponsoring?<br />

! Nein, alles geschieht ehrenamtlich. Die Redner kamen, ohne dass<br />

wir ihnen eine Erstattung der Fahrtkosten zusagen konnten.<br />

? Wie sieht die Zukunft aus? Beispielsweise waren die 100 Plätze<br />

der Veranstaltung dieses Mal komplett ausgebucht. Wollt ihr bei<br />

den kommenden Terminen noch weiter wachsen?<br />

! Weiter wachsen wollen wir nur, wenn die Qualität nicht darunter<br />

leidet. So waren die Helfer dieses Mal voll ausgelastet. Bei mehr<br />

Besuchern stellt sich die Frage, wo in der Halle zusätzliche Tische<br />

Platz haben könnten. Denkbar wäre eher, mehrere Tracks anzubieten,<br />

sodass sich die Besucher räumlich etwas verteilen.<br />

Vielen Dank <strong>für</strong> das Interview <strong>und</strong> euch weiterhin viel Erfolg.<br />

05.2013 www.raspberry-pi-geek.de<br />

13


Basics<br />

Ras<strong>Pi</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

Bastelprojekte mit dem <strong>Raspberry</strong> <strong>Pi</strong><br />

Quadratur<br />

der<br />

Himbeere<br />

© Agzu, sxc.hu<br />

Der Einplatinen-PC <strong>Raspberry</strong><br />

<strong>Pi</strong> erweist sich als Multitalent,<br />

das sich gleichermaßen zum<br />

Regeln <strong>und</strong> Steuern sowie<br />

als kleiner Server eignet.<br />

Werner Hein<br />

Readme<br />

Der Einplatinen-Rechner <strong>Raspberry</strong> <strong>Pi</strong>, gerade<br />

mal so groß wie eine Scheckkarte,<br />

schickt sich an, den Linux-Embedded-Bereich<br />

im wahrsten Sinne des Wortes begreifbar<br />

zu machen. Mit seinen vielfältigen<br />

Einsatzmöglichkeiten erobert er nicht nur<br />

den Hobbybereich, sondern glänzt auch bei<br />

semiprofessionellen Anwendungen.<br />

Vor allem, um günstige Computertechnik<br />

in die Hände technisch interessierter<br />

Jugendlicher zu geben, rief in Großbritannien<br />

ein engagiertes Team um den<br />

Ingenieur Eben Upton im Rahmen einer<br />

Stiftung ein Projekt namens <strong>Raspberry</strong> <strong>Pi</strong><br />

ins Leben û. Das erklärte Ziel lautete,<br />

einen scheckkartengroßen Einplatinencomputer<br />

zu entwickeln <strong>und</strong> diesen –<br />

kompatibel zum oft schmalen Taschengeld<br />

der Zielgruppe – auf den Markt zu<br />

bringen (siehe Kasten Historie).<br />

Wen das an die Zeit des Home-Computers<br />

erinnert, der liegt nicht vollkommen<br />

falsch: Die Gründer wünschten sich<br />

ausdrücklich die Wiederbesiedelung von<br />

Hobbyräumen, Jugendkellern <strong>und</strong> Klassenzimmern<br />

im Geiste jener Generation,<br />

die mit Atari 400/​800, ZX80/​81 oder<br />

VC20/​C64 aufgewachsen war.<br />

Eineinhalb Jahre nach dem Erscheinen<br />

der ersten Serie, die r<strong>und</strong> 10 000 Stück<br />

umfasste, <strong>und</strong> bei einem Auslieferungsstand<br />

von weit über einer Million Stück<br />

bietet es sich an, Nachschau zu halten:<br />

Wie weit ist das Projekt gediehen, welche<br />

Möglichkeiten bietet die Hardware,<br />

was geht <strong>und</strong> was (noch) nicht. Dieser<br />

Artikel zeigt anhand von drei Beispielen,<br />

was dieser Winzling vermag.<br />

Einkaufsliste<br />

Ursprünglich hatten die Designer zwei<br />

Modelle A <strong>und</strong> B konzipiert, die sich im<br />

Wesentlichen nur in der Anzahl der USB-<br />

Ports (einer oder zwei), der Verfügbarkeit<br />

eines Ethernet-Ports <strong>und</strong> natürlich<br />

im Preis (25 beziehungsweise ​35 US-Dollar)<br />

unterschieden. Tatsächlich stand anfangs<br />

aber nur Modell B zur Auswahl.<br />

Um den <strong>Raspberry</strong> <strong>Pi</strong>, kurz Ras<strong>Pi</strong>, in<br />

Betrieb zu nehmen, gilt es, eine Einkaufsliste<br />

<strong>für</strong> die Basiskomponenten zusammenzustellen.<br />

Weitere Tipps <strong>für</strong> den<br />

erweiterten Betrieb finden sich im<br />

Netz û. Das eigentliche Board haben<br />

derzeit nur zwei weltweit operierende<br />

Distributoren im Programm û. Waren<br />

im Frühjahr 2012 noch Lieferzeiten von<br />

14 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

Basics<br />

einigen Monaten nicht ungewöhnlich,<br />

so betragen sie heutzutage in der Regel<br />

höchstens wenige Tage.<br />

Neben dem Board benötigen Sie ein<br />

USB-Netzteil nicht unter 700 mA. Möchten<br />

Sie zusätzliche Hardware mitversorgen,<br />

empfiehlt es sich, von mindestens<br />

1 Ampere auszugehen. Als Massenspeicher<br />

brauchen Sie eine SD(HC)-Karte mit<br />

mindestens 2, besser aber 4 GByte Kapazität.<br />

Je nach Einsatzzweck kann auch<br />

das noch nicht ausreichen. Da auf der<br />

SD-Karte das System untergebracht ist,<br />

empfiehlt es sich, eine Karte mit möglichst<br />

hoher Geschwindigkeit beim Lesen<br />

<strong>und</strong> Schreiben zu wählen.<br />

Für den drahtlosen Zugang bietet sich<br />

ein WLAN-Adapter in Form eines USB-<br />

Sticks an. Dieser erweist sich in der Praxis<br />

aber als ein schwer einzuschätzender,<br />

wohl aber signifikanter Stromverbraucher.<br />

Die oberste Priorität gilt aber der<br />

Treiberunterstützung <strong>und</strong> einem schlanken<br />

Design, um den zweiten USB-Port<br />

nicht zu blockieren. Mit Blick auf die wenigen<br />

USB-Ports lohnt es sich, in eine<br />

Funktastatur <strong>und</strong> eine ebenso angeschlossene<br />

Maus zu investieren. Das erspart<br />

zusätzlich dem – meist knapp bemessenen<br />

– USB-Netzteil unnötige Last.<br />

Neben diesen Teilen benötigen Sie<br />

noch, je nach angepeiltem Einsatzzweck,<br />

diverse Kabel wie HDMI oder Ethernet. In<br />

Bezug auf das HDMI-Kabel gilt: je kürzer,<br />

desto besser. Sie haben zwar die Möglichkeit,<br />

bei <strong>Pi</strong>xelfehlern die Leistung der<br />

Leitungstreiber zu erhöhen, aber das<br />

kostet zusätzlichen Strom. Wer Musik hören<br />

will oder Filme schaut, benötigt außerdem<br />

Kopfhörer oder Boxen.<br />

Für das Expansions-Board im Selbstbau<br />

fallen die folgenden Teile an: die ICs<br />

LM75 als Temperatursensor <strong>und</strong> MAX-<br />

3232CPE inklusive vier 0.47µF Elkos als<br />

Pegelwandler <strong>für</strong> die serielle Schnittstelle<br />

(UART), dazu ein 9-poliger D-Sub-Stecker<br />

oder eine Buchse zur Printmontage<br />

sowie das Schnittstellenkabel. Hinzu<br />

kommen zwei LEDs in verschiedener<br />

Farbe, mit jeweils einem 22-Ohm-Vorwiderstand<br />

<strong>und</strong> einem NPN-Kleinsignaltransistor<br />

(etwa BC237) als Treiber sowie<br />

zwei Pullup-Widerstände mit 10 kOhm<br />

<strong>für</strong> den I2C-Bus. Diverses Kleinmaterial,<br />

wie Lochrasterplatte, Steckerleiste,<br />

Flachbandkabel <strong>und</strong> Blockkondensatoren,<br />

dienen als Gr<strong>und</strong>lage.<br />

Erste Schritte<br />

Seit dem Erscheinen des <strong>Raspberry</strong> <strong>Pi</strong><br />

hat sich in Sachen Aufsetzen eines lauffähigen<br />

Systems enorm viel bewegt. Wer<br />

trotzdem auf Schwierigkeiten stößt, dem<br />

sei als Anlaufstelle im Web Elinux.org û<br />

<strong>für</strong> Hilfe <strong>und</strong> Information empfohlen.<br />

Verglichen mit den Anfängen im Frühjahr<br />

2012 erscheint die Installation der in<br />

diesem Workshop eingesetzten, auf Debian<br />

basierenden <strong>und</strong> von der <strong>Raspberry</strong><br />

<strong>Pi</strong> Fo<strong>und</strong>ation empfohlenen Distribution<br />

Raspbian „Wheezy“ û fast von allein,<br />

weil übersichtlich <strong>und</strong> menügeführt.<br />

Laden Sie als Erstes die Image-Datei herunter.<br />

Es handelt sich um ein Systemabbild,<br />

bestehend aus einer etwa 60 MByte<br />

großen Boot-Partition <strong>und</strong> einem Root-<br />

Filesystem mit r<strong>und</strong> 2 GByte. Packen Sie<br />

die Datei aus, <strong>und</strong> spielen Sie sie mit dem<br />

folgenden Befehl auf eine SD-Card auf:<br />

$ sudo dd bs=1M if=2013‐05‐25‐wheU<br />

ezy‐raspbian.img of=SD‐Card‐GerätU<br />

edatei<br />

Nun stecken Sie am <strong>Raspberry</strong> <strong>Pi</strong> SD-<br />

Card, Tastatur, Maus <strong>und</strong> Monitor an <strong>und</strong><br />

Historie<br />

Raspbian „Wheezy“ 2013-05-25<br />

(ISO-Image als ZIP)<br />

RPG/raspbian/<br />

booten durch Einstecken ans USB-Netzteil.<br />

Es erscheint das Konfigurationsmenü,<br />

in dem Sie am besten gleich über<br />

die Menüpunkte configure-keyboard <strong>und</strong><br />

change_locale auf die deutsche Tastatur<br />

<strong>und</strong> Sprache umstellen – ansonsten<br />

kommen Sie spätestens bei der Eingabe<br />

der Login-Daten ins Schleudern. Der voreingestellte<br />

Benutzername lautet pi, das<br />

Passwort raspberry.<br />

Andere sinnvolle Menüpunkte, wie<br />

change_timezone zum Einstellen der<br />

richtigen Zeitzone, ssh zum Aktivieren<br />

des sicheren Zugangs zum Terminal via<br />

Netzwerk sowie expand_rootfs, um das<br />

Root-Filesystem von 2 GByte auf die tat-<br />

Im Jahr 2006 entwickelte Eben Upton mit<br />

einem Team die ersten Konzepte zum<br />

<strong>Raspberry</strong> <strong>Pi</strong>, basierend auf einem Atmel<br />

ATmega. Die Idee, Jugendliche mit dem<br />

Kleinstcomputer zu begeistern, gehörte<br />

bereits damals zum Programm. 2009<br />

gründen die Mitglieder dann offiziell die<br />

<strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation.<br />

Im August 2011 ging eine r<strong>und</strong> 50 Boards<br />

umfassende Alpha-Serie vom Band. Sie<br />

diente in erster Linie als Plattform <strong>für</strong> Entwickler,<br />

zum Debuggen <strong>und</strong> zu Demonstrationszwecken.<br />

Im Dezember 2011<br />

folgte die Beta-Serie mit 25 Boards, die<br />

bereits auf dem Produktionslayout basierten.<br />

Die Entwickler beseitigten jetzt die<br />

letzten Fehler. Bei einer Online-Auktion im<br />

Januar 2012 erzielten 10 Boards aus dieser<br />

Beta-Serie einen Erlös von insgesamt<br />

16 336 Pf<strong>und</strong>, allein das mit der Seriennummer<br />

01 r<strong>und</strong> 3500 Pf<strong>und</strong>.<br />

Am 29. Februar 2012 um 7 Uhr mitteleuropäischer<br />

Zeit gingen zum Verkaufsstart<br />

der ersten 10 000 Serien-Boards die Webserver<br />

der Fo<strong>und</strong>ation sowie der beiden<br />

Distributoren innerhalb weniger Minuten<br />

unter dem Sturm der Anfragen in die Knie.<br />

Erst St<strong>und</strong>en später gelang es vielen, eine<br />

Vorbestellung abzusetzen.<br />

Von da an entwickelte sich der <strong>Raspberry</strong><br />

<strong>Pi</strong> zum Verkaufsschlager. Die Fo<strong>und</strong>ation<br />

verlegte die ursprünglich in China angelaufene<br />

Produktion recht bald in eine<br />

Sony-Fabrik nach Wales. Dort liefen bereits<br />

im April 2013 monatlich r<strong>und</strong> 40 000<br />

Boards vom Band, Tendenz steigend.<br />

05.2013 www.raspberry-pi-geek.de<br />

15


Basics<br />

Ras<strong>Pi</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

1 Zwischen dem TV-Ausgang <strong>und</strong> der<br />

SD-Card finden Sie die Stiftleiste, auf der<br />

die Platine unter anderem die TXD- <strong>und</strong><br />

RXD-Signale einer seriellen Verbindung<br />

bereitstellt.<br />

Serielle Schnittstelle aktivieren<br />

Den <strong>Raspberry</strong> <strong>Pi</strong> mit einer seriellen<br />

Schnittstelle auszustatten, setzt etwas<br />

Bastelarbeit voraus: Die TXD- <strong>und</strong> RXD-<br />

Signale der UART des SoC sind auf die<br />

Stifte 8 <strong>und</strong> 10 der doppelreihigen<br />

Stiftleis te P1 zwischen TV-Ausgang <strong>und</strong><br />

SD-Card-Slot herausgeführt 1 . Allerdings<br />

handelt es sich dabei noch um die Signale<br />

auf dem I/​O-Pegel des SoC mit 3,3 Volt.<br />

Mit einem Pegelwandler verschieben Sie<br />

diese in den genormten RS232-Bereich.<br />

Dazu eignet sich das IC MAX3232CP.<br />

Als Terminalprogramm am stationären<br />

Rechner eignet sich Minicom. Mit dem<br />

sächliche Größe der SD-Card auszuweiten,<br />

kommen je nach Bedarf zum Einsatz.<br />

Am Schluss aktualisieren Sie das<br />

System in Debian-typischer Art:<br />

$ sudo apt‐get update<br />

$ sudo apt‐get upgrade<br />

Sie haben die Möglichkeit, das Tool zum<br />

Konfigurieren mit sudo raspi‐config<br />

später wieder zu starten. Das ergibt aber<br />

nur dann Sinn, wenn Sie keine tiefgreifenden<br />

Änderungen am System an dem<br />

Tool vorbei vorgenommen haben.<br />

Desktop <strong>und</strong> Multimedia<br />

Mit startx gelangen Sie auf den <strong>für</strong><br />

schlanke Systeme optimierten grafischen<br />

Desktop LXDE. Den ultimativen<br />

Test <strong>für</strong> die Hardware stellt das Abspielen<br />

eines HD-Videos dar. Die üb lichen<br />

Abspielprogramme eignen sich dazu<br />

aber nicht, denn die GPU auf dem Board<br />

ist auf das Decodieren von Audio- <strong>und</strong><br />

Video-Daten optimiert. Dementsprechend<br />

benötigen Sie einen Player, der<br />

die Broadcom-eigene Programmbibliothek<br />

(zu finden unter /opt/vc) verwendet.<br />

Das tut derzeit nur das bereits<br />

installierte Kommandozeilenprogramm<br />

omxplayer û.<br />

Falls die Möglichkeit besteht, mounten<br />

Sie einfach das Verzeichnis mit den<br />

Dateien über das Netzwerk. Den schnelleren<br />

Zugang zur Videosammlung bietet<br />

Befehl minicom ‐s nehmen Sie die minimal<br />

notwendigen Einstellungen vor. So<br />

liegt der serielle Anschluss entweder auf<br />

der Gerätedatei / dev/ttySZiffer oder<br />

/dev/ttyUSBZiffer.<br />

Die Datenrate (115 200 bit/​s) <strong>und</strong> das<br />

Datenformat (8N1) sind vorgegeben. Achten<br />

Sie darauf, dass die Software weder<br />

Hardware Flow Control noch Software<br />

Flow Control verwendet. Der Aufruf minicom<br />

‐o verhindert, dass das Programm<br />

beim Start die Sequenzen zum Initialisieren<br />

ausführt, <strong>und</strong> verbindet Sie anschließend<br />

direkt mit der Konsole.<br />

NFS, unkomplizierter geht es per SSHFS.<br />

Die entsprechenden Pakete installieren<br />

Sie wie in Listing 1 gezeigt. Mit dem Befehl<br />

omxplayer Datei starten Sie dann<br />

die Wiedergabe.<br />

Nach einem kurzen Räuspern im Ton<br />

mit entsprechendem Schluckauf im Bild<br />

spielte die Software im Test HD-Video im<br />

Format 720p mit einer Audiospur in 5.1<br />

Dolby-Digital – natürlich auf Zwei-Kanal-<br />

Ton heruntergemischt – ohne Ruckeln<br />

ab. Das war’s dann aber schon mit der<br />

Bedienbarkeit des recht spartanischen<br />

Omxplayers. Immerhin demonstriert das<br />

Programm beeindruckend die Fähigkeit<br />

beim Decodieren von Audio <strong>und</strong> Video,<br />

mehr aber eben auch nicht. Zwei weitere<br />

Wermutstropfen gibt es: Bei der erwähnten<br />

Video-Library handelt es sich<br />

nicht um offene Software, <strong>und</strong> <strong>für</strong> die<br />

Formate MPEG-2 <strong>und</strong> VC-1 müssen Sie<br />

Lizenzen erwerben. Erfreulich niedrig<br />

fällt der Energieverbrauch aus: Selbst<br />

Listing 1<br />

$ sudo apt‐get sshfs<br />

$ sudo adduser pi fuse<br />

$ mkdir myVideos<br />

$ sshfs User@Host:/Verzeichnis<br />

myVideos<br />

Listing 2<br />

ctrl_interface=/var/run/wpa_<br />

supplicant<br />

eapol_version=1<br />

ap_scan=1<br />

network={<br />

ssid="(E)SSID"<br />

scan_ssid=1<br />

proto=WPA (oder RSN <strong>für</strong> WPA2)<br />

key_mgmt=WPA‐PSK<br />

pairwise=TKIP oder CCMP<br />

group=TKIP oder CCMP<br />

psk=“Schlüssel“<br />

}<br />

Listing 3<br />

auto wlan0<br />

iface wlan0 inet dhcp<br />

wpa‐conf /etc/wpa_supplicant/<br />

wpa_supplicant.conf<br />

16 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

Basics<br />

beim rechenintensiven Übertragen übers Netzwerk beträgt<br />

die mittlere Anschlussleistung beim Abspielen des<br />

genannten HD-Videoformats nur 3,8 Watt – also alles im<br />

grünen Bereich. Wesentlich zur Last bei CPU <strong>und</strong> Speicher<br />

tragen die Programme Omxplayer, SSH <strong>und</strong> SSHFS bei,<br />

wobei der Player den größeren Brocken <strong>für</strong> sich beansprucht.<br />

Möchten Sie allerdings HD-Videos mit 1080i oder<br />

1080p abspielen, lohnt es sich, das Netzlaufwerk per NFS<br />

anzuschließen.<br />

Eingebettetes System<br />

Für die zwei folgenden Anwendungsbeispiele genügt es,<br />

den <strong>Raspberry</strong> <strong>Pi</strong> als vernetztes Embedded-System –<br />

ohne Tastatur, Maus oder Monitor, da<strong>für</strong> aber mit LAN/​<br />

WLAN-Zugang – zu verwenden. Bei so einem System haben<br />

Sie die Möglichkeit, die Meldungen beim Start über<br />

ein Terminal an der seriellen Schnittstelle mitzulesen.<br />

Liegt zusätzlich ein Fehler in der Konfiguration des<br />

Netzwerks vor, bleibt nur dieser Weg offen, um sich ins<br />

System einzuloggen <strong>und</strong> den Fehler zu korrigieren. Daher<br />

ist es dringend angeraten, diese Schnittstelle zu aktivieren<br />

(siehe Kasten Serielle Schnittstelle aktivieren). Der Zugang<br />

per SSH übers Netzwerk sollte aber immer die erste<br />

Wahl bleiben, der Zugriff über die serielle Schnittstelle<br />

dient nur als Hintertür <strong>für</strong> den Notfall.<br />

Der nächste Schritt zum Aufbau des Embedded-Systems<br />

stellt das Verbinden mit dem Netzwerk dar, im Beispiel<br />

via WLAN. Die Standardinstallation von Raspbian<br />

enthält bereits die Firmware-Pakete von populären<br />

WLAN-Sticks sowie das Clientprogramm Wpa_supplicant.<br />

Um zu kontrollieren, ob der WLAN-Stick aktiv ist, stecken<br />

Sie die Hardware an <strong>und</strong> suchen nach einer entsprechenden<br />

Meldung des Kernels im Syslog.<br />

Listing 4<br />

ctrl_interface=/var/run/hostapd<br />

ctrl_interface_group=0<br />

driver=nl80211 # je nach Treiberunterstützung<br />

macaddr_acl=0<br />

auth_algs=3<br />

ignore_broadcast_ssid=0<br />

wpa=2 # <strong>für</strong> WPA2 mit PSK<br />

wpa_key_mgmt=WPA‐PSK<br />

rsn_preauth=1<br />

rsn_preauth_interfaces=wlan0<br />

rsn_pairwise=CCMP<br />

wpa_passphrase=Passwort<br />

interface=wlan0<br />

hw_mode=g<br />

channel=11 # freier oder schwacher Funkkanal<br />

ssid=(E)SSID<br />

05.2013 17


Basics<br />

Ras<strong>Pi</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

Blick ins Web bei der Recherche nach geeigneter<br />

Hardware û. Im zweiten Schritt<br />

konfigurieren Sie dann das Weiterleiten<br />

der Pakete zwischen den beiden Schnittstellen.<br />

Die Installation der notwendigen<br />

Pakete erledigen Sie mit<br />

$ sudo apt‐get install hostapd brU<br />

idge‐utils<br />

Das Konfigurieren des WLAN Access<br />

Points erfolgt in drei Schritten: Zuerst<br />

tragen Sie in /etc/default/hostap die<br />

folgende Zeile ein:<br />

DAEMON_CONF=/etc/hostapd/hostapd.U<br />

conf<br />

2 Der <strong>Raspberry</strong> <strong>Pi</strong> beim Betrieb als Access Point mit lediglich 3,5 Watt Stromverbrauch.<br />

Technische Daten<br />

Komponente Typ<br />

SoC<br />

Broadcom BCM2835<br />

(System on Chip)<br />

CPU<br />

ARM1176JZF-S, 700 MHz<br />

GPU<br />

Broadcom VideoCore IV<br />

(OpenGL ES 2.0,<br />

OpenVG, 1080p30, H.264<br />

high-profile encode/​decode)<br />

RAM<br />

256 MByte SDRAM<br />

Ports<br />

USB 2 x USB 2.0<br />

Ethernet 1 x 10/​100 Mbit/​s<br />

SD/​MMC 1 x Slot<br />

Audio 1 x Stereo Analog out<br />

Video<br />

1 x Composite out, 1 x<br />

HDMI out<br />

Nun steht nur noch das Einrichten von<br />

Wpa_supplicant <strong>für</strong> den Zugriff auf einen<br />

Access Point an. Im einfachsten Fall,<br />

also in einem Netzwerk mit DHCP-Server<br />

im Router, besorgen Sie sich die wesentlichen<br />

Basisdaten aus dem Report von<br />

iwlist scanning. Dann passen die Konfigurationsdatei<br />

/etc/wpa_supplicant/<br />

wpa_supplicant.conf entsprechend Listing<br />

2 <strong>und</strong> /etc/network/interfaces<br />

entsprechend Listing 3 an. Schließlich<br />

nehmen Sie die Verbindung mittels sudo<br />

ifup wlan0 in Betrieb.<br />

Energieeffizienz<br />

Es geht aber auch anders herum: Der<br />

<strong>Raspberry</strong> <strong>Pi</strong> kann selbst als Access Point<br />

dienen 2 . Dabei leitet er den kompletten<br />

Funkverkehr über den WLAN-Stick<br />

direkt an den LAN-Port weiter – quasi als<br />

Brücke. Deshalb heißt diese Arbeitsweise<br />

„bridged mode“. So vergrößern Sie die<br />

Reichweite eines Netzwerks.<br />

Die Konfiguration teilt sich in zwei<br />

Schritte. Im ersten stellen Sie den unmittelbaren<br />

WLAN-Zugang über den<br />

Daemon hostapd bereit. Allerdings sei<br />

darauf hingewiesen, dass Hostapd nicht<br />

uneingeschränkt mit allen WLAN-Sticks<br />

zusammenarbeitet. Im Zweifel hilft ein<br />

Dann erhält die Datei /etc/hostapd/<br />

hostapd.conf den Inhalt aus Listing 4,<br />

den Sie gegebenenfalls an die lokalen<br />

Verhältnisse anpassen. Eine Beispielkonfiguration<br />

<strong>für</strong> die Datei /etc/network/<br />

interfaces finden Sie in Listing 5. Das<br />

Listing 6 zeigt, wie Sie Access Point <strong>und</strong><br />

Netzwerkbrücke starten.<br />

Der Stromverbrauch ist natürlich bei<br />

LAN-Betrieb am geringsten. Aber auch<br />

beim Einsatz im WLAN – unabhängig, ob<br />

als Client oder Access Point, aber abhängig<br />

von der Entfernung zwischen den<br />

Funkpartnern <strong>und</strong> dem übertragenen<br />

Datenvolumen – schwankte der Verbrauch<br />

im Test beim WLAN-Betrieb zwischen<br />

3,3 <strong>und</strong> 3,8 Watt, beim LAN-Betrieb<br />

lag er bei 2,9 Watt. Waren beide<br />

Schnittstellen aktiv, lag der Wert zwischen<br />

3,5 <strong>und</strong> 4 Watt.<br />

Steuern<br />

Neben dem Einsatz als flexibler Access<br />

Point eignet sich der <strong>Raspberry</strong> <strong>Pi</strong> ausgezeichnet<br />

als einfacher Prozessrechner. Im<br />

folgenden Beispiel misst er zyklisch die<br />

Temperatur der Umgebung über einen<br />

Sensor <strong>und</strong> signalisiert das Ergebnis abhängig<br />

vom Wert optisch über zwei<br />

LEDs. Über 25 Grad Celsius leuchtet die<br />

rote LED, unter 22 Grad Celsius die grüne,<br />

im Bereich dazwischen beide 3 .<br />

Als Temperatursensor kommt der weit<br />

verbreitete Baustein LM75 zum Einsatz,<br />

den Sie über den I2C-Bus anschließen.<br />

18 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

Basics<br />

Die beiden LEDs steuert der Rechner<br />

über zwei GPIO-<strong>Pi</strong>ns <strong>und</strong> eine Transistorstufe<br />

an. Die elektronische Schaltung gestaltet<br />

sich recht einfach – bei Bedarf finden<br />

Sie im Web eine Vorlage zu diesem<br />

Thema. Tatsächlich verfügt das SoC über<br />

zwei Master-Schnittstellen am I2C-Bus,<br />

deren Output sich im Syslog wiederfindet.<br />

Auf der Stiftleiste (P1-03 <strong>und</strong> P1-05)<br />

steht jedoch nur eine der beiden bereit –<br />

die mit der Bus-ID 0. Sie aktivieren den<br />

I2C-Bus durch Laden der beiden Treiber<br />

i2c‐bcm2708 <strong>und</strong> i2c‐dev.<br />

Treiber laden<br />

Dazu entfernen Sie Ersteren aus der Liste<br />

der nicht zu ladenden Treiber in /etc/<br />

modprobe.d/raspi‐blacklist.conf.<br />

Den zweiten Treiber, der die Schnittstelle<br />

im Geräteverzeichnis /dev anlegt, tragen<br />

Sie in /etc/modules ein. Spätestens<br />

beim nächsten Neustart ist der Bus aktiv.<br />

Ohne Neustart geht es mit<br />

3 Der <strong>Pi</strong> mit Expansions-Board als Temperaturwächter – hier bei einer Temperatur von<br />

unter 22 Grad Celsius. Das Sensor-IC LM75 ragt an vier Drähten über das Board hinaus.<br />

Bei dem DIL-IC mit 16 <strong>Pi</strong>ns handelt es sich um den RS232-Pegelwandler MAX3232CPE.<br />

modprobe i2c‐bcm2708 i2c‐dev<br />

Damit Sie die Möglichkeit haben, als<br />

normaler User am I2C-Bus Transaktionen<br />

vorzunehmen, gilt es, noch die zugehörigen<br />

Werkzeuge zu installieren <strong>und</strong> die<br />

Rechte <strong>für</strong> die Gruppen zu setzen:<br />

$ sudo apt‐get install i2c‐tools<br />

$ sudo addgroup pi i2c<br />

An welchen Adressen Sie die Bausteine<br />

finden, erfahren Sie durch die Werte in<br />

der Ausgabe von i2cdetect ‐y 0. Je<br />

nachdem, wie Sie die drei Adress-<strong>Pi</strong>ns<br />

des LM75 angeschlossen haben, taucht<br />

in der Ausgabe genau ein Wert im hexadezimalen<br />

Zahlenbereich 0x48 bis 0x4F<br />

auf. Das 2-Byte-Temperaturwort des<br />

Der Autor<br />

Werner Hein beschäftigt sich seit 1994<br />

hobbymäßig mit Linux <strong>und</strong> seit 1997 professionell<br />

mit der Mobiltelefonie <strong>und</strong> damit<br />

auch mit Embedded Systems. Für diesen<br />

Artikel nahm er zum ersten Mal seit<br />

längerer Zeit wieder selbst den Lötkolben<br />

in die Hand.<br />

LM75 lesen Sie dann an der Registeradresse<br />

0 mit dem folgenden Befehl auf<br />

der Kommandozeile aus:<br />

$ i2cget ‐y 0 I2C‐Busaddresse RegU<br />

isteradresse w<br />

Beim Umwandeln des kryptischen Rückgabewerts<br />

(Beispiel: 0x8015) in den entsprechenden<br />

Temperaturwert hilft dann<br />

das Datenblatt des Bausteins.<br />

Als Software-Umgebung <strong>für</strong> den Prozessrechner<br />

eignet sich Python, da <strong>für</strong><br />

den <strong>Raspberry</strong> <strong>Pi</strong> bereits Klassenbibliotheken<br />

<strong>für</strong> den Zugriff auf den I2C-Bus<br />

<strong>und</strong> die GPIO-<strong>Pi</strong>ns existieren. Darüber<br />

hinaus handelt es sich bei Python um<br />

eine weit verbreitete Programmiersprache<br />

mit einer großen Community. Für<br />

dieses Beispiel kamen zwei Bibliotheken<br />

zum Einsatz û. Listing 7 zeigt die Installation<br />

der Pakete <strong>und</strong> der Bibliotheken.<br />

Das eigentliche Programm fällt sehr<br />

einfach aus (Listing 8): In einem Zyklus<br />

von fünf Sek<strong>und</strong>en liest es den Sensorwert<br />

aus (Zeile 15) <strong>und</strong> wandelt diesen<br />

in den Temperaturwert um (Zeile 16).<br />

Anschließend schaltet es die beiden<br />

LEDs entsprechend.<br />

Listing 5<br />

auto wlan0<br />

iface wlan0 inet static<br />

address 192.168.128.1<br />

netmask 255.255.255.0<br />

broadcast 192.168.128.255<br />

Listing 6<br />

$ sudo service hostapd start<br />

$ sudo brctl addbr myBridge<br />

$ sudo brctl addif myBridge eth0<br />

$ sudo brctl addif myBridge wlan0<br />

$ sudo ifconfig myBridge up<br />

05.2013 www.raspberry-pi-geek.de<br />

19


Basics<br />

Ras<strong>Pi</strong> <strong>für</strong> <strong>Einsteiger</strong><br />

Etwas verwirrend fällt die unterschiedliche<br />

Bezeichnung der GPIO-<strong>Pi</strong>ns aus. So<br />

sind die rote <strong>und</strong> die grüne LED laut<br />

Stiftleistenbild an GPIO23/​GPIO24, aber<br />

auch an P1-16/​P1-18 angeschlossen. Die<br />

erste Bezeichnung entspricht der BCM-<br />

2835-Dokumentation <strong>und</strong> den Werten<br />

aus dem Kernel. Die Python-Bibliotheken<br />

halten sich an die zweite.<br />

Versehen Sie das Skript mit entsprechenden<br />

Rechten zum Ausführen. Nach<br />

dem Start gibt es laufend, mit jedem Aktualisieren<br />

der LEDs, die gemessenen<br />

Werte auf der Konsole aus.<br />

Fazit<br />

Der Einsatz als energiesparender PC im<br />

Multimedia-Einsatz wurde dem Winzling<br />

praktisch in die Wiege gelegt, eindeutig<br />

ist die Positionierung im Embedded-Bereich.<br />

Die Hardware eignet sich bestens<br />

als Server, Prozessrechner oder zum<br />

Steuern <strong>für</strong> nicht zu leistungshungrige<br />

Aufgaben im Hobbybereich.<br />

Die Ausstattung genügt, um die notwendige<br />

Peripherie anzuschließen, <strong>und</strong><br />

die Stiftleiste fordert geradezu dazu auf,<br />

sich zusätzliche Funktionen nach eigenen<br />

Bedürfnissen zusammenzustellen.<br />

Auch gibt es vernünftig abgestimmte<br />

Linux-Distributionen, die dem <strong>Einsteiger</strong><br />

die ersten Schritte erleichtern.<br />

Das ursprüngliche Ziel, Computertechnik<br />

<strong>für</strong> Interessierte – vor allem Jugendliche<br />

– (be-)greifbar zu machen,<br />

haben die Entwickler jedenfalls erreicht.<br />

Der nächste Schujahr lässt nicht lange<br />

auf sich warten, die Teile wollen rechtzeitig<br />

bestellt sein. Für das nächste Projekt<br />

im Hobbykeller oder EDV-Unterricht, bei<br />

dem mal was blinkt, rattert oder sich bewegt,<br />

kann man den <strong>Raspberry</strong> <strong>Pi</strong> nur<br />

wärmstens empfehlen. (agr). n<br />

Listing 8<br />

Listing 7<br />

$ sudo apt‐get install<br />

git python3 python‐pip<br />

python‐virtualenv<br />

$ git clone https://github.com/<br />

quick2wire/quick2wire‐gpio‐admin.<br />

git<br />

$ git clone https://github.com/<br />

quick2wire/quick2wire‐python‐api.<br />

git<br />

$ cd quick2wire‐gpio‐admin<br />

$ make<br />

$ sudo make install<br />

$ sudo adduser pi gpio<br />

$ virtualenv TEMPCONTROL<br />

$ source TEMPCONTROL/bin/activate<br />

$ cd quick2wire‐python‐api<br />

$ sudo python3 setup.py install<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29846<br />

01 #!/usr/bin/env python3<br />

02 import quick2wire.i2c as i2c<br />

03 import time<br />

04 from quick2wire.gpio import <strong>Pi</strong>n, exported<br />

05 <br />

06 busaddr = 0x48<br />

07 regaddr = 0x00<br />

08 redLED = <strong>Pi</strong>n(16, <strong>Pi</strong>n.Out)<br />

09 greenLED = <strong>Pi</strong>n(18, <strong>Pi</strong>n.Out)<br />

10 <br />

11 with exported(<strong>Pi</strong>n(16, <strong>Pi</strong>n.Out)) as redLED, \<br />

12 exported(<strong>Pi</strong>n(18, <strong>Pi</strong>n.Out)) as greenLED, \<br />

13 i2c.I2CMaster() as bus:<br />

14 while True:<br />

15 temp_hib, temp_lob = bus.transaction(i2c.writing_bytes(busaddr,<br />

regaddr),i2c.reading(address, 2))[0]<br />

16 temp = (temp_hib > 7) / 2.<br />

17 if temp > 25:<br />

18 redLED.value = 1<br />

19 greenLED.value = 0<br />

20 elif temp < 22:<br />

21 redLED.value = 0<br />

22 greenLED.value = 1<br />

23 else:<br />

24 redLED.value = 1<br />

25 greenLED.value = 1<br />

26 print ("%02.01f" % temp)<br />

27 redLED.value = 0<br />

28 greenLED.value = 0<br />

29 time.sleep(5)<br />

20 www.raspberry-pi-geek.de<br />

05.2013


Basics<br />

Remote Access via SSH<br />

Headless-Konfiguration <strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong><br />

Kopflos<br />

© konstantynov, 123RF<br />

Mit dem schönen Wort „headless“ bezeichnet man auf Neuhochdeutsch den Einsatz eines<br />

Ras<strong>Pi</strong> ohne Tastatur <strong>und</strong> Monitor. Dabei hilft das vielseitige Paket OpenSSH. Ruth Suehle<br />

Readme<br />

Mit den hier vorgestellten Werkzeugen aus<br />

der SSH-Familie verwalten Sie Ihren <strong>Raspberry</strong><br />

<strong>Pi</strong> problemlos aus der Ferne <strong>und</strong> ersparen<br />

sich dadurch die Anschaffung eines<br />

zusätzlichen Monitors <strong>und</strong> einer Tastatur.<br />

Der Konfigurationsaufwand <strong>für</strong> eine solche<br />

Headless-Lösung hält sich in erfreulich<br />

überschaubaren Grenzen.<br />

Zahlreiche <strong>Projekte</strong> <strong>für</strong> den <strong>Raspberry</strong><br />

<strong>Pi</strong> setzen einen „Headless“-Betrieb<br />

voraus, bei dem der Minirechner ohne<br />

Moni tor, Tastatur <strong>und</strong> Maus läuft. Oft<br />

zwingen schon Platzgründe dazu, denn<br />

<strong>für</strong> viele Verwendungszwecke prädestinieren<br />

den Ras<strong>Pi</strong> gerade seine geringen<br />

Abmaße. Als angenehmer Nebeneffekt<br />

bleibt der Low-Cost-Rechner im Headless-Betrieb<br />

auch ein solcher – <strong>für</strong> Tastatur,<br />

Maus <strong>und</strong> Monitor kommen schnell<br />

150 Euro oder mehr zusammen. Egal,<br />

aus welchem Gr<strong>und</strong> Sie den Ras<strong>Pi</strong> headless<br />

betreiben wollen: Für den Zugriff<br />

auf das Gerät müssen Sie in einem solchen<br />

Szenario eine Verbindung via<br />

Secure Shell (SSH) aufbauen û.<br />

SSH bietet einen sicheren, weil verschlüsselten<br />

Weg, um sich auf einem<br />

entfernten Rechner anzumelden. Das<br />

Pake t OpenSSH, das praktisch jede<br />

Linux-Distribution in ihren Repositories<br />

führt, umfasst einen ganzen Werkzeugkasten<br />

an entsprechenden Tools, die ursprünglich<br />

vom OpenBSD-Projekt entwickelt<br />

wurden. SSH übernimmt dabei die<br />

Rolle von Telnet oder Rlogin, Secure<br />

Copy (scp) ersetzt Remote Copy (rcp),<br />

Secure FTP (sftp) das unsichere FTP<br />

(ftp) <strong>und</strong> Ähnliches mehr.<br />

Verwenden Sie auf dem Ras<strong>Pi</strong> eine<br />

halbwegs aktuelle Distribution wie beispielsweise<br />

Raspbian „Wheezy“, steht<br />

SSH bereits einsatzfertig parat. Auf älte-<br />

22 www.raspberry-pi-geek.de<br />

05.2013


Remote Access via SSH<br />

Basics<br />

ren Versionen war es dagegen in der<br />

Vorgabe deaktiviert. Haben Sie noch Tastatur<br />

<strong>und</strong> Monitor am <strong>Raspberry</strong> <strong>Pi</strong> hängen,<br />

prüfen Sie mit dem Befehl service<br />

sshd status recht einfach, ob der SSH-<br />

Daemon bereits läuft. Falls ja, erhalten<br />

Sie eine Ausgabe wie in Listing 1.<br />

Um den Dienst gegebenenfalls zu installieren,<br />

benutzen Sie den Paketmanager<br />

der verwendeten Ras<strong>Pi</strong>-Distribution.<br />

Die entsprechenden Befehle <strong>für</strong> Raspbian<br />

<strong>und</strong> <strong>Pi</strong>dora zeigt das Listing 2. Nach<br />

dem Einrichten starten Sie den Daemon<br />

mittels des Befehls sudo sshd start.<br />

IP-Adresse finden<br />

Um Verbindung zum <strong>Raspberry</strong> <strong>Pi</strong> aufnehmen<br />

zu können, müssen Sie dessen<br />

IP-Adresse kennen – kein Problem, solange<br />

Sie ihn noch mit Tastatur <strong>und</strong><br />

Monitor betreiben: Dann genügt ein<br />

schlichtes ip addr auf der Kommandozeile,<br />

um die Adresse herauszufinden.<br />

Was aber, wenn der H<strong>und</strong> das HDMI-Kabel<br />

gefressen hat?<br />

In diesem Fall verbinden Sie den <strong>Raspberry</strong><br />

<strong>Pi</strong> mit dem Netzwerk <strong>und</strong> stecken<br />

dann die Stromversorgung ein, um ihn<br />

zu booten. Das geht headless allerdings<br />

auch nicht schneller als mit Tastatur <strong>und</strong><br />

Monitor, nur sehen Sie diesmal nicht,<br />

was gerade vorgeht. Immerhin vermitteln<br />

Ihnen aber die Status-LEDs des Ras-<br />

<strong>Pi</strong> (siehe Tabelle Funktion der Status-<br />

LEDs) einen guten Eindruck davon, wie<br />

reibungslos der Vorgang abläuft. Bleiben<br />

einzelne LEDs dunkel, müssen Sie die<br />

entsprechende Fehlerquelle erst beseitigen,<br />

bevor Sie weitermachen können.<br />

Hat der Minirechner erst einmal gebootet,<br />

finden Sie über das Verwaltungsinterface<br />

des Routers in Ihrem Netzwerk<br />

die Adresse des <strong>Raspberry</strong> <strong>Pi</strong> schnell<br />

heraus. Suchen Sie dort nach einem<br />

Gerät namens raspi oder raspberrypi,<br />

<strong>und</strong> notieren Sie dessen IP. Hilft gar<br />

nichts anderes weiter, müssen Sie<br />

schweres Geschütz in Form des Netzwerkscanners<br />

Nmap û auffahren. Wie<br />

das funktioniert, lesen Sie bei Bedarf im<br />

Kasten Ras<strong>Pi</strong> -Jagd per Nmap nach. Dieser<br />

Overkill dürfte aber nur in absoluten<br />

Ausnahmefall notwendig werden.<br />

Verbindungsaufnahme<br />

Sobald Sie die IP-Adresse des <strong>Raspberry</strong><br />

<strong>Pi</strong> kennen, nehmen Sie mithilfe des Befehls<br />

ssh user@IP Kontakt zu ihm auf.<br />

Als Benutzername user verwenden Sie<br />

entweder einen Account, den Sie da<strong>für</strong><br />

eigens auf dem Ras<strong>Pi</strong> eingerichtet haben,<br />

oder das bereits vorhandene Standard-Benutzerkonto<br />

der auf dem <strong>Pi</strong> eingesetzten<br />

Distribution. Die Tabelle Standard-Benutzerkonten<br />

führt die entsprechenden<br />

Logins <strong>und</strong> Passwörter <strong>für</strong> die<br />

gängigsten Varianten auf. Verwenden<br />

Sie auf dem Ras<strong>Pi</strong> eine dort nicht aufgeführte<br />

Distribution, hilft eventuell eine<br />

ähnliche Tabelle bei Elinux.org weiter û.<br />

In den folgenden Beispielen verwenden<br />

wir durchgängig 192.168.0.115 als<br />

IP <strong>und</strong> fedora als Benutzerkonto. Diese<br />

müssen Sie jeweils durch die <strong>für</strong> Ihre Installation<br />

gültigen Werte ersetzen.<br />

Melden Sie sich das erste Mal auf einer<br />

entfernten Maschine an, prüft Ihr Client<br />

die Datei .rhosts dahingehend, ob es<br />

sich um einen bereits bekannten Rechner<br />

handelt. Dies soll sicherstellen, dass<br />

Sie sich auch mit dem richtigen Rechner<br />

Funktion der Status-LEDs<br />

Nummer Aufschrift Farbe Funktion<br />

D5 ACT Grün Zugriff auf SD-Karte<br />

D6 PWR Rot Betriebsspannung<br />

D7 FDX Grün Netzwerk (Full Duplex)<br />

D8 LNK Grün Netzwerk (Verbindung/​Aktivität)<br />

D9 100 Gelb 100-Mbit/​s-LAN<br />

Bei den ersten Ras<strong>Pi</strong>s (Rev 1.0) sind D5 <strong>und</strong> D9 abweichend beschriftet.<br />

Listing 1<br />

$ service sshd status<br />

Redirecting to /bin/systemctl status sshd.service<br />

sshd.service ‐ OpenSSH server daemon<br />

Loaded: loaded (/usr/lib/systemd/system/sshd.service;<br />

enabled)<br />

Active: active (running) since Wed 2013‐02‐13 13:06:40 EST;<br />

28min ago<br />

Process: 273 ExecStartPre=/usr/sbin/sshd‐keygen (code=exited,<br />

status=0/SUCCESS)<br />

Main PID: 280 (sshd)<br />

CGroup: name=systemd:/system/sshd.service<br />

280 /usr/sbin/sshd ‐D<br />

05.2013 www.raspberry-pi-geek.de<br />

23


Basics<br />

Remote Access via SSH<br />

verbinden. Ist der Rechner dagegen bislang<br />

unbekannt, generiert SSH <strong>für</strong> diesen<br />

einen Schlüssel, an dem es ihn in Zukunft<br />

erkennen kann. Außerdem fragt es<br />

sicherheitshalber noch einmal nach, ob<br />

Sie auch wirklich Kontakt aufnehmen<br />

wollen. Bejahen Sie das, beginnt die eigentliche<br />

Anmeldeprozedur. Ein Beispiel<br />

dieses Ablaufs zeigt Listing 3.<br />

vor dem Eintrag <strong>und</strong> ändern das yes hinter<br />

dem Schlüsselwort in ein no 1 .<br />

Alle Benutzer, die via SSH auf den<br />

Rasp berry <strong>Pi</strong> zugreifen dürfen, tragen Sie<br />

nun mit in die Datei ein. Dazu ergänzen<br />

Sie am Dateiende eine Zeile mit einer Liste<br />

der entsprechenden Benutzerkonten:<br />

AllowUsers hinz kunz<br />

Root loswerden<br />

Nach der Anmeldung auf einem Ras<strong>Pi</strong>-<br />

System, das lediglich über einen Root-<br />

Account verfügt, sollten Sie aus Sicherheitsgründen<br />

als Erstes <strong>für</strong> künftige Anmeldungen<br />

ein normales Benutzerkonto<br />

anlegen. (Wie das funktioniert, beschreibt<br />

ein eigener Artikel ab Seite 28<br />

in diesem Heft.) Als Nächstes unterbinden<br />

Sie dann künftige SSH-Logins durch<br />

root. Dazu tippen Sie:<br />

$ vi /etc/ssh/sshd_config<br />

Der Editor Vi startet nun mit der Konfigurationsdatei<br />

<strong>für</strong> SSH, in der Sie die Zeile<br />

# PermitRootLogin yes suchen. Hier<br />

entfernen Sie das Kommentarzeichen #<br />

Damit die Änderungen greifen, starten<br />

Sie anschließend den SSH-Daemon mittels<br />

des Befehls service sshd restart<br />

neu. Zu guter Letzt beenden Sie die laufende<br />

SSH-Session mit exit <strong>und</strong> können<br />

sich anschließend als einer der neu eingetragenen<br />

Benutzer wieder anmelden.<br />

Distribution konfigurieren<br />

Läuft auf dem Ras<strong>Pi</strong> <strong>Pi</strong>dora, dann startet<br />

dieses bei der ersten Benutzung normalerweise<br />

ein Konfigurationsskript, in<br />

dem Sie unter anderem ein Root-Passwort<br />

festlegen <strong>und</strong> ein Benutzerkonto<br />

einrichten können. Allerdings startet<br />

dieses Skript nur, wenn das Betriebssystem<br />

das Vorhandensein von Eingabegeräten<br />

feststellt. Booten Sie <strong>Pi</strong>dora head-<br />

Listing 2<br />

$ sudo nmap 192.168.0.0/24<br />

...<br />

Nmap scan report for<br />

192.168.0.115<br />

Host is up (0.0074s latency).<br />

Not shown: 999 closed ports<br />

PORT STATE SERVICE<br />

22/tcp open ssh<br />

MAC Address: B4:23:BF:DF:29:55<br />

(<strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation)<br />

...<br />

Standard-Benutzerkonten<br />

Distribution Benutzer Passwort<br />

Arch Linux root root<br />

ARM<br />

OpenELEC root openelec<br />

<strong>Pi</strong>dora root raspberrypi<br />

Raspbian<br />

Wheezy <strong>und</strong><br />

Derivate<br />

pi raspberry<br />

Listing 3<br />

$ ssh fedora@192.168.0.115<br />

The authenticity of host '192.168.0.115 (192.168.0.115)' can't be<br />

established.<br />

RSA key fingerprint is 83:d7:be:fe:5e:91:98:90:ff:eb:87:0b:88:d2:e9:e9.<br />

Are you sure you want to continue connecting (yes/no)? yes<br />

Warning: Permanently added '192.168.0.115' (RSA) to the list of known<br />

hosts.<br />

fedora@192.168.0.115's password:<br />

24 www.raspberry-pi-geek.de<br />

05.2013


Remote Access via SSH<br />

Basics<br />

less, konfiguriert es lediglich via DHCP<br />

die Netzwerkschnittstelle des Ras<strong>Pi</strong>, sodass<br />

Sie sich zumindest per SSH anmelden<br />

<strong>und</strong> dann die Konfiguration modifizieren<br />

können.<br />

Booten Sie einen unter Raspbian<br />

„Wheezy“ laufenden <strong>Raspberry</strong> <strong>Pi</strong> das<br />

erste Mal im Headless-Modus, dann erscheint<br />

eine Meldung, die Sie zum Start<br />

des Konfigurationstools Raspi-Config<br />

auffordert. Bei einer lokalen Erstanmeldung<br />

startet dieses Skript automatisch,<br />

bei einer SSH-Verbindung müssen Sie es<br />

selbst aufrufen.<br />

Schlüssel generieren<br />

Wahrscheinlich haben Sie schon einmal<br />

Public-Key-Verschlüsselung genutzt, beispielsweise<br />

<strong>für</strong> E-Mails. Sie benötigen<br />

dazu einerseits einen öffentlichen Key<br />

zum Verschlüsseln <strong>und</strong> andererseits einen<br />

privaten Key zum Entschlüsseln. Dabei<br />

dient der öffentliche Schlüssel quasi<br />

als Schloss, das sich mit dem privaten<br />

Schlüssel wieder öffnen lässt. Um die<br />

Sicherheit zu erhöhen, sollten Sie den<br />

privaten Schlüssel beim Erzeugen stets<br />

mit einer Passphrase absichern.<br />

Dieser Mechanismus lässt sich auch <strong>für</strong><br />

SSH-Verbindungen einsetzen, wo er neben<br />

der Sicherheit auch den Komfort erhöht,<br />

indem er die Passworteingabe<br />

überflüssig macht. Dabei können Sie <strong>für</strong><br />

Benutzerkonten auf verschiedenen Maschinen<br />

auch unterschiedliche Schlüsselpaare<br />

generieren.<br />

Zunächst einmal erstellen Sie mithilfe<br />

des Befehls ssh‐keygen ein neues<br />

Schlüsselpaar. Das Tool fragt Sie zunächst<br />

nach einem Verzeichnis, in dem<br />

es die Schlüssel ablegen soll, sowie nach<br />

einer Passphrase (Listing 4). Letztere darf<br />

neben Buchstaben <strong>und</strong> Leerzeichen<br />

auch Sonderzeichen umfassen û. Den<br />

frisch erzeugten Public Key kopieren Sie<br />

nun auf den Ras<strong>Pi</strong>:<br />

$ ssh‐copy‐id fedora@192.168.0.115<br />

Anschließend melden Sie sich per SSH<br />

auf dem <strong>Raspberry</strong> <strong>Pi</strong> an – diesmal blitzschnell<br />

<strong>und</strong> ohne zusätzliche Angabe<br />

eines Passworts – <strong>und</strong> prüfen, ob in der<br />

Datei ~/.ssh/authorized_keys nicht<br />

etwa außer dem neu generierten Key<br />

auch andere, so nicht beabsichtigte<br />

Schlüssel lagern.<br />

1 In der Datei sshd_config setzen Sie<br />

den Eintrag PermitRootLogin auf den<br />

Wert no, um Root künftig auszusperren.<br />

Listing 4<br />

$ ssh‐keygen<br />

Generating public/private rsa key pair.<br />

Enter file in which to save the key (/home/fedora/.ssh/id_rsa):<br />

[Eingabe]<br />

Created directory '/home/fedora/.ssh'.<br />

Enter passphrase (empty for no passphrase): Meine_Neue_Passphrase<br />

Enter same passphrase again: Meine_Neue_Passphrase<br />

Your identification has been saved in /home/fedora/.ssh/id_rsa.<br />

Your public key has been saved in /home/fedora/.ssh/id_rsa.pub.<br />

The key fingerprint is:<br />

3f:9e:8d:65:1b:0f:45:f7:22:a7:69:b3:c4:4d:8d:de fedora@raspi.local<br />

The key's randomart image is:<br />

+‐‐[ RSA 2048]‐‐‐‐+<br />

| |<br />

| |<br />

| . .|<br />

| . +.|<br />

| S . * o|<br />

| . . X o |<br />

| o % o E|<br />

| . X B |<br />

| + + . |<br />

+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+<br />

Ras<strong>Pi</strong>-Jagd per Nmap<br />

Der Netzwerkscanner Nmap spürt zuverlässig<br />

jedes Gerät im Netzwerk auf <strong>und</strong><br />

liefert bei Bedarf eine Fülle von Zusatzinformationen<br />

dazu. Auf einem Linux-<br />

Clie nt richten Sie ihn ein, indem Sie das<br />

Paket nmap über den Paketmanager des<br />

Systems installieren, unter Debian <strong>und</strong><br />

dessen Derivaten beispielsweise mittels<br />

sudo apt‐get install nmap.<br />

Um alle Geräte im Netzwerk aufzuspüren,<br />

verwenden Sie den Befehl sudo nmap<br />

192.168.0.0/24, wobei Sie 192.168.0.0<br />

durch die Adresse Ihres LANs ersetzen. In<br />

der Ausgabe von Nmap finden Sie eine<br />

Sequenz wie die in Listing 2 gezeigte, bei<br />

der an einer MAC-Adresse der Suffix<br />

(Rasp berry <strong>Pi</strong> Fo<strong>und</strong>ation) anhängt.<br />

Die erste Zeile der Sequenz zeigt die IP-<br />

Adresse des <strong>Raspberry</strong> <strong>Pi</strong>, in Listing 2 ist<br />

es die 192.168.0.115.<br />

05.2013 www.raspberry-pi-geek.de<br />

25


Basics<br />

Remote Access via SSH<br />

Um auch anderen Benutzern diese Art<br />

der komfortablen SSH-Anmeldung zu<br />

ermöglichen, müssen Sie <strong>für</strong> diese gesondert<br />

eigene Schlüsselpaare erstellen.<br />

Dateien übertragen<br />

Das OpenSSH-Paket bringt auch zwei<br />

Werkzeuge mit, um Dateien sicher auf<br />

den <strong>Raspberry</strong> <strong>Pi</strong> zu übertragen: scp<br />

(„secure copy“) <strong>und</strong> sftp („secure file<br />

transfer protocol“). Während Scp sich<br />

vornehmlich dazu eignet, ad hoc eine<br />

kleinere Anzahl von Dateien zu transferieren,<br />

öffnet Sftp eine dauerhafte Verbindung,<br />

über die Sie eine ganze Reihe<br />

von Interaktionen vornehmen können.<br />

Um Scp zu nutzen, müssen Sie sich<br />

nicht erst per SSH am Ras<strong>Pi</strong> anmelden.<br />

Die gr<strong>und</strong>legende Syntax des Kommandos<br />

folgt folgendem Schema:<br />

$ scp Datei user@IP:/Pfad/zum/Ziel/<br />

Möchten Sie etwa in unserer Beispielinstallation<br />

die Datei raspi.html aus<br />

dem aktuellen lokalen Verzeichnis in das<br />

Webserver-Verzeichnis auf dem <strong>Raspberry</strong><br />

<strong>Pi</strong> übertragen, dann verwenden<br />

Sie dazu das folgende Kommando:<br />

$ scp opensource.odt fedora@192.16U<br />

8.0.115:/var/www/html/<br />

Sie können auf diesem Weg auch komplette<br />

Verzeichnisse (im folgenden Beispiel<br />

den Ordner foss/) mitsamt Inhalt<br />

auf den Ras<strong>Pi</strong> kopieren. Dazu ergänzen<br />

Sie den Scp-Befehl um die Option ‐r <strong>für</strong><br />

das rekursive Durchlaufen der Quelle:<br />

$ scp foss fedora@192.168.0.115:.<br />

Hier steht anstelle der Angabe eines Verzeichnisses<br />

als Ziel lediglich ein Punkt.<br />

Das sorgt da<strong>für</strong>, dass foss/ <strong>und</strong> seine Inhalte<br />

im Home-Verzeichnis des Benutzers<br />

fedora landen.<br />

Bei Sftp handelt es sich um eine via<br />

SSH-Protokoll laufende sichere Version<br />

des klassischen FTP. Hier verbinden Sie<br />

sich wie von SSH selbst gewohnt, nur<br />

dass Sie als Kommando statt ssh diesmal<br />

sftp verwenden:<br />

$ sftp fedora@192.168.0.115<br />

Listing 5<br />

$ sftp fedora@192.168.0.115 # via SFTP mit dem <strong>Raspberry</strong> verbinden<br />

fedora@192.168.0.115‘s password: Passwort<br />

Connected to 192.168.0.115<br />

sftp> pwd<br />

# aktuelles entferntes Verzeichnis<br />

Remote working directory: /home/fedora<br />

sftp> lpwd<br />

# aktuelles lokales Verzeichnis<br />

Local working directory: /home/rsuehle<br />

sftp> ls<br />

# Inhalt des entfernten Verzeichnisses<br />

Desktop Docs Downloads Music <strong>Pi</strong>cs Public<br />

sftp> cd Docs<br />

# entferntes Verzeichnis wechseln<br />

sftp> lls<br />

# Inhalt des lokalen Verzeichnisses<br />

fedora.png<br />

sftp> put fedora.png<br />

# kopiert Datei ins entfernte Verzeichnis<br />

Uploading fedora.png to /home/fedora/Docs/fedora.png<br />

fedora.png 100%<br />

556KB 556.1KB/s 00:01<br />

sftp> get opensource.odt<br />

# kopiert Datei aus dem entfernten Verzeichnis<br />

Fetching /home/fedora/Docs/opensource.odt to opensource.odt<br />

/home/fedora/Docs/opensource.odt<br />

100% 556KB 556.1KB/s 00:00<br />

sftp> lls<br />

# Inhalt des lokalen Verzeichnisses<br />

fedora.png<br />

opensource.odt<br />

sftp> exit<br />

# SFTP‐Sitzung beenden<br />

26 www.raspberry-pi-geek.de<br />

05.2013


Remote Access via SSH<br />

Basics<br />

2 In /etc/ssh/sshd_config müssen Sie<br />

das X11-Forwarding aktivieren.<br />

3 Ob das Aufrufen grafischer Programme via OpenSSH klappt, das testen Sie am einfachsten<br />

durch einen Aufruf des vorinstallierten Webbrowsers Midori.<br />

Dieser Befehl öffnet eine SFTP-Sitzung,<br />

in der Sie eine Vielzahl von Kommandos<br />

nutzen können. Beispiele <strong>für</strong> die gängigsten<br />

davon zeigt das Listing 5, das<br />

(kommentiert) den Ablauf einer kompletten<br />

Session darstellt.<br />

Grafische Programme<br />

Benutzen Sie die grafische Oberfläche<br />

eines Linux-Rechners, dann erfolgen alle<br />

Interaktionen über das X Window System,<br />

kurz auch gern schlicht als X bezeichnet.<br />

Um via SSH eine grafische Anwendung<br />

starten zu können, müssen Sie<br />

Die Autorin<br />

Ruth Suehle arbeitet <strong>für</strong> Red Hat in der<br />

„Open Source and Standards Group“,<br />

leitet das Marketing-Team des Fedora-Projekts<br />

<strong>und</strong> ist Ko-Autorin des demnächst<br />

bei O’Reilly erscheinenden Buchs „<strong>Raspberry</strong><br />

<strong>Pi</strong> <strong>Hacks</strong>“. Früher betätigte sie sich<br />

als Redakteurin <strong>für</strong> das „Red Hat Magazine“,<br />

heute moderiert sie auf Opensource.com<br />

Diskussionen über die Prinzipien<br />

freier Software. Auf <strong>Geek</strong>Mom.com<br />

schildert sie außerdem das Abenteuer der<br />

Mutterschaft im Spannungsfeld r<strong>und</strong> um<br />

Technologie <strong>und</strong> Science Fiction.<br />

dem Anmeldebefehl den Parameter ‐X<br />

hinzufügen. Er aktiviert das sogenannte<br />

X-Forwarding:<br />

$ ssh ‐X fedora@192.168.0.115<br />

Das klappt jedoch nur, sofern in der bereits<br />

erwähnten SSH-Konfigurationsdatei<br />

/etc/ssh/sshd_config die Einstellung<br />

<strong>für</strong> das X11Forwarding auf yes gesetzt ist<br />

2. Dies vorausgesetzt, können Sie nach<br />

der Anmeldung auch grafische Programme<br />

auf dem <strong>Raspberry</strong> <strong>Pi</strong> aus der Ferne<br />

nutzen.<br />

Um etwa den schlanken Webbrowser<br />

Midori zu starten, den die meisten Ras<strong>Pi</strong>-<br />

Distributionen bereits vorinstallieren,<br />

tippen Sie auf der Kommandozeile einfach<br />

midori ein 3 .<br />

Fazit<br />

Mit den hier vorgestellten Werkzeugen<br />

aus der OpenSSH-Familie verwalten Sie<br />

Ihren <strong>Raspberry</strong> <strong>Pi</strong> problemlos aus der<br />

Ferne <strong>und</strong> ersparen sich dadurch die Anschaffung<br />

eines zusätzlichen Monitors<br />

<strong>und</strong> einer Tastatur. Der Konfigurationsaufwand<br />

<strong>für</strong> eine solche Headless-Lösung<br />

hält sich dabei in erfreulich überschaubaren<br />

Grenzen. (jlu) n<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29883<br />

05.2013 www.raspberry-pi-geek.de<br />

27


Software<br />

Crash-Kurs: Raspbian-Shell<br />

Einführung: Linux auf dem <strong>Raspberry</strong> <strong>Pi</strong><br />

Erste Schritte<br />

Raspbian ist eine vollwertige, leistungsfähige Linux-Distribution.<br />

Wer allerdings bislang nur wenig mit Linux zu tun hatte,<br />

tut sich mit dem Debian-Derivat unter Umständen etwas<br />

schwer. Der Einstieg ist aber keine Hexerei. Paul Brown<br />

© Ivan Mikhaylov, 123RF<br />

28 www.raspberry-pi-geek.de<br />

05.2013


Crash-Kurs: Raspbian-Shell<br />

Software<br />

Als Standard-Betriebssystem <strong>für</strong> den<br />

<strong>Raspberry</strong> <strong>Pi</strong>, das sich auch auf den SD-<br />

Karten der meisten Ras<strong>Pi</strong>-Kits im Handel<br />

findet, dient Raspbian. Wie der Name<br />

schon andeutet, handelt es sich dabei<br />

um einen Ableger der populären Linux-<br />

Distribution Debian GNU/​Linux.<br />

Wer mit dem Minirechner arbeiten<br />

will, aber nur wenig Erfahrung mit dem<br />

Dateisystem <strong>und</strong> der Kommandozeile<br />

von Linux mitbringt, tut sich notgedrungen<br />

etwas schwer. Die Hürde ist jedoch<br />

eher psychologischer als tatsächlicher<br />

Art: Der gr<strong>und</strong>legende Umgang mit<br />

Linux ist im Handumdrehen erlernt.<br />

Das Dateisystem<br />

Zu den verwirrendsten Dingen <strong>für</strong> Linux-<br />

<strong>Einsteiger</strong> zählt zweifellos das Dateisystem<br />

<strong>und</strong> dessen Organisation. Dabei<br />

weist es eine absolut logische Struktur<br />

auf, die auf allen Linux-Distributionen<br />

weitgehend gleich ausfällt û.<br />

Wie bei den meisten Betriebssystemen<br />

weist auch bei Linux das Dateisystem<br />

eine Baumstruktur auf. Dessen Wurzel,<br />

also das Verzeichnis, aus dem der<br />

Baum wächst, bezeichnet man als Root-<br />

Verzeichnis <strong>und</strong> kennzeichnet den entsprechenden<br />

Pfad mit einem Schrägstrich<br />

(/). Das Wurzelverzeichnis enthält<br />

eine Reihe weiterer Verzeichnisse, die<br />

Namen wie /bin, /lib oder /home tragen.<br />

Auch diese enthalten wieder Unterverzeichnisse<br />

<strong>und</strong> so fort. Abbildung 1<br />

zeigt einen typischen Teil dieses Verzeichnisbaumes.<br />

Um sich den Inhalt des Wurzelverzeichnisses<br />

anzusehen, öffnen Sie den<br />

Dateimanager (das zweite Icon von links<br />

in der Leiste am Fuß des Bildschirms)<br />

<strong>und</strong> doppelklicken dann darin auf den<br />

nach oben weisenden Pfeil in der Werkzeugleiste<br />

2 . Auf der Kommandozeile<br />

geben Sie den Inhalt des Wurzelverzeichnisses<br />

mit folgendem Befehl aus:<br />

$ ls /<br />

Die Namen der Unterverzeichnisse sind<br />

keineswegs zufällig: So enthalten Verzeichnisse<br />

wie /bin („binaries“) <strong>und</strong><br />

/ sbin („system binaries“) ausführbare<br />

Dateien, obwohl keineswegs durchwegs<br />

Binärdateien, wie der Name nahelegt.<br />

Solche Programmverzeichnisse finden<br />

sich nicht nur direkt unterhalb von der<br />

Verzeichniswurzel, sondern beispielsweise<br />

in /usr („unix system resources“).<br />

Das zeugt von sauberer Sortierung:<br />

/ bin <strong>und</strong> /sbin enthalten nur solche<br />

Programme, die <strong>für</strong> das Funktionieren<br />

des Systems essenziell sind. Dagegen<br />

findet sich in /usr/bin <strong>und</strong> /usr/sbin<br />

Extra-Software, wie beispielsweise Spiele.<br />

Falls Sie sich nun fragen, wo denn der<br />

Unterschied zwischen /bin <strong>und</strong> /sbin<br />

liegt: Die Programme in Ersterem dürfen<br />

typischerweise auch normale User ausführen,<br />

<strong>für</strong> jene in Letzterem braucht<br />

man meist administrative Rechte.<br />

Suchen Sie ein bestimmtes Programm<br />

<strong>und</strong> möchten wissen, in welchem Verzeichnis<br />

es liegt, greifen Sie zu which:<br />

$ which ls<br />

/bin/ls<br />

Darüber hinaus sollten Sie mit zwei besonderen<br />

Verzeichnissen vertraut sein,<br />

mit /home <strong>und</strong> mit /etc. Unterhalb von<br />

/ home liegen die sogenannten Home-<br />

Verzeichnisse <strong>für</strong> alle angelegten Benutzerkonten.<br />

Sobald Sie anfangen, den<br />

Ras <strong>Pi</strong> zu benutzen – <strong>und</strong> bevor Sie beginnen,<br />

neue Benutzerkonten anzulegen<br />

(dazu später mehr) – finden Sie sich im<br />

Verzeichnis /home/pi wieder. Das ist das<br />

Home-Verzeichnis des Standard-Benutzers<br />

pi, als der Sie sich anfangs anmelden.<br />

Hier können Sie nach Herzenslust<br />

Dateien <strong>und</strong> Ordner anlegen, verändern<br />

<strong>und</strong> löschen.<br />

Um dasselbe in anderen Verzeichnissen<br />

zu tun, etwa in /, /etc oder /usr,<br />

brauchen Sie besondere Rechte – meist<br />

jene des administrativen Benutzers root<br />

(„superuser“). Dies gilt insbesondere <strong>für</strong><br />

/etc („et cetera“), das sich als Lagerplatz<br />

<strong>für</strong> systemweite Konfigurationsdateien<br />

eingebürgert hat. Deswegen werden Sie<br />

bei der Benutzung des Ras<strong>Pi</strong> des Öfteren<br />

dort zu tun haben.<br />

Bitte beachten Sie: Sobald Sie Dateien<br />

außerhalb Ihres Home-Verzeichnisses<br />

verändern, laufen Sie Gefahr, durch Bedienungs-<br />

oder Konfigurationsfehler ein-<br />

Raspbian „Wheezy“ 2013-05-25<br />

LU/raspbian/<br />

zelne Programme oder sogar das komplette<br />

System zu beschädigen. Mehr<br />

über die Struktur des Linux-Dateisystems,<br />

die dem sogenannten Filesystem<br />

Hierarchy Standard (FHS) folgt, lesen Sie<br />

bei Interesse in einem ausführlichen<br />

Artikel auf der Wikipedia nach û.<br />

Die Kommandozeile<br />

<strong>Einsteiger</strong> halten die Linux-Kommandozeile<br />

oft <strong>für</strong> „unfre<strong>und</strong>lich“. Ein altes Bonmot<br />

behauptet dagegen, sie sei keineswegs<br />

unfre<strong>und</strong>lich, sondern nur wählerisch<br />

in Bezug auf Fre<strong>und</strong>schaften. Wie<br />

auch immer: Bei der Shell – so nennen<br />

Linuxer die Kommandozeile nach dem<br />

Standard-Kommandointerpreter Bash<br />

(„Bourne again shell“) – handelt es sich<br />

um ein mächtiges Werkzeug.<br />

Für den Einsatz auf dem mit Rechenpower<br />

<strong>und</strong> Speicher nicht eben übermäßig<br />

versehenen Ras<strong>Pi</strong> eignet sie sich<br />

Readme<br />

Für Linux-<strong>Einsteiger</strong>, die mit dem Standard-<br />

Betriebssystem Raspbian noch nicht näher<br />

vertraut sind, stellt dieser Artikel die wichtigsten<br />

Befehle <strong>und</strong> Kommandos <strong>für</strong> den<br />

täglichen Einsatz der Linux-Shell vor.<br />

05.2013 www.raspberry-pi-geek.de<br />

29


Software<br />

Crash-Kurs: Raspbian-Shell<br />

grafischen Dateimanager. Öffnen Sie ein<br />

Terminalfenster, landen Sie typischerweise<br />

in Ihrem Home-Verzeichnis – auf<br />

dem Ras<strong>Pi</strong> also in der Regel in /home/pi.<br />

Hier geben Sie nun erst einmal ls an,<br />

um sich den Inhalt anzusehen. Um in ein<br />

anderes Verzeichnis zu gelangen, verwenden<br />

Sie das Kommando cd („change<br />

directory“). Diesem nennen Sie als Parameter<br />

das gewünschte Zielverzeichnis:<br />

1 Das Linux-Dateisystem folgt einer verschachtelten<br />

Baumstruktur.<br />

schon deswegen ideal, weil sie bei geringem<br />

Footprint eine Vielzahl leistungsfähiger<br />

Funktionen, Tools <strong>und</strong> Anwendungen<br />

bereitstellt. Außerdem eröffnet die<br />

Shell die Möglichkeit, sich aus der Ferne<br />

via SSH („secure shell“) auf dem <strong>Raspberry</strong><br />

<strong>Pi</strong> anzumelden beziehungsweise im<br />

Serverbetrieb auf eine grafische Oberfläche<br />

zu verzichten.<br />

Über die Jahre hinweg haben die Entwickler<br />

die Shell mit einigen Tricks benutzerfre<strong>und</strong>licher<br />

gemacht. Zu den angenehmsten<br />

davon zählt die automatische<br />

Befehlsergänzung oder Neuhochdeutsch<br />

Auto-Completion: Beim Tippen<br />

auf der Kommandozeile können Sie die<br />

Shell anweisen, das Getippte zu ergänzen.<br />

Möchten Sie sich den Inhalt des Unterverzeichnisses<br />

Donaudampfschifffahrtsgesellschaft<br />

ansehen, schreiben<br />

Sie auf der Kommandozeile lediglich ls<br />

Don <strong>und</strong> drücken [Tab].<br />

Die Shell ergänzt nun den Verzeichnisnamen<br />

automatisch, sodass Sie nur noch<br />

die Eingabetaste betätigen müssen, um<br />

das Gewünschte einzusehen. Was aber,<br />

wenn es ein zweites Unterverzeichnis<br />

gibt, dessen Namen ebenfalls mit Don<br />

beginnt? Dann bewirkt ein Druck auf die<br />

Tabulatortaste erst einmal nichts. Ein<br />

zweites [Tab] veranlasst die Shell dann<br />

aber, alle Verzeichnisnamen auszugeben,<br />

die mit Don beginnen. So können<br />

Sie dann das richtige aussuchen.<br />

Eine weitere Nettigkeit der Shell stellt<br />

ihr Kommandopuffer da, die sogenannte<br />

History. In ihr blättern Sie mit den Cursortasten<br />

aufwärts <strong>und</strong> abwärts durch<br />

die bislang eingegebenen Befehle, bis<br />

Sie den gewünschten vor sich haben. In<br />

diesem bewegen Sie sich dann bei Bedarf<br />

mit [Cursor-rechts] <strong>und</strong> [Cursorlinks]<br />

hin <strong>und</strong> her, löschen Überflüssiges<br />

mit [Entf] oder der Rücktaste <strong>und</strong> ergänzen<br />

oder überschreiben Parameter. Passt<br />

alles, drücken Sie die Eingabetaste.<br />

In den Terminalemulationen der grafischen<br />

Benutzeroberfläche können Sie<br />

auch mit der Maus einen Teil des Textes<br />

im Fenster auswählen, indem Sie ihn anklicken<br />

<strong>und</strong> dann die Maus ziehen. Mit<br />

einem Druck auf die mittlere Maustaste<br />

(beziehungsweise das Mausrad) fügen<br />

Sie das Kopierte dann an anderer Stelle<br />

im Fenster wieder ein. Das erweist sich<br />

besonders <strong>für</strong> lange Datei- oder Pfadnamen<br />

als sehr praktisch.<br />

Ein Spaziergang<br />

Aufgr<strong>und</strong> des hohen Strukturierungsgrads<br />

des Linux-Dateisystems fällt das<br />

Navigieren darin oft auf der Kommandozeile<br />

sogar komfortabler aus als in einem<br />

$ cd /home/pi/Dokumente<br />

Ein Punkt im Pfad symbolisiert das aktuelle<br />

Verzeichnis. Um aus Ihrem Home in<br />

dessen Unterordner Musik zu wechseln,<br />

könnten Sie Folgendes tippen:<br />

$ cd ./Music<br />

Zwei Punkte dagegen weisen die Shell<br />

an, im Verzeichnisbaum in die nächsthöhere<br />

Ebene zu wechseln. Um aus Musik<br />

wieder zurück in Ihr Home zu gelangen,<br />

schreiben Sie also:<br />

$ cd ..<br />

Auf vielen Systemen steht die Tilde (~)<br />

<strong>für</strong> das Home-Verzeichnis des aktuell angemeldeten<br />

Benutzers. Von jedem Ort<br />

des Dateisystems kehren Sie also mit folgendem<br />

Kommando wieder in ihr Home<br />

zurück:<br />

$ cd ~<br />

Haben Sie sich im Dateisystem „verlaufen“<br />

<strong>und</strong> wissen nicht mehr genau, in<br />

welchem Verzeichnis Sie sich gerade aufhalten,<br />

tippen Sie einfach pwd („print<br />

working directory“). Die Shell gibt daraufhin<br />

den Namen das aktuellen Verzeichnisses<br />

aus. Neue Verzeichnisse legen<br />

Sie mit mkdir („make directory“) an:<br />

$ mkdir /home/pi/Musik/Beatles<br />

Auch das rekursive Erstellen eines ganzen<br />

Verzeichnisbaumes beherrscht<br />

mkdir, Sie müssen dazu nur den Parameter<br />

‐p mit angeben:<br />

$ mkdir ‐p Musik/Beatles/Help<br />

30 www.raspberry-pi-geek.de<br />

05.2013


Crash-Kurs: Raspbian-Shell<br />

Software<br />

Dieses Kommando erstellt nacheinander<br />

die Verzeichnisse Musik, Musik/Beatles<br />

<strong>und</strong> schließlich Musik/Beatles/Help.<br />

Der Befehl cp lässt Sie Dateien <strong>und</strong><br />

Verzeichnisse kopieren, seine allgemeine<br />

Syntax folgt dem Schema cp Quelle<br />

Ziel. Dabei sucht cp die Quelle, sofern<br />

Sie keinen Pfad angeben, im aktuellen<br />

Verzeichnis. Ganz ähnlich arbeitet der<br />

Verschiebe-Befehl mv. Sie können beiden<br />

Befehlen jedoch auch Pfadangaben <strong>für</strong><br />

Quelle <strong>und</strong> Ziel mit auf den Weg geben.<br />

Da<strong>für</strong> benötigen Sie ausreichende Rechte<br />

in den jeweiligen Verzeichnissen.<br />

Das Kommando mv verschiebt Dateien<br />

oder komplette Verzeichnisse. So verschiebt<br />

der Befehl mv datei dir/ das<br />

angegebene File ins Unterverzeichnis<br />

dir/ des Verzeichnisses. Bewegen Sie<br />

das Ziel nicht, benennt mv die Quelle um.<br />

So ändert mv datei1 datei2 den Namen<br />

der Datei datei1 in datei2. Zum<br />

Löschen von Dateien dient rm („remove“),<br />

zum Entfernen von Verzeichnissen<br />

verwenden Sie rm ‐r oder rmdir.<br />

Eine Zusammenfassung der gängigsten<br />

Shell-Befehle zeigt die Tabelle Shell-<br />

Kommandos. Für jedes der Kommandos<br />

gibt es eine Reihe zusätzlicher Optionen,<br />

die Sie der zugehörigen Hilfeseite entnehmen<br />

können. Diese rufen Sie mit folgendem<br />

Kommando ab:<br />

Finanzdaten eines Unternehmens benötigen.<br />

Anstatt dazu jedem einzelnen die<br />

notwendigen Rechte zuzuteilen, kann<br />

der Administrator diese der Gruppe zuweisen<br />

<strong>und</strong> dann die entsprechenden<br />

Benutzerkonten in Buchhaltung zusammenfassen.<br />

Diese Vorgehensweise klappt auch bei<br />

Hardware-Ressourcen <strong>und</strong> Diensten.<br />

Wer auf das optische Laufwerk des Rechners<br />

zugreifen will, muss Mitglied der<br />

Gruppe cdrom sein (zumindest unter Debian/​Raspbian).<br />

Und nur wer zur Gruppe<br />

sudo zählt, darf Befehle via sudo („superuser<br />

do“) mit administrativen Rechten<br />

ausführen. Um herauszufinden, welchen<br />

Gruppen ihr Benutzerkonto angehört,<br />

verwenden Sie den Befehl groups. Listing<br />

1 zeigt die Ausgabe <strong>für</strong> pi.<br />

Benutzer verwalten<br />

Neue Benutzerkonten <strong>und</strong> Gruppen legen<br />

Sie unter Linux üblicherweise mit<br />

den beiden Befehlen useradd <strong>und</strong><br />

group add an, wozu Sie allerdings administrative<br />

Rechte benötigen. Unter Raspbian<br />

gibt es zusätzlich das Programm<br />

adduser, das sich als handlicheres Frontend<br />

<strong>für</strong> useradd, groupadd <strong>und</strong> usermod<br />

$ Befehl ‐‐help | less<br />

Dabei sorgt das less am Schluss da<strong>für</strong>,<br />

dass Sie mit den Cursortasten in längeren<br />

Hilfetexten blättern können.<br />

Benutzer <strong>und</strong> Gruppen<br />

Benutzerkonten <strong>und</strong> Benutzergruppen<br />

ermöglichen unter Linux eine präzise<br />

Rechtevergabe <strong>für</strong> alle Systemressourcen,<br />

insbesondere <strong>für</strong> den Zugriff auf<br />

Verzeichnisse <strong>und</strong> Dateien û. Eine besondere<br />

Rolle spielt dabei der Systemadministrator<br />

root.<br />

Benutzergruppen fassen Benutzerkonten<br />

mit bestimmten Rechten zusammen<br />

<strong>und</strong> erleichtern dadurch die Rechteverwaltung.<br />

So könnte etwa eine Gruppe<br />

Buchhaltung alle User enthalten, die aufgr<strong>und</strong><br />

ihrer Tätigkeit Zugriff auf die<br />

2 So sieht der Inhalt des Wurzelverzeichnisses / im Dateimanager aus.<br />

05.2013 www.raspberry-pi-geek.de<br />

31


Software<br />

Crash-Kurs: Raspbian-Shell<br />

versteht. Einen neuen Benutzer legen<br />

Sie unter Einsatz dieses Tools mit der folgenden<br />

Befehlszeile an:<br />

$ sudo adduser User<br />

Das Programm führt Sie nun durch die<br />

weiteren Schritte des Vorgangs 3 , wobei<br />

es nach einem Benutzerpasswort<br />

<strong>und</strong> näheren Angaben zum Anwender<br />

fragt – beide sind optional. Zum Abschluss<br />

legt Adduser auf Wunsch ein<br />

Home-Verzeichnis <strong>für</strong> den neuen Benutzer<br />

unter /home an.<br />

Um zu prüfen, ob alles wie gewünscht<br />

funktioniert hat, wechseln Sie nun mittels<br />

su User in das neue Benutzerkonto.<br />

Können Sie sich dabei mit dem eben<br />

Listing 1<br />

$ groups<br />

pi adm dialout cdrom sudo audio<br />

video plugdev games users netdev<br />

input indiecity<br />

vergebenen Passwort dort anmelden,<br />

hat alles geklappt. Mit exit verlassen Sie<br />

das Konto anschließend wieder.<br />

Um ein Benutzerkonto einer bestehenden<br />

Benutzergruppe hinzuzufügen,<br />

verwenden Sie den Befehl usermod:<br />

$ sudo usermod ‐a ‐G sudo piuser<br />

Dieser Befehl fügt den Benutzer piuser<br />

der Gruppe sudo hinzu, sodass er ab sofort<br />

Befehle mit administrativen Rechten<br />

absetzen kann.<br />

Rechte verwalten<br />

Für jedes Element im Dateisystem (Files,<br />

Verzeichnisse, Gerätedateien etc.) hält<br />

Linux fest, welche Benutzer darauf lesend,<br />

schreibend <strong>und</strong> zum Ausführen zugreifen<br />

dürfen. Jedes Element gehört außerdem<br />

einem Besitzer („owner“, also einem<br />

bestimmten Benutzer) sowie einer Gruppe<br />

(„group“), <strong>für</strong> die sich die Rechte getrennt<br />

festlegen lassen. Auch <strong>für</strong> andere<br />

Benutzer („others“), die weder „owner“<br />

sind noch der „group“ angehören, kann<br />

man gesonderte Rechte vergeben û.<br />

Um die Rechte <strong>für</strong> die Dateien im aktuellen<br />

Verzeichnis einzusehen, tippen<br />

Sie im Terminal einfach ls ‐l ein. Sie erhalten<br />

dann eine Ausgabe ähnlich wie in<br />

Listing 2. Die erste Spalte zeigt die Dateirechte<br />

an, die zweite die Anzahl der<br />

Hardlinks auf die Datei. In der dritten<br />

Spalte erkennen Sie, wie viel Platz in<br />

Bytes der Eintrag auf der SD-Karte belegt.<br />

Eigentümer <strong>und</strong> Gruppe finden sich<br />

in den nächsten beiden Spalten, es folgen<br />

das Erstellungsdatum <strong>und</strong> der Datei-<br />

beziehungsweise Verzeichnisname.<br />

Wie Sie sehen, führt die erste Spalte<br />

die Rechte getrennt nach Eigentümer,<br />

Gruppe <strong>und</strong> anderen Benutzern auf. Dabei<br />

bezeichnen die drei Kürzel r, w <strong>und</strong> x<br />

bestehende Rechte, ein Minus-Zeichen<br />

signalisiert eine nicht vergebene Berechtigung.<br />

Ein d an der allerersten Position<br />

kennzeichnet Verzeichnisse.<br />

Die Lese-Erlaubnis r beinhaltet das<br />

Recht zum Anzeigen, Kopieren <strong>und</strong> einiges<br />

mehr. Verzeichnisse sollten zusätzlich<br />

ein x aufweisen, anderenfalls lässt<br />

sich ihr Inhalt nur einsehen, aber nicht<br />

verändern. Die Schreib-Erlaubnis w ermöglicht<br />

das Verändern von Dateien<br />

<strong>und</strong> Verzeichnissen, wobei dies auch das<br />

Löschen umfasst.<br />

Die Erlaubnis zum Ausführen x bedeutet<br />

bei Programmen, dass der Benutzer<br />

sie ausführen darf. Bei Verzeichnissen ist<br />

damit das Recht zum Verändern gemeint,<br />

wobei der Benutzer zusätzlich das<br />

Leserecht hat, um erst einmal den Verzeichnisinhalt<br />

einsehen zu können.<br />

Wie Sie in Listing 2 sehen, gruppieren<br />

sich diese Flags in drei rwx-Dreierblöcke.<br />

Der erste kennzeichnet die Rechte des<br />

Besitzers, der zweite die der Gruppe,<br />

<strong>und</strong> der letzte signalisiert die Berechtigungen<br />

aller anderen Nutzer. Wie schon<br />

erwähnt, steht ein Minus-Zeichen <strong>für</strong> ein<br />

fehlendes Recht.<br />

Auch der grafische Dateimanager von<br />

Raspbian zeigt Ihnen auf Wunsch die<br />

Rechte zu einem Verzeichniselement an.<br />

Dazu klicken Sie die fragliche Datei oder<br />

das Verzeichnis mit der rechten Maustas-<br />

Shell-Kommandos<br />

Befehl Aktion<br />

ls Inhalt des aktuellen Verzeichnisses<br />

zeigen<br />

cd Verzeichnis wechseln<br />

pwd Name des aktuellen Verzeichnisses<br />

zeigen<br />

mkdir Verzeichnis anlegen<br />

cp Datei oder Verzeichnis kopieren<br />

mv Datei oder Verzeichnis verschieben<br />

oder umbenennen<br />

rm Datei oder Verzeichnis löschen<br />

rmdir Verzeichnis löschen<br />

Listing 2<br />

$ ls ‐l<br />

Insgesamt 124<br />

drwxr‐xr‐x 2 pi pi 4096 Feb 9 03:17 Desktop<br />

drwxr‐xr‐x 3 pi pi 4096 Mai 18 11:57 Dokumente<br />

drwxr‐xr‐x 3 pi pi 4096 Mai 18 00:50 indiecity<br />

drwxr‐xr‐x 3 pi pi 4096 Mai 19 03:17 Musik<br />

‐rw‐r‐‐r‐‐ 1 pi pi 5781 Mai 19 03:17 ocr_pi.png<br />

drwxr‐xr‐x 2 pi pi 4096 Feb 20 2012 python_games<br />

drwxr‐xr‐x 2 pi pi 4096 Mai 18 11:56 Scratch<br />

‐rw‐r‐‐r‐‐ 1 pi pi 84381 Mai 18 02:35 Screenshot.png<br />

drwxr‐xr‐x 2 pi pi 4096 Mai 19 12:08 Screenshots<br />

drwxr‐xr‐x 2 pi pi 4096 Mai 2 12:37 sketchbook<br />

32 www.raspberry-pi-geek.de<br />

05.2013


Crash-Kurs: Raspbian-Shell<br />

Software<br />

te an <strong>und</strong> wählen aus dem daraufhin erscheinenden<br />

Kontextmenü den Eintrag<br />

Eigenschaften 4 .<br />

Rechte verändern<br />

Um Datei- <strong>und</strong> Verzeichnisrechte zu ändern,<br />

greifen Sie zum Programm chmod.<br />

Das funktioniert allerdings nur, sofern<br />

Sie der Eigentümer des Objektes sind<br />

oder aber administrative Rechte haben.<br />

Die neuen Rechte geben Sie entweder in<br />

Zahlen- oder Buchstabenform an. Wir<br />

beschränken uns hier auf die einfacher<br />

zu merkende Variante mit Buchstaben.<br />

Hier kommen die bereits bekannten<br />

Rechte r, w <strong>und</strong> x zum Einsatz sowie die<br />

Kürzel u <strong>für</strong> den Besitzer („user“), g <strong>für</strong><br />

die Gruppe sowie o („others“) <strong>für</strong> alle anderen.<br />

Eine Kombination aus diesen<br />

Buchstaben <strong>und</strong> Plus-, Minus- <strong>und</strong> Istgleich-Zeichen<br />

weist chmod an, die Rechte<br />

entsprechend zu setzen. So vergeben<br />

Sie mit folgendem Befehl Lese- <strong>und</strong><br />

Schreibrechte <strong>für</strong> die Gruppe:<br />

$ chmod g+rw Datei<br />

Um Benutzern, die weder Eigentümer<br />

sind noch der Gruppe angehören, alle<br />

Rechte zu entziehen, tippen Sie:<br />

$ chmod o‐rwx Datei<br />

Mithilfe des Istgleich-Zeichens setzen Sie<br />

eine präzise Rechtekombination. Um<br />

etwa dem Eigentümer, der Gruppe <strong>und</strong><br />

auch allen anderen Benutzern vollen Zugriff<br />

auf ein Verzeichnis einzuräumen,<br />

geben Sie folgenden Befehl ein:<br />

$ chmod ugo=rxw Verzeichnis<br />

Um die Gruppenzugehörigkeit von Dateien<br />

<strong>und</strong> Verzeichnissen zu modifizieren,<br />

verwenden Sie das Tool chgrp. Uneingeschränkt<br />

darf man das nur mit administrativen<br />

Rechten. Als einfacher Benutzer<br />

können Sie chgrp nur auf Dateien<br />

<strong>und</strong> Verzeichnisse anwenden, deren Besitzer<br />

Sie sind <strong>und</strong> deren Gruppe Sie angehören.<br />

Das Kommando chgrp erwartet die<br />

Angabe der neuen Gruppe, gefolgt vom<br />

Namen des zu ändernden Dateisystemobjektes.<br />

Um etwa eine Datei der Gruppe<br />

audio zuzuordnen, tippen Sie:<br />

$ chgrp audio Datei<br />

3 Das Dienstprogramm useradd im<br />

praktischen Einsatz.<br />

Als Superuser unterwegs mit Sudo<br />

Die meisten Linux-Distributionen richten<br />

<strong>für</strong> den Administrator ein separates Benutzerkonto<br />

namens root ein. Um Befehle mit<br />

administrativen Rechten auszuführen,<br />

muss man sich allerdings nicht zwangsläufig<br />

als Root anmelden. Stattdessen kann<br />

ein angemeldeter Benutzer auch mit dem<br />

Befehl su in den Rechtekontext des<br />

Super users wechseln.<br />

Um nur einzelne Kommandos aus einem<br />

normalen Benutzerkonto heraus mit administrativen<br />

Rechten auszuführen, kommt<br />

der Befehl sudo Kommando zum Einsatz.<br />

Um ihn benutzen zu dürfen, muss das<br />

fragliche Konto entweder in der Datei<br />

/ etc/sudo erfasst sein oder der Gruppe<br />

sudo angehören. Diesen Ansatz verfolgt<br />

auch Raspbian <strong>für</strong> den Standard-Benutzer<br />

pi, der sudo jederzeit benutzen kann.<br />

Daher sollten Sie das standardmäßig <strong>für</strong><br />

pi vergebene Passwort raspberry beim<br />

Einrichten des Systems (oder auch nachträglich)<br />

in Raspi-config gleich ändern<br />

(change_pass) <strong>und</strong> neue Benutzerkonten<br />

ohne administrative Rechte einrichten.<br />

4 Sie können sich die Rechte <strong>für</strong> eine Datei<br />

oder ein Verzeichnis auch im grafischen<br />

Dateimanager anzeigen lassen.<br />

05.2013 www.raspberry-pi-geek.de<br />

33


Software<br />

Crash-Kurs: Raspbian-Shell<br />

Rutsch auch gleich die Gruppenzugehörigkeit<br />

(hier das zweite piuser hinter<br />

dem Doppelpunkt) ändern lässt.<br />

Pakete verwalten<br />

5 Mit apt‐get installieren Sie Software<br />

aus den Repositories von Raspbian.<br />

Danksagung<br />

Der Autor bedankt sich bei Bruce Byfield,<br />

Nathan Willis, Joe „Zonker“ Brockmeier,<br />

Heike Jurzik <strong>und</strong> Hans-Georg Esser <strong>für</strong><br />

ihre wertvollen Anregungen beim Schreiben<br />

dieses Artikels.<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29879<br />

Als administrativer Benutzer dürfen Sie<br />

Dateien <strong>und</strong> Verzeichnisse sowohl neuen<br />

Eigentümern als auch anderen Gruppen<br />

zuordnen. So vergibt der Befehl<br />

chown pi Datei die Datei an den User<br />

pi. Eigentümer <strong>und</strong> Gruppe lassen sich<br />

auch in einem Rutsch neu vergeben:<br />

$ chown pi:audio Datei<br />

Alle drei Werkzeuge – chmod, chgrp, <strong>und</strong><br />

chown – unterstützen die Option ‐R <strong>für</strong><br />

die rekursive Vergabe. Sollen die Mitglieder<br />

der Gruppe video Zugriff auf ein bestimmtes<br />

Verzeichnis <strong>und</strong> alle enthaltenen<br />

Dateien erhalten, tippen Sie:<br />

$ chgrp ‐R video Verzeichnis<br />

Bei chmod spart die Option ‐R oft viel<br />

Tipp arbeit. Um „others“ alle Rechte auf<br />

ein Verzeichnis <strong>und</strong> dessen Inhalte zu<br />

entziehen, genügt der Befehl<br />

$ chmod ‐R o‐rwx Verzeichnis<br />

Auch chown unterstützt die Option ‐R.<br />

Sie hilft beim Ausstatten neu angelegter<br />

Benutzerkonten. Nehmen wir an, Sie haben<br />

gerade das Konto piuser angelegt<br />

<strong>und</strong> dessen Home-Verzeichnis mit einer<br />

Gr<strong>und</strong>ausstattung an Dateien <strong>und</strong> Verzeichnissen<br />

befüllt. Um piuser jetzt auch<br />

zum Eigentümer aller Inhalte in /home/<br />

piuser zu machen, tippen Sie einfach:<br />

$ sudo chown ‐R piuser:piuser /hoU<br />

me/piuser<br />

Hier erweist es sich wieder als besonders<br />

praktisch, dass sich mit chown in einem<br />

Ein anderes Kommandozeilenwerkzeug,<br />

mit dem Sie regelmäßig in Kontakt kommen<br />

werden, ist der Paketmanager APT<br />

(„Advanced Package Tool“). Er dient<br />

dazu, aus dem Paketf<strong>und</strong>us („Repository“<br />

oder kurz Repo) von Raspbian Software<br />

aller Art nachzuinstallieren û.<br />

Der Vorteil dieser Installationsmethode:<br />

Sie müssen sich um nichts kümmern,<br />

APT erledigt alles automatisch – insbesondere<br />

das Nachziehen anderer <strong>für</strong> den<br />

Betrieb des Paketes notwendiger Software<br />

(„Abhängigkeiten“). Zwar lässt sich<br />

Software auch aus dem Netz laden <strong>und</strong><br />

auf dem System einrichten, dabei sind<br />

allerdings alle anfallenden Arbeiten händisch<br />

zu erledigen. Das machen selbst<br />

Linux-Profis nur, wenn es sich gar nicht<br />

vermeiden lässt.<br />

Um ein Paket aus den Debian-Repositories<br />

ins System einzuspielen <strong>und</strong> dabei<br />

auch gleich alle Abhängigkeiten aufzulösen,<br />

genügt folgender handliche<br />

Befehl:<br />

$ sudo apt‐get install Paket<br />

Vor dem Durchlauf gibt das Programm<br />

eine Zusammenfassung aller geplanten<br />

Vorgänge aus. So sehen Sie beispielsweise,<br />

welche Abhängigkeiten APT auflöst,<br />

welche Pakete es neu installiert oder aktualisiert,<br />

<strong>und</strong> wie viel Platz diese auf<br />

dem Massenspeicher benötigen 5 .<br />

Benötigen Sie ein installiertes Paket<br />

nicht mehr oder entspricht die Software<br />

nicht Ihren Vorstellungen, dann deinstallieren<br />

Sie sie mittels des Befehls:<br />

$ sudo apt‐get remove package‐name<br />

Allerdings bleiben dabei möglicherweise<br />

Konfigurationsdateien der entfernten<br />

Software im Dateisystem zurück. Um<br />

auch diese mit loszuwerden, nutzen Sie<br />

statt remove die Option purge:<br />

$ sudo apt‐get purge package‐name<br />

34 www.raspberry-pi-geek.de<br />

05.2013


Crash-Kurs: Raspbian-Shell<br />

Software<br />

Das Kommando sudo apt‐get autoremove bereinigt in<br />

einem Aufwasch gleich sämtliche alten <strong>und</strong> nicht mehr<br />

benötigten Pakete.<br />

Vor jedem Installationsvorgang sollten Sie unbedingt<br />

sicherstellen, dass APT sämtliche seit der letzten Benutzung<br />

erfolgten Paketaktualisierungen kennt. Dazu nutzen<br />

Sie den Befehl sudo apt‐get update.<br />

Neben dem in den obigen Beispielen verwendeten<br />

apt‐get umfasst das APT-System noch etliche weitere<br />

Tools, deren weitaus nützlichstes apt‐cache heißt. Es bietet<br />

eine wahre Schatztruhe an Informationen über die<br />

Pakete im Raspbian-Repository <strong>und</strong> auf dem System. Der<br />

Befehl:<br />

$ sudo apt‐cache showpkg Paket<br />

zeigt nicht nur die installierte Version, sondern auch die<br />

neueste aus dem Repository sowie die Abhängigkeiten<br />

<strong>und</strong> die reversen Abhängigkeiten (also welche anderen<br />

Pakete das angefragte benötigen). Der Befehl apt‐cache<br />

dump führt sämtliche installierten Pakete auf, apt‐cache<br />

stats bietet Informationen wie die Anzahl der installierten<br />

Pakete sowie sämtliche Abhängigkeiten.<br />

Als besonders nützlich erweist sich apt‐cache search,<br />

dem Sie eine zu suchende Zeichenkette mit auf den Weg<br />

geben. Es stöbert dann alle Pakete auf, in deren Namen<br />

oder Beschreibung der fragliche String vorkommt. Um<br />

etwa ein Minesweeper-Spiel zu finden, tippen Sie beispielsweise:<br />

$ apt‐cache search minesweep<br />

Sie erhalten daraufhin eine (erstaunlich umfangreiche)<br />

Liste aller passenden Pakete, darunter beispielsweise<br />

auch das in den obigen Beispielen installierte Xbomb.<br />

Ausblick<br />

Damit kommen wir zum Ende unseres schnellen <strong>und</strong><br />

notgedrungen recht oberflächlichen Shell-Crash-Kurses.<br />

Wie jede Linux-Distribution bringt auch Raspbian eine<br />

schier unglaubliche Anzahl von Befehlen, Werkzeugen<br />

<strong>und</strong> Programmen <strong>für</strong> die Kommandozeile mit.<br />

Wenn Sie sich <strong>für</strong> die genauen Fähigkeiten eines Exemplars<br />

aus dieser Riege interessieren, helfen in aller Regel<br />

die Hilfeseiten weiter, die im Linux-Jargon Manpages heißen.<br />

Sie rufen diese über das Kommando man ab, gefolgt<br />

vom Namen des fraglichen Befehls oder Programms. Um<br />

etwas mehr über ls zu erfahren, tippen Sie man ls.<br />

Mehr zum Thema Linux im Allgemeinen <strong>und</strong> zur Kommandozeile<br />

im Besonderen finden Sie bei Interesse auch<br />

in unserer Schwesterpublikation LinuxUser û. Deren Inhalte<br />

erreichen Sie auch online über unsere Portalseite<br />

Linux-Community.de û. (jlu) n<br />

05.2013 35


Software<br />

Ras<strong>Pi</strong>-Betriebssysteme<br />

Zwölf Distributionen<br />

<strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong><br />

Süße<br />

Früchte<br />

© subbotina, 123RF<br />

Für den <strong>Raspberry</strong> <strong>Pi</strong> gibt es<br />

inzwischen eine Vielzahl an<br />

Systemen <strong>für</strong> jeden erdenklichen<br />

Einsatzzweck. Wir stellen<br />

die zwölf wichtigsten vor.<br />

Marko Dragicevic<br />

Readme<br />

Erst das richtige Betriebssystem haucht dem<br />

<strong>Pi</strong> Leben ein. Wir stellen hier sowohl die bekannteren<br />

OS-Images vor als auch exotischere<br />

Vertreter. Neben einer Vielzahl an<br />

prominenten Linux-Distributionen finden<br />

sich darunter auch zwei vollkommen eigenständige<br />

Betriebssysteme.<br />

Auf keinem Rechner wechselt man das<br />

Betriebssystem so leicht wie auf dem<br />

<strong>Raspberry</strong> <strong>Pi</strong>: Einfach eine SD-Karte mit<br />

einem anderen OS-Image booten, fertig.<br />

Doch welches der zahlreichen angebotenen<br />

Systeme soll man wo<strong>für</strong> wählen?<br />

Und was <strong>für</strong> ein SD-Card-Image eignet<br />

sich <strong>für</strong> welchen Zweck am besten?<br />

Einige Betriebssysteme <strong>für</strong> den <strong>Raspberry</strong><br />

<strong>Pi</strong> ragen aus der Masse besonders<br />

hervor. Bei manchen liegt das daran,<br />

dass es sich um Ports besonders beliebter<br />

Linux-Distributionen handelt. Andere<br />

genießen im Netz besonders hohe Popularität,<br />

wieder andere verdanken ihre<br />

Verbreitung der Tatsache, dass sie auch<br />

auf der offiziellen Homepage der <strong>Raspberry</strong>-<strong>Pi</strong>-Fo<strong>und</strong>ation<br />

zum Download û<br />

bereitstehen.<br />

Raspbian<br />

Das bekannteste OS <strong>für</strong> den Ras<strong>Pi</strong> ist mit<br />

Sicherheit Raspbian û. Dabei handelt es<br />

sich um eine <strong>für</strong> den Minirechner angepasste<br />

Variante von Debian GNU/​Linux.<br />

Debian ist nicht nur auf Serversystemen<br />

weit verbreitet, sondern bildet auch die<br />

Gr<strong>und</strong>lage <strong>für</strong> einige populäre Desktop-<br />

Distributionen, wie beispielsweise Ubuntu.<br />

Dies wirkt sich wiederum positiv auf<br />

Raspbian aus: Mit den 35 000 Paketen<br />

aus den Debian-Paketquellen kann der<br />

Nutzer auf eine enorme Menge an freier<br />

Software zurückgreifen.<br />

Raspbian liegt in den beiden Varianten<br />

Hardfloat <strong>und</strong> Softfloat vor. Erstere<br />

arbeitet deutlich schneller, weswegen<br />

Sie diese in fast allen Fällen bevorzugen<br />

sollten. Wollen Sie aber aus irgendeinem<br />

Gr<strong>und</strong> die Java-VM von Oracle nutzen,<br />

müssen Sie auf das Softfloat-Image zurückgreifen:<br />

Die Hardfloat-Variante ist<br />

mit der Oracle-JVM nicht kompatibel.<br />

Nach dem Booten von Raspbian startet<br />

automatisch das Tool Raspi-config, in<br />

dem Sie über ein kleines Menü wichtige<br />

Einstellungen anpassen, wie etwa Passwort<br />

<strong>und</strong> Zeitzone. Hier wählen Sie auch<br />

aus, ob nach dem Booten der schlanke<br />

36 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong>-Betriebssysteme<br />

Software<br />

grafische Desktop LXDE starten soll 1 .<br />

Besonders <strong>für</strong> <strong>Einsteiger</strong>, die das Arbeiten<br />

mit der Shell eher scheuen, stellt er<br />

eine gewisse Erleichterung dar. Auf der<br />

Arbeitsfläche <strong>und</strong> im Startmenü des grafischen<br />

Desktops finden auch Newbies<br />

schnell wichtige Programme: Mit Midori<br />

surfen Sie dank der flinken Webkit-Engine<br />

wieselflink durch das Web, die visuelle<br />

Entwicklungsumgebung Scratch ist<br />

ebenfalls bereits vorinstalliert.<br />

Wollen Sie den Ras<strong>Pi</strong> auch <strong>für</strong> Büroarbeiten<br />

nutzen, spielen Sie über den Paketmanager<br />

bequem auch LibreOffice<br />

aus dem Netz ein. Die freie Bürosuite<br />

reagiert trotz ihres Funktionsumfangs<br />

überraschend zügig: Zumindest auf dem<br />

B-Modell mit 512 MByte RAM treten bei<br />

gewöhnlichen Aufgaben keinerlei Performance-Probleme<br />

auf. Riesige Tabellen<br />

mit umfangreichen Berechnungen bringen<br />

den <strong>Pi</strong> allerdings verständlicherweise<br />

an seine Grenzen.<br />

Raspbian gilt zu Recht als die Standard-Distribution<br />

<strong>für</strong> den Ras<strong>Pi</strong>: Sie erleichtert<br />

einerseits <strong>Einsteiger</strong>n die ersten<br />

Schritte mit dem Minirechner, weswegen<br />

sie auch als Gr<strong>und</strong>lage vieler Tutorials<br />

dient. Andererseits fühlen sich mit ihr<br />

auch fortgeschrittene Anwender wohl,<br />

die auf einem Desktop oder Server<br />

schon Debian oder eines seiner Derivate<br />

genutzt haben. Trotzdem können <strong>für</strong> einige<br />

Anwendungszwecke andere Distributionen<br />

interessanter sein, wie wir im<br />

Folgenden sehen werden.<br />

fänglichen Kinderkrankheiten beseitigt<br />

<strong>und</strong> <strong>für</strong> gute Performance gesorgt. Für<br />

ältere Modelle mit lediglich 256 MByte<br />

RAM erwies sich <strong>Pi</strong>dora jedoch in unserem<br />

Test als nach wie vor ungeeignet.<br />

Nach dem ersten Booten nehmen Sie<br />

die Erstkonfiguration des Ras<strong>Pi</strong> komfortabel<br />

über eine grafische Oberfläche vor.<br />

Zudem gibt es nützliche Erweiterungspakete:<br />

So kann <strong>Pi</strong>dora beispielsweise<br />

im Headless-Betrieb die aktuelle IP-Adresse<br />

des Minirechners via Sprachausgabe<br />

nennen oder über LEDs anzeigen.<br />

Fast alle Software-Pakete <strong>für</strong> das PC-<br />

Fedora stehen auch in der ARM-Paketquelle<br />

<strong>für</strong> den Ras<strong>Pi</strong> zur Verfügung. Allerdings<br />

fehlen einige wichtige Video- <strong>und</strong><br />

Audio-Codecs. Daher greifen Sie <strong>für</strong> Multimedia-<strong>Projekte</strong><br />

derzeit besser zu Raspbian<br />

oder zu einer jener Distributionen,<br />

die sich auf das Media-Center XBMC spezialisiert<br />

haben.<br />

Für andere Zwecke eignet sich <strong>Pi</strong>dora<br />

jedoch bestens – insbesondere, wenn<br />

Sie Fedora <strong>und</strong> dessen Spezifika (wie<br />

etwa den Paketmanager Yum <strong>und</strong> die<br />

kurzen Release-Zyklen) bereits kennen.<br />

Anders als auf einem PC mit Fedora-Installation<br />

treffen Sie hier jedoch nicht auf<br />

den Gnome-Desktop, sondern auf das<br />

leichtgewichtigere XFCE – ein Tribut an<br />

die eingeschränkten Ressourcen des<br />

<strong>Raspberry</strong> <strong>Pi</strong> 2 .<br />

Arch Linux, Berry Boot, NOOBS,<br />

OpenELEC, <strong>Pi</strong>Bang, <strong>Pi</strong>dora,<br />

Raspbian, Raspbmc, RISC OS<br />

(aktuelle Versionen auf Heft-DVD)<br />

<strong>Pi</strong>dora<br />

Bei <strong>Pi</strong>dora û handelt es sich um eine an<br />

den <strong>Raspberry</strong> <strong>Pi</strong> angepasste Version<br />

von Fedora, der Community-Variante<br />

von Red Hat Linux. Auf Desktop-PCs<br />

erfreut sich Fedora hoher, auf Servern<br />

wachsender Bedeutung. Unter anderem<br />

deswegen plante die <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation<br />

ursprünglich, <strong>Pi</strong>dora zur Standard-Distribution<br />

<strong>für</strong> die Hardware zu ernennen.<br />

Doch die ersten Versionen erwiesen<br />

sich als sehr langsam <strong>und</strong> zum<br />

Teil fehlerhaft, weswegen Raspbian zum<br />

Klassenprimus aufstieg <strong>und</strong> von da an<br />

stark gefördert wurde. Inzwischen haben<br />

die <strong>Pi</strong>dora-Entwickler jedoch die an-<br />

1 Die am weitesten verbreitete Distribution <strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong> ist das von Debian<br />

abstammende Raspbian, eine auf ARM-Hardware optimierte Version des Systems.<br />

05.2013 www.raspberry-pi-geek.de<br />

37


Software<br />

Ras<strong>Pi</strong>-Betriebssysteme<br />

Media-Center<br />

2 Der Fedora-Ableger <strong>Pi</strong>dora hat seine anfänglichen Leistungsprobleme<br />

inzwischen überw<strong>und</strong>en <strong>und</strong> legt eine gute Performance hin.<br />

3 Für den <strong>Raspberry</strong> <strong>Pi</strong> existieren mehrere Media-Center-Distributionen,<br />

die jedoch alle auf XBMC (im Bild mit „BackRow“-Skin) setzen.<br />

4 Die XBMC-basierten Distributionen (im Bild: OpenELEC) erweitern<br />

das Media-Center-Menü in der Regel um eigene Konfigurationspunkte.<br />

Dank seines hardwarebeschleunigten<br />

Grafikchips gibt der <strong>Raspberry</strong> <strong>Pi</strong> Full-<br />

HD-Videos ruckelfrei wieder. Darüber<br />

hinaus verfügt die Hardware über Anschlussmöglichkeiten<br />

an handelsübliche<br />

Fernseher, sowohl digital via HDMI als<br />

auch analog mittels eines Composite-<br />

Anschlusses. Was liegt also näher, als<br />

den Minirechner als preisgünstiges Media-Center<br />

einzusetzen? Dies haben sich<br />

die Distributionen OpenELEC û, Raspbmc<br />

û <strong>und</strong> XBian û zum Ziel gesetzt.<br />

Sie alle führen nach dem Booten des<br />

Ras<strong>Pi</strong> XBMC û aus 3 . Das Kürzel steht<br />

<strong>für</strong> das XBox Media Center, das schon<br />

seit vielen Jahren entwickelt wird. Zuerst<br />

lief es auf modifizierten Xbox-Konsolen,<br />

später auf Desktop-PCs, <strong>und</strong> seit geraumer<br />

Zeit liegt es auch <strong>für</strong> den <strong>Raspberry</strong><br />

<strong>Pi</strong> vor. XBMC bietet <strong>für</strong> Videos <strong>und</strong> Musik<br />

eine große Palette an Möglichkeiten. So<br />

spielt es Mediendateien nicht nur von<br />

lokalen oder Netzlaufwerken ab, sondern<br />

kommt auch mit Web-Streams aller<br />

Art zurande. Zu seinen weiteren Fähigkeiten<br />

zählen das Starten externer Programme<br />

sowie das Einbinden von Skripten<br />

in ein ausgeklügeltes Plugin-System.<br />

Da alle drei Distributionen das gleiche<br />

Media-Center einsetzen, liegen die Unterschiede<br />

in den Details: Das schlanke<br />

OpenELEC 4 bootet rasend schnell,<br />

während die Raspbian-Modifikationen<br />

Raspbmc <strong>und</strong> XBian zum Starten etwas<br />

länger brauchen. Da<strong>für</strong> lassen Letztere<br />

sich leichter erweitern: Wollen Sie etwa<br />

aus XBMC heraus einen kleinen Webbrowser<br />

auf Knopfdruck aufrufen, so installieren<br />

Sie einfach das hier<strong>für</strong> nötige<br />

Raspbian-Paket nach <strong>und</strong> richten einen<br />

entsprechenden Menüpunkt in der<br />

Oberfläche ein. Raspbmc verfügt über<br />

ein sehr benutzerfre<strong>und</strong>liches Konfigurationsmenü,<br />

XBian punktet hingegen<br />

mit sehr aktueller Software.<br />

Im Gr<strong>und</strong>e ist es schwer, sich zwischen<br />

den drei Distributionen zu entscheiden,<br />

da ihre Unterschiede lediglich im Detail<br />

liegen. Alle drei werden sehr aktiv weiterentwickelt<br />

<strong>und</strong> glänzen daher regelmäßig<br />

mit Verbesserungen. Möchten Sie<br />

Ihr Wohnzimmer um ein Ras<strong>Pi</strong>-Media-<br />

38 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong>-Betriebssysteme<br />

Software<br />

Center bereichern, sollten Sie alle drei<br />

Distributionen vorab ausprobieren, um<br />

Ihren Favoriten zu ermitteln.<br />

Arch Linux<br />

Einen deutlichen Kontrapunkt zu Raspbian<br />

setzt Arch Linux û: Unter Verzicht<br />

auf eine grafische Oberfläche bootet es<br />

direkt in die Kommandozeile – doch das<br />

innerhalb weniger Sek<strong>und</strong>en. Damit<br />

treibt es absolute <strong>Einsteiger</strong> unweigerlich<br />

zur Verzweiflung, doch K<strong>und</strong>ige erhalten<br />

ein gertenschlankes Gr<strong>und</strong>system,<br />

das er seinen Bedürfnissen gemäß<br />

gezielt ausbauen kann. Zur Paketinstallation<br />

steht dabei der GUI-Paketmanager<br />

Pacman zur Verfügung, mit dessen Hilfe<br />

sich im Fall des Falles auch eine grafische<br />

Oberfläche einrichten lässt.<br />

Arch Linux verfolgt den Ansatz der<br />

„Rolling Releases“: Anders als bei vielen<br />

anderen Distributionen stellen die Entwickler<br />

neue Versionen von Programmen<br />

nicht in Zyklen bereit, sondern tagesaktuell<br />

über die Paketquellen. Ein regelmäßiges<br />

Anheben der Distribution<br />

auf eine neue Version kann hier also entfallen.<br />

Wer hier allerdings Fehler bei der<br />

Konfiguration macht, endet bei einem<br />

instabilen System. Arch Linux sollten Sie<br />

also nur nutzen, wenn Sie mit der Linux-<br />

Kommandozeile vertraut sind – oder darüber<br />

mehr hinzulernen möchten.<br />

RISC OS<br />

Der britische Hersteller Acorn lieferte in<br />

den Achtziger- <strong>und</strong> Neunzigerjahren das<br />

vollkommen eigenständige Betriebssystem<br />

RISC OS û bei diversen Homecomputer-Generationen<br />

mit. Vor allem in<br />

Großbritannien verkaufte Acorn Rechner<br />

wie den legendären Archimedes in größeren<br />

Stückzahlen. Da der Ras<strong>Pi</strong> eine<br />

stark verbesserte Variante der damals<br />

verbauten CPUs an Bord hat, lag es nahe,<br />

RISC OS <strong>für</strong> den neuen Minirechner anzupassen.<br />

Zwar handelt es sich bei RISC<br />

OS nicht um freie Software, doch Sie<br />

dürfen es kostenlos herunterladen, nutzen<br />

<strong>und</strong> darüber hinaus weitergeben.<br />

Genaueres regelt die beiliegende, proprietäre<br />

Lizenz des Systems.<br />

Aufgr<strong>und</strong> der langen Historie von RISC<br />

OS findet man im Netz auf vielen älteren<br />

Homepages entsprechende Software.<br />

Nicht jede davon läuft auf dem ARMv6<br />

des <strong>Raspberry</strong> <strong>Pi</strong>. Deswegen sollten Sie<br />

einen der beiden eingebauten Paketmanager<br />

(Store oder Packman) nutzen. Die<br />

beiden enthalten zwar nur einen kleinen<br />

Teil der Anwendungen <strong>und</strong> Spiele, diese<br />

wurden jedoch in Hinblick auf Kompatibilität<br />

<strong>und</strong> Qualität ausgewählt.<br />

Insgesamt arbeitet RISC OS recht stabil,<br />

bootet schnell <strong>und</strong> verfügt über einen<br />

schlanke Kern. Bei der Bedienung<br />

ergeben sich deutliche Unterschiede zu<br />

anderen Betriebssystemen, wie etwa der<br />

viel häufigere Gebrauch von Drag & Drop:<br />

Dateiauswahl-Dialoge (etwa beim Öffnen<br />

von Dateien in einem Programm)<br />

zeigen beispielsweise gr<strong>und</strong>sätzlich nie<br />

eine hierarchische Liste von Verzeichnissen<br />

<strong>und</strong> Dateien an. Stattdessen<br />

müssen Sie die gewünschte Datei mit<br />

der Maus aus einem Verzeichnisfenster<br />

des Desktops auf ein im jeweiligen Programm<br />

angezeigtes Icon schieben <strong>und</strong><br />

dort loslassen.<br />

NOOBS & BerryBoot<br />

NOOBS <strong>und</strong> BerryBoot fungieren nicht<br />

eigentlich als komplette Betriebssysteme,<br />

sondern stellen eine Mischung aus Bootmanager<br />

<strong>und</strong> Installationshilfe dar. Um<br />

eines der üblichen OS zu installieren, müssen<br />

Sie die zugehörigen Image-Dateien<br />

herunterladen <strong>und</strong> mittels eines entsprechenden<br />

Tools auf eine SD-Karte schreiben<br />

– das wird <strong>für</strong> viele Anfänger schon<br />

eine erste Hürde sein. Beim Ausprobieren<br />

mehrerer Ras<strong>Pi</strong>-Distributionen muss man<br />

die Boot-SD-Karte jedes Mal wieder neu<br />

am PC beschreiben, bevor diese ein neues<br />

Betriebssystem booten kann.<br />

Einfacher geht dies alles mit NOOBS û,<br />

der „New Out Of The Box Software“: Hier<br />

formatieren Sie auf dem PC die SD-Karte<br />

mit dem FAT32-Dateisystem <strong>und</strong> entpacken<br />

darauf anschließend die NOOBS-ZIP-<br />

Datei. Booten Sie nun von dieser SD-Card,<br />

können Sie aus einem Menü auswählen,<br />

ob Sie Raspbian, <strong>Pi</strong>dora, Arch Linux, Open-<br />

ELEC, Raspbmc oder RISC OS installieren<br />

möchten. Alle weiteren Installationsschritte<br />

übernimmt NOOBS automatisch.<br />

Für einen Wechsel des Betriebssystems<br />

drücken Sie direkt nach Starten des Bootvorgangs<br />

nur die Umschalttaste: Daraufhin<br />

erscheint wieder das Auswahlmenü, mittels<br />

dessen Sie das Betriebssystem durch<br />

ein anderes überschreiben. Betätigen Sie<br />

die Umschalttaste nicht, bootet die zuletzt<br />

installierte Distribution.<br />

Noch einen Schritt weiter in Richtung<br />

Bootmanager geht das ähnlich funktionierende<br />

BerryBoot û. Auch hier entpacken<br />

Sie zunächst die Archiv-Datei auf eine<br />

FAT32-formatierte SD-Karte. Nach dem<br />

Booten bietet BerryBoot zum einen an, ein<br />

gewünschtes Betriebssystem auf der SD-<br />

Karte selbst zu installieren. Alternativ legt<br />

es aber seine Boot-Dateien auch auf einen<br />

an den Ras<strong>Pi</strong> angeschlossenen USB-Stick<br />

oder einer Festplatte ab. Obendrein lassen<br />

sich mit BerryBoot mehrere Betriebssysteme<br />

gleichzeitig installieren, unter denen<br />

Sie dann in einem Bootmenü bei Start des<br />

Ras<strong>Pi</strong> auswählen.<br />

05.2013 www.raspberry-pi-geek.de<br />

39


Software<br />

Ras<strong>Pi</strong>-Betriebssysteme<br />

<strong>Pi</strong>Bang<br />

5 <strong>Pi</strong>Bang bietet eine schlanke Alternative <strong>für</strong> den Desktop-Betrieb des <strong>Raspberry</strong> <strong>Pi</strong>.<br />

Bei allem Interesse <strong>für</strong> den Mikrokosmos<br />

von RISC OS wirkt das System aus heutiger<br />

Sicht doch eher veraltet, insbesondere<br />

hinsichtlich des Funktionsumfangs<br />

der Software. So beherrscht der vorinstallierte<br />

Netsurf-Browser weder Javascript<br />

noch HTML5. Auch ein Büropaket,<br />

das sich annähernd mit LibreOffice messen<br />

kann, suchen Sie hier vergebens.<br />

Die Entwickler von <strong>Pi</strong>Bang û ließen sich<br />

vom ultraschlanken Crunchbang Linux<br />

inspirieren. Es verwendet als Standard<br />

den leichtgewichtigen Window-Manager<br />

Openbox, nutzt den neueren 3.6er-<br />

Kernel <strong>und</strong> bietet in seiner Paketquelle<br />

auch aktuellere Softwareversionen an<br />

(welche jedoch zum Teil nicht als stabil<br />

gelten). Darüber hinaus nutzt es nicht<br />

nur die Paketquellen <strong>für</strong> die Original-Debian-Pakete,<br />

sondern darüber hinaus<br />

weitere, um mehr Software anbieten zu<br />

können. Die Bildbearbeitung Gimp <strong>und</strong><br />

die Textverarbeitung Abiword sind bereits<br />

vorinstalliert.<br />

<strong>Pi</strong>Bang setzt zwar weniger Vorkenntnisse<br />

voraus als etwa Arch Linux, überfordert<br />

jedoch <strong>Einsteiger</strong> trotzdem. Beim<br />

ersten Booten erscheint noch die Konfigurationshilfe<br />

Raspi-config, doch <strong>für</strong> den<br />

Desktopbetrieb müssen Sie sich erst einmal<br />

selbst einen Benutzer anlegen. Auch<br />

wirkt die Optik der Oberfläche recht<br />

spartanisch 5 – Anfänger dürften sich<br />

bei Raspbian vermutlich wohler fühlen.<br />

Gentoo<br />

Eindeutig nicht an Anfänger richtet<br />

sich das seit 1999 existierende Gentoo<br />

Linux û, das mittlerweile auch auf dem<br />

<strong>Raspberry</strong> <strong>Pi</strong> läuft. Kernpunkt von Gentoos<br />

Philosophie: Es verzichtet auf Binärpakete.<br />

Stattdessen laden Sie den Quellcode<br />

der Programme herunter <strong>und</strong> kompilieren<br />

diesen auf dem Zielrechner. So<br />

erhalten Sie topaktuelle Software <strong>und</strong><br />

können das System zudem perfekt auf<br />

Leistung trimmen. Der Nachteil: Sie müssen<br />

sich sehr gut auskennen, um auf der<br />

Shell quasi das ganze Betriebssystem<br />

selbst zusammenzustellen. Zudem benötigt<br />

die schmalbrüstige Ras<strong>Pi</strong>-CPU <strong>für</strong><br />

Compiler-Durchläufe relativ lang.<br />

Android<br />

6 AROS bringt altbekanntes Amiga-Feeling zurück auf den <strong>Raspberry</strong> <strong>Pi</strong>.<br />

Viele Android-Fans würden gerne ihr<br />

Smartphone-Betriebssystem auch auf<br />

dem <strong>Raspberry</strong> <strong>Pi</strong> nutzen. Hängt der<br />

Mini rechner am Fernseher, ergibt das<br />

auch Sinn: So finden die Lieblingsspiele<br />

40 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong>-Betriebssysteme<br />

Software<br />

aus dem Play-Store <strong>und</strong> diverse TV-<br />

Streaming-Apps einen bequemen Weg<br />

ins heimische Wohnzimmer. Tatsächlich<br />

gibt es auch ein von der Community portiertes<br />

SD-Card-Image û mit Cyanogen-<br />

Mod 7.2 / Android 2.3 – doch das erweist<br />

sich in der Praxis als zu langsam, da jegliche<br />

Hardware-Beschleunigung fehlt.<br />

Die <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation misst darüber<br />

hinaus einem Android-Port nur<br />

niedrige Priorität zu, da sie ihre begrenzten<br />

Entwicklerkapazitäten lieber auf die<br />

Bildungsarbeit mit dem Ras<strong>Pi</strong> konzentriert.<br />

So liegt ein alternativer Android-<br />

Port der Fo<strong>und</strong>ation seit Längerem auf<br />

Eis. In naher Zukunft sollten <strong>Raspberry</strong>-<br />

<strong>Pi</strong>-Fans also nicht mit einem brauchbaren<br />

Android-Image des Smartphone-<br />

Betriebssystems rechnen.<br />

Fazit<br />

Nun bleibt Ihnen die Qual der Wahl. Für<br />

den ersten Einstieg sollten Sie im Zweifelsfall<br />

auf Raspbian setzen. Später können<br />

Sie immer noch die ein oder andere<br />

Alternative auf SD-Karte bannen, um einen<br />

persönlichen Vergleich anzustellen.<br />

Im Netz finden sich neben den oben genannten<br />

Vertretern noch zahlreiche weitere<br />

Ras<strong>Pi</strong>-Distributionen, davon einige<br />

<strong>für</strong> ganz spezielle Einsatzzwecke.<br />

In diese Riege gehören beispielsweise<br />

die Systeme <strong>Pi</strong>Point û, das den Minirechner<br />

in einen Access-Point mit WLAN-<br />

Verbindung verwandelt, oder auch<br />

IPFire û, mit dem Sie aus dem <strong>Raspberry</strong><br />

<strong>Pi</strong> einen kompletten Router inklusive<br />

Fire wall bauen. (jlu) n<br />

Sonderfall AROS<br />

AROS û basiert auf dem Betriebssystem<br />

des Commodore Amiga <strong>und</strong> ist zu dessen<br />

APIs kompatibel. Man kann also theoretisch<br />

ein Programm, das <strong>für</strong> die alte<br />

Amiga-Workbench geschrieben wurde <strong>und</strong><br />

das nicht direkt auf die Hardware zugreift,<br />

<strong>für</strong> AROS neu übersetzen. Seine Ursprünge<br />

hat das Open-Source-Projekt in der Zeit<br />

Mitte der Neunzigerjahre, als nach der<br />

Commodore-Pleite Fans des Homecomputers<br />

ihr gewohntes Betriebssystem <strong>für</strong> PCs<br />

mit x86-Prozessoren nachprogrammierten.<br />

Später portierten sie den Code dann auch<br />

<strong>für</strong> verschiedenste andere Prozessoren.<br />

Derzeit lässt sich die native Ras<strong>Pi</strong>-Umsetzung<br />

allerdings noch nicht benutzen, da<br />

manche Hardware-Treiber erst noch neu<br />

entwickelt werden müssen. Da<strong>für</strong> existiert<br />

eine sogenannte Linux-hosted-Variante:<br />

Hier booten Sie zuerst irgendein Linux<br />

(etwa Raspbian). Anschließend laden Sie<br />

den Binary-Nightly-Build û <strong>für</strong> ARM-Prozessoren<br />

herunter <strong>und</strong> führen aus diesem<br />

Archiv das Programm AROSBootstrap aus.<br />

Das nun startende AROS 6 nutzt <strong>für</strong> den<br />

Hardware-Zugriff auf den Ras<strong>Pi</strong> die Linux-<br />

Treiber. Momentan wirkt bei diesem System<br />

vieles noch unfertig, doch AROS verspricht<br />

bereits, sich zu einer netten Spielerei<br />

<strong>für</strong> <strong>Raspberry</strong>-Besitzer zu mausern, die<br />

früher einmal einen Amiga besaßen.<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29893<br />

05.2013 www.raspberry-pi-geek.de<br />

41


Server<br />

File- <strong>und</strong> Print-Server<br />

<strong>Raspberry</strong> <strong>Pi</strong> als Datei- <strong>und</strong> Druckerserver<br />

Zentrallager<br />

©<br />

Sculpies, 123RF<br />

Dank seines geringen Stromverbrauchs<br />

eignet sich der<br />

Ras<strong>Pi</strong> optimal <strong>für</strong> den Einsatz<br />

als r<strong>und</strong> um die Uhr laufender<br />

Home-Server. Dabei lässt<br />

er sich innerhalb kürzester<br />

Zeit sehr flexibel anpassen.<br />

Marko Dragicevic<br />

Readme<br />

Über den <strong>Raspberry</strong> <strong>Pi</strong> geben Sie mit wenigen<br />

Handgriffen ein angeschlossenes externes<br />

Speichermedium zur Nutzung im heimischen<br />

LAN frei. Auch das Einrichten eines<br />

Druckservers macht dank Cups <strong>und</strong> seiner<br />

Weboberfläche nur wenig Arbeit.<br />

Selbst Privathaushalte sind heutzutage<br />

vernetzt: Über das lokale Wireless-Netz<br />

tauschen nicht nur die Desktop-PCs von<br />

Familien- oder WG-Mitgliedern untereinander<br />

Daten aus, sondern auch Tablets<br />

<strong>und</strong> Smartphones interagieren darüber.<br />

Da mutet es eher anachronistisch an,<br />

wenn man einen gemeinsamen Drucker<br />

nur nutzen kann, indem man einen USB-<br />

Stick mit den benötigten Dokumenten<br />

füllt <strong>und</strong> zum Drucker bringt. Selbst in<br />

Privatwohnungen haben sich deswegen<br />

inzwischen Print-Server durchgesetzt.<br />

Doch mit welcher Lösung setzt man<br />

dies alles schnell, kostengünstig <strong>und</strong> im<br />

Bedarfsfall trotzdem flexibel auf? Da<strong>für</strong><br />

stellt der <strong>Raspberry</strong> <strong>Pi</strong> eine gute Lösung<br />

dar: Seine Anschaffungskosten fallen gering<br />

aus, die Stromaufnahme ebenfalls.<br />

Die gewünschten Datei- <strong>und</strong> Druckdienste<br />

konfigurieren Sie mit wenig Zeitaufwand<br />

<strong>und</strong> ein paar Kommandos.<br />

Gr<strong>und</strong>lage<br />

Laden Sie die neueste Version von Raspbian<br />

von http:// www. raspberrypi. org/​<br />

downloads herunter <strong>und</strong> flashen diese<br />

auf eine SD-Karte. Für die allerersten<br />

Konfigurationsschritte sollten Sie der<br />

Einfachheit halber den Ras<strong>Pi</strong> an einen<br />

Monitor anschließen. Beim ersten Booten<br />

von der frisch beschriebenen SD-<br />

Karte landen Sie in einem Dialog, der ein<br />

paar gr<strong>und</strong>legende Einstellungen anbietet.<br />

Sie können ihn zu einem späteren<br />

Zeitpunkt jederzeit über den Konsolenbefehl<br />

sudo raspi‐config aufrufen.<br />

Bei jeder Raspbian-Neukonfiguration<br />

empfiehlt es sich, das Root-Passwort<br />

über den Menüpunkt change_pass zu<br />

ändern sowie den Speicherplatz der SD-<br />

Karte mittels des Punktes expand_rootfs<br />

komplett auszunutzen. Da Sie einen Server<br />

aufsetzen, ist jedoch auch der Punkt<br />

Boot Behaviour wichtig: Setzen Sie hier<br />

Boot straight to desktop nicht auf No, verbraten<br />

Sie unnötig Ressourcen. Bei der<br />

Auswahl ssh bietet es sich darüber<br />

hinaus an, Enable SSH-Server auszuwählen,<br />

damit Sie den Ras<strong>Pi</strong> „headless“ nutzen<br />

können, also ohne Monitor.<br />

Damit Sie wissen, unter welcher IP-Adresse<br />

der Ras<strong>Pi</strong> im LAN zu erreichen ist,<br />

geben Sie noch ifconfig ein <strong>und</strong> notieren<br />

die Angabe hinter inet addr:. Fahren<br />

42 www.raspberry-pi-geek.de<br />

05.2013


File- <strong>und</strong> Print-Server<br />

Server<br />

Sie nun das Gerät herunter <strong>und</strong> platzieren<br />

Sie es an seinem künftigen Platz –<br />

beispielsweise neben dem Router, an<br />

den es dann mittels Netzwerkkabel angeschlossen<br />

wird. Ansonsten benötigt<br />

der Ras<strong>Pi</strong> nur noch ein Stromkabel zur<br />

Spannungsversorgung. Nach dem Einschalten<br />

des <strong>Raspberry</strong>s setzen Sie sich<br />

an einen Client im Netz <strong>und</strong> melden sich<br />

von dort aus auf dem Minicomputer ein:<br />

$ ssh pi@192.168.2.129<br />

Die IP-Adresse in obigem Beispiel ersetzen<br />

Sie durch jene, die Sie eben als Ausgabe<br />

von ifconfig notiert haben. Falls<br />

Sie das Passwort des Benutzers pi geändert<br />

haben sollten, verwenden Sie dieses<br />

statt der Vorgabe raspberry.<br />

Denken Sie daran, im Router des LANs<br />

einzustellen, dass dessen DHCP-Server<br />

dem Ras<strong>Pi</strong> immer dieselbe IP-Adresse<br />

zuteilt. Im Folgenden gehen wir davon<br />

aus, dass die IP 192.168.2.129 lautet. Ersetzen<br />

Sie diese immer jeweils durch die<br />

in Ihrem LAN gültige.<br />

Externer Speicher<br />

Theoretisch könnten Sie <strong>für</strong> den File-Server<br />

ausschließlich den Platz auf der SD-<br />

Karte verwenden, von der auch das System<br />

bootet. Der dürfte allerdings in den<br />

meisten Fällen nicht ausreichen, insbesondere,<br />

wenn Sie auch Videos, Musik<br />

oder Backups ablegen möchten. Dieses<br />

Problem lösen Sie mit einem permanent<br />

angeschlossenen USB-Stick beziehungsweise<br />

einer externen USB-Festplatte.<br />

Dazu formatieren Sie das externe<br />

Speichermedium mit einem von Linux<br />

unterstützten Dateisystem wie Ext4.<br />

Nach dem Anstöpseln des Massenspeichers<br />

an den USB-Port des <strong>Raspberry</strong> <strong>Pi</strong><br />

rufen Sie auf der Konsole dmesg auf. Dies<br />

liefert den aktuellen Message Buffer des<br />

Kernels zurück. Gegen Ende der Ausgabe<br />

finden Sie eine Zeichenkette des<br />

Strickmusters sda: sda1. Sie zeigt an,<br />

unter welchem Kürzel (in unserem Beispiel<br />

sda1) das Betriebssystem die Partition<br />

auf dem USB-Stick anspricht 1 .<br />

Rufen Sie nun sudo mkdir /mnt/ExternalStorage<br />

auf sowie sudo nano<br />

/ etc/fstab. In der Datei fstab tragen<br />

Sie nun die zusätzliche Zeile aus Listing<br />

1 ein, wobei Sie sda1 durch die Angabe<br />

ersetzen, die Sie vorhin nach der<br />

Eingabe von dmesg erhielten.<br />

Auf diese Weise bindet Raspbian den<br />

externen Massenspeicher bei jedem Systemstart<br />

automatisch im Dateibaum unter<br />

/mnt/ExternalStorage/ ein, sodass<br />

Sie bei den folgenden Konfigurationsschritten<br />

von der Existenz dieses Verzeichnisses<br />

ausgehen können. Damit alle<br />

Dienste <strong>und</strong> Nutzer diesen Speicherbereich<br />

problemlos beschreiben <strong>und</strong> lesen<br />

können, führen Sie folgenden Befehl aus:<br />

$ sudo chmod ‐R ugoa+rwx /mnt/ExtU<br />

ernalStorage<br />

Falls Sie statt eines USB-Sticks eine externe<br />

Festplatte verwenden, sollten Sie da<strong>für</strong><br />

sorgen, dass diese nicht zu viel Strom<br />

verbraucht – der Ras<strong>Pi</strong> selbst benötigt<br />

nur sehr wenig Energie. Hierbei hilft das<br />

Programm Hdparm. Tragen Sie hierzu in<br />

die Datei /etc/hdparm.conf die Zeile<br />

sudo hdparm ‐S 12 /dev/sda ein (<strong>und</strong><br />

ersetzen Sie dabei gegebenenfalls /dev/<br />

sda durch den passenden Gerätenamen).<br />

Dieser bewirkt, dass nach 60 Se-<br />

Raspbian „Wheezy“ 2013-05-25<br />

(ISO als ZIP-Datei)<br />

RPG/raspbian/<br />

Listing 1<br />

/dev/sda1 /mnt/ExternalStorage<br />

ext4 defaults 0 0<br />

Listing 2<br />

$ sudo apt‐get install samba<br />

samba‐common‐bin<br />

...<br />

$ sudo nano /etc/samba/smb.conf<br />

Listing 3<br />

[public]<br />

comment = Public<br />

path = /mnt/ExternalStorage/<br />

valid users = @users<br />

force group = users<br />

create mask = 0660<br />

directory mask = 0771<br />

read only = no<br />

1 Das Kommando dmesg hilft beim Finden des USB-Sticks.<br />

Listing 4<br />

$ sudo apt‐get install rsync<br />

...<br />

$ sudo nano /etc/rsyncd.conf<br />

05.2013 www.raspberry-pi-geek.de<br />

43


Server<br />

File- <strong>und</strong> Print-Server<br />

2 Den Druckerdienst Cups verwalten Sie via Webbrowser auch aus der Ferne.<br />

Listing 5<br />

use chroot = true<br />

hosts allow = 192.168.2.0/24<br />

transfer logging = true<br />

log file = /var/log/rsyncd.log<br />

log format = %h %o %f %l %b<br />

[public]<br />

comment = Public<br />

path = /mnt/ExternalStorage/<br />

read only = no<br />

list = yes<br />

uid = nobody<br />

gid = nogroup<br />

Listing 6<br />

01 $ sudo apt‐get install cups<br />

02 $ sudo cupsctl<br />

‐‐share‐printers<br />

‐‐remote‐printers<br />

‐‐remote‐admin<br />

03 $ sudo usermod ‐a ‐G lpadmin<br />

pi<br />

k<strong>und</strong>en ohne Zugriffe die Festplatte automatisch<br />

einen stromsparenden Spindown<br />

vornimmt. Die Zahl hinter dem Parameter<br />

‐S ergibt, mit fünf multipliziert,<br />

die Anzahl Sek<strong>und</strong>en, die vergehen<br />

müssen, um dies auszulösen (in diesem<br />

Fall also 12 mal 5 gleich 60).<br />

Nun gilt es, noch Dienste <strong>für</strong> alle Übertragungsprotokolle<br />

zu installieren, welche<br />

die Nutzer im LAN verwenden. Handelt<br />

es sich um ein gemischtes Netzwerk<br />

aus Windows-, Linux- <strong>und</strong> Mac-OS-Rechnern,<br />

bietet sich aus Kompatibilitätsgründen<br />

Samba an. Dazu installieren Sie<br />

zunächst einmal den Dienst <strong>und</strong> editieren<br />

anschließend dessen Konfigurationsdatei<br />

(Listing 2).<br />

Arbeitsgruppe<br />

Verwenden die Rechner, die auf den Ras-<br />

<strong>Pi</strong> zugreifen sollen, einen bestimmten<br />

Workgroup-Namen, passen Sie die Zeile<br />

workgroup = WORKGROUP entsprechend<br />

an. Für den Fall, dass Sie nicht generell<br />

jedem im LAN Zugriff auf den File-Server<br />

gestatten möchten, lässt sich die Authentifizierung<br />

ganz einfach aktivieren.<br />

Dazu suchen Sie die Zeile mit der Angabe<br />

security = user <strong>und</strong> löschen das<br />

Doppelkreuz, mit der diese auskommentiert<br />

wurde. Scrollen Sie nun an das Ende<br />

der Datei <strong>und</strong> fügen Sie die Zeilen aus<br />

Listing 3 an.<br />

Nun speichern Sie die Datei <strong>und</strong> starten<br />

anschließend den Dienst mit sudo<br />

/ etc/init.d/samba restart neu, damit<br />

die Änderungen wirksam werden. Ein<br />

Benutzerkonto legen Sie nun zunächst<br />

einmal <strong>für</strong> die Shell an. Falls sich also<br />

beispielsweise die anderen Rechner mittels<br />

des Benutzernamens fileserver authentifizieren<br />

sollen, geben Sie sudo<br />

useradd fileserver ‐m ‐G users an<br />

<strong>und</strong> ändern das Shell-Passwort via sudo<br />

passwd fileserver an.<br />

Mittels sudo smbpasswd ‐a fileserver<br />

teilen Sie dann dem Benutzer noch<br />

ein Samba-Passwort zu, mit dem nun<br />

der eigentliche Zugriff auf den Dienst erfolgt.<br />

Andere Rechner können jetzt in ihren<br />

jeweiligen Dateimanagern das LAN<br />

nach Netzlaufwerken durchsuchen <strong>und</strong><br />

den Speicher des Ras<strong>Pi</strong> einbinden.<br />

Alternativ lässt sich <strong>für</strong> Dateiübertragungen<br />

auch SFTP nutzen. Da Sie den<br />

SSH-Server bereits aktiviert haben, erfordert<br />

dies keine zusätzlichen Konfigurationsschritte:<br />

Die aktuelle Raspian-Version<br />

erlaubt bereits in der Gr<strong>und</strong>konfiguration<br />

SFTP-Übertragungen.<br />

Backup<br />

Um den Ras<strong>Pi</strong>-Server auch <strong>für</strong> Backups<br />

der Arbeitsdaten zu nutzen, bietet sich<br />

Rsync an: Dieses Programm synchronisiert<br />

Daten zwischen zwei Netzwerkstandorten<br />

derart, dass es nur die Dateien<br />

mit einem neueren Zeitstempel überträgt<br />

– also diejenigen, die sich seit dem<br />

letzten Sync-Vorgang geändert haben.<br />

Da es sich um ein Shell-Kommando handelt,<br />

können Sie bei Bedarf in einen<br />

Cron-Job einbinden. Installieren Sie<br />

Rsync auf dem Ras<strong>Pi</strong>, <strong>und</strong> rufen Sie im<br />

Editor die Konfigurationsdatei <strong>für</strong> den<br />

Rsync-Daemon auf (Listing 4).<br />

In der Regel enthält die Datei rsyncd.<br />

conf noch keinerlei Text. Sie fügen nun<br />

die Angaben aus Listing 5 ein. Diese bewirken,<br />

dass jeder aus dem IP-Bereich<br />

des heimischen LANs Synchronisationsvorgänge<br />

auf dem USB-Stick am Ras<strong>Pi</strong><br />

vornehmen darf. Haben Sie in Ihrem<br />

Router einen anderen IP-Adressbereich<br />

als 192.168.2.0 <strong>für</strong> das LAN eingestellt,<br />

müssen Sie diese Angabe anpassen.<br />

Der folgende Befehl <strong>für</strong> die Kommandozeile<br />

lädt anschließend alle Dateien<br />

aus ~/workspace/* auf den <strong>Raspberry</strong> <strong>Pi</strong><br />

44 www.raspberry-pi-geek.de<br />

05.2013


File- <strong>und</strong> Print-Server<br />

Server<br />

hoch, die Sie seit dem letzten Backup in<br />

diesem Verzeichnis verändert haben:<br />

rsync ‐avz ~/workspace/* rsync://U<br />

192.168.2.129/public<br />

Sollen nur bestimmte Anwender Backups<br />

vornehmen dürfen? Dann ergänzen<br />

sie die Datei rsyncd.conf noch um die<br />

Zeilen auth users=Backup (nur der User<br />

Backup darf Rsync benutzen) <strong>und</strong> secrets<br />

file=/etc/rsyncd.scrt (das Passwort<br />

<strong>für</strong> diesen Benutzer steht somit in<br />

der Datei /etc/rsyncd.scrt). Letztere<br />

müssen Sie anschließend nur noch anlegen<br />

<strong>und</strong> dort dann eine Zeile in der<br />

Form Backup:Passwort eintragen.<br />

Print-Server<br />

3 Den an den Ras<strong>Pi</strong> angeschlossenen Drucker finden Sie unter dem Punkt Lokale Drucker.<br />

An den zweiten USB-Port des <strong>Raspberry</strong><br />

<strong>Pi</strong> schließen Sie nun einen Drucker an,<br />

damit alle Rechner im LAN ihre Ausdrucke<br />

über diesen absetzen können. Nach<br />

der Installation des Common Unix Print<br />

Servers Cups (Listing 6, Zeile 1) geben<br />

Sie diesen erst einmal <strong>für</strong> das Netzwerk<br />

frei (Zeile 2). Aufgr<strong>und</strong> des Zusatzes<br />

‐‐remote‐admin lässt sich der Print-Server<br />

auch vom PC aus via Webbrowser<br />

verwalten. Zunächst müssen Sie dazu<br />

noch dem Standardbenutzer pi den<br />

Druckerzugriff gestatten (Zeile 3).<br />

Anschließend geben Sie im Webbrowser<br />

auf einem beliebigen PC im LAN die<br />

Adresse des Rasp berry <strong>Pi</strong> ein. In unserem<br />

Beispiel lautet die entsprechende URL<br />

https://192.168.2.129:631/admin.<br />

Daraufhin erscheint die Konfigurationsoberfläche<br />

von Cups 2 . Hier wählen Sie<br />

Drucker hinzufügen <strong>und</strong> geben anschließend<br />

das entsprechende Druckermodell<br />

an. Bei der Authentifizierungsabfrage<br />

tragen Sie die Benutzerdaten des <strong>Pi</strong>-Benutzers<br />

ein. Nun erscheint unter Lokale<br />

Drucker der via USB an den <strong>Raspberry</strong> <strong>Pi</strong><br />

angeschlossene Drucker 3 . Wählen Sie<br />

diesen aus, <strong>und</strong> klicken Sie auf Weiter.<br />

Im folgenden Konfigurationsschritt<br />

geben Sie die URI <strong>für</strong> den Drucker an.<br />

Diese hängt von dessen Hersteller <strong>und</strong><br />

Modell ab. Über den auf der Seite angegebenen<br />

Hilfe-Link Netzwerk Drucker finden<br />

Sie die richtige URI heraus. Nach einem<br />

Klick auf Weiter müssen Sie noch<br />

einen Namen <strong>für</strong> den Drucker vergeben<br />

sowie eine Beschreibung <strong>für</strong> dessen<br />

Standort eintippen. Dann wählen Sie das<br />

Kästchen Diesen Drucker freigeben aus<br />

<strong>und</strong> klicken schließlich auf Weiter. Nun<br />

wählen Sie noch einmal den konkret<br />

verwendeten Druckertyp aus, damit<br />

auch intern der richtige Treiber Anwendung<br />

findet. Ein Mausklick auf Drucker<br />

hinzufügen schließt die Konfiguration ab.<br />

Möchten Sie den Drucker auch von einem<br />

Windows-Rechner aus benutzen,<br />

gilt es, die Samba-Konfiguration entsprechend<br />

anzupassen. Dazu öffnen Sie<br />

erneut die Datei /etc/samba/smb.conf,<br />

löschen die auskommentierenden<br />

Strichpunkte vor den Zeilen printing =<br />

cups sowie printcap name = cups <strong>und</strong><br />

starten Samba mit sudo /etc/init.d/<br />

samba restart neu. Auf Windows-Systemen<br />

lässt sich der Drucker nun wie ein<br />

normaler Netzwerkdrucker hinzufügen.<br />

Ausblick<br />

Nun verfügen Sie über einen eigenen<br />

Datei- <strong>und</strong> Druckserver. Falls Sie irgendeinen<br />

Dienst nicht benötigen, sollten Sie<br />

diesen abschalten, um Ressourcen zu<br />

sparen <strong>und</strong> potenzielle Angriffstore zu<br />

schließen. Umgekehrt können Sie bei<br />

Bedarf einen weiteren Serverdienst hinzufügen.<br />

Da es sich bei Raspbian um ein<br />

vollwertiges Debian-Derivat handelt,<br />

stehen Ihnen hier alle Möglichkeiten der<br />

Distribution offen. (jlu) n<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29875<br />

05.2013 www.raspberry-pi-geek.de<br />

45


Server<br />

Webserver<br />

<strong>Raspberry</strong> <strong>Pi</strong> als Webserver<br />

Appetitlich serviert<br />

Raspbian bringt<br />

alles mit, was Sie<br />

<strong>für</strong> die Konfiguration<br />

<strong>und</strong> den Betrieb<br />

eines vollwertigen Webservers<br />

samt PHP, Datenbank<br />

© Volodymyr Krasyuk, 123RF<br />

<strong>und</strong> CMS im heimischen LAN<br />

brauchen. So erstellen <strong>und</strong><br />

testen Sie eigene Webseiten,<br />

ohne dabei der Gefahr von<br />

Attacken ausgesetzt zu sein.<br />

Marko Dragicevic<br />

Readme<br />

Wer erste Experimente mit dem Aufsetzen<br />

eines Webservers <strong>und</strong> dem Erstellen von<br />

dynamischen Webseiten unternehmen<br />

möchte, sollte sich hier<strong>für</strong> keinen Root-Server<br />

in einem Rechenzentrum mieten: Ohne<br />

Erfahrung besteht die Gefahr, gehackt zu<br />

werden. Der Ras<strong>Pi</strong> im heimischen LAN ist<br />

<strong>für</strong> Anfänger die bessere Alternative.<br />

Nicht umsonst entwarf die <strong>Raspberry</strong> <strong>Pi</strong><br />

Fo<strong>und</strong>ation ihren Minicomputer <strong>für</strong> Ausbildungszwecke<br />

– gerade auch <strong>für</strong> den<br />

Anwendungsfall eines Webservers eignet<br />

er sich hervorragend. Die nur begrenzt<br />

leistungsfähige Hardware erlaubt<br />

anschaulich zu lernen, welche Vorgehensweisen<br />

zu viel Last erzeugen <strong>und</strong><br />

somit einen weitaus stärkeren Server bei<br />

einer großen Nutzerzahl ebenfalls in die<br />

Knie zwingen würden – beispielsweise<br />

schlecht programmierte PHP-Skripte.<br />

Dennoch ist der Ras<strong>Pi</strong> mächtig genug,<br />

um die gr<strong>und</strong>legenden Konfigurationsschritte<br />

innerhalb des <strong>für</strong> Webserver typischen<br />

Debian-Systems zu üben. So<br />

kann man eigene Webseiten erstellen<br />

<strong>und</strong> testen, ohne den Gefahren von Angriffen<br />

ausgesetzt zu sein: Die NAT-<br />

Firewall des heimischen Routers beschützt<br />

den <strong>Raspberry</strong> <strong>Pi</strong>. Und wenn<br />

man den kleinen Rechner zwischendurch<br />

doch wieder <strong>für</strong> etwas anderes<br />

verwenden möchte, bootet man ihn einfach<br />

von einer anderen SD-Karte.<br />

Ein <strong>Raspberry</strong> <strong>Pi</strong> im Server-Einsatz<br />

muss „headless“ funktionieren, also ohne<br />

Monitor. Die Verwaltung erfolgt über<br />

eine SSH-Verbindung von einem anderen<br />

Rechner im LAN aus. Dazu gehen Sie<br />

wie im vorigen Artikel û ab Seite 42 beschrieben<br />

vor: Sie schalten bei einer frischen<br />

Raspbian-Installation den Desktop<br />

aus, aktivieren den SSH-Server <strong>und</strong><br />

melden sich über die vorher ermittelte<br />

IP-Adresse des <strong>Raspberry</strong>s mit einer SSH-<br />

Verbindung an.<br />

Haben Sie jedoch keinen PC in Reichweite<br />

<strong>und</strong> möchten stattdessen den<br />

Rasp berry <strong>Pi</strong> nicht nur als Webserver einsetzen,<br />

sondern auf ihm auch im Webbrowser<br />

die Seiten betrachten, dann verzichten<br />

Sie auf die im vorigen Artikel beschriebenen<br />

Schritte. Stattdessen geben<br />

Sie im Browser als IP-Adresse die<br />

127.0.0.1 an, also die Referenz <strong>für</strong> den<br />

lokalen PC (sprich: den Ras<strong>Pi</strong>).<br />

Apache & Co.<br />

Apache ist mit Abstand der beliebteste<br />

Webserver: Anfang 2013 benutzten ihn<br />

53 Prozent aller Internet-Sites, der nächste<br />

Konkurrent erreichte nur einen Wert<br />

von unter 20 Prozent û. Schon diese<br />

Verbreitung macht Apache zu einer gu-<br />

46 www.raspberry-pi-geek.de<br />

05.2013


Webserver<br />

Server<br />

ten Wahl: So fällt es etwa bei Problemen<br />

leicht, in Internet-Foren eine Lösung zu<br />

finden, falls die ausführliche Dokumentation<br />

keine Antwort bietet. Dennoch<br />

gibt es Fälle, in denen ein anderer Webserver<br />

die bessere Wahl darstellt – dazu<br />

später noch mehr.<br />

Residiert auf der SD-Karte des Ras<strong>Pi</strong><br />

die neueste Raspbian-Version, installieren<br />

Sie als Erstes über das Kommando<br />

sudo apt‐get install apache2 den<br />

Webserver. Bei älteren Versionen führte<br />

dies zu einem Installationsfehler, weil<br />

dort die Benutzergruppe www-data<br />

nicht vorhanden war. Falls Sie aus einem<br />

bestimmten Gr<strong>und</strong> eine ältere Raspbian-<br />

Installation nutzen, müssen Sie vor dem<br />

Einrichten von Apache den Befehl sudo<br />

groupadd www‐data aufrufen.<br />

Sobald Sie nach der Apache-Installation<br />

die IP-Adresse des <strong>Raspberry</strong> <strong>Pi</strong> in<br />

einen Browser eingeben, erscheint die<br />

voreingestellte index.html mit dem<br />

Schriftzug It works! 1 . Diese Seite befindet<br />

sich auf dem <strong>Raspberry</strong> <strong>Pi</strong> im Verzeichnis<br />

/var/www/. Editieren Sie testweise<br />

den angezeigten Text mit sudo<br />

nano /var/www/index.html <strong>und</strong> laden<br />

Sie die Page im Browser neu. Sie sollten<br />

die Änderungen sofort sehen können.<br />

PHP & MySQL<br />

Eine statische Webseite mutet wie ein<br />

Relikt aus der Internet-Steinzeit an. Deswegen<br />

peppen Sie nun den Webserver<br />

mit PHP <strong>und</strong> MySQL auf. Die hierzu notwendigen<br />

Pakete installiert folgender<br />

Befehl:<br />

$ sudo apt‐get install php5 libapU<br />

ache2‐mod‐php5 mysql‐server mysqlU<br />

‐client php5‐mysql<br />

Lehnen Sie sich nach dem Eintippen zurück,<br />

<strong>und</strong> trinken Sie erst einmal einen<br />

Kaffee. Der Minirechner hat jetzt einiges<br />

zu tun, weil er viele Pakete mit installieren<br />

muss, von denen die Installationskandidaten<br />

abhängen. Im Zug der Einrichtung<br />

fragt ein Textdialog nach dem<br />

Passwort <strong>für</strong> den MySQL-Root-Benutzer.<br />

Für Übungszwecke genügt vorerst eines,<br />

das Sie sich leicht merken können, wie<br />

etwa raspberry.<br />

Nach dem Abschluss der Installation<br />

legen Sie nun mithilfe eines Texteditors<br />

unter /var/www/ ein Skript namens<br />

firsttest.php an. Die Datei erhält als<br />

Inhalt den Dreizeiler aus Listing 1. Rufen<br />

Sie das Skript über die IP-Adresse ab, im<br />

Beispiel http://192.168.2.131/firsttest.php,<br />

dann erhalten Sie eine Ausgabe<br />

wie in Abbildung 2 . Hier sehen Sie<br />

auch, mit welchen Optionen PHP zur<br />

Zeit konfiguriert ist.<br />

Installieren Sie später ein Skript, das<br />

aus Konfigurationsgründen den Dienst<br />

versagt, können Sie anhand der firsttest.php-Seite<br />

nachforschen, welcher<br />

Parameter da<strong>für</strong> möglicherweise verantwortlich<br />

zeichnet. So haben Sie die Möglichkeit,<br />

diesen in der Datei /etc/php5/<br />

apache2/php.ini zu ändern.<br />

Es empfiehlt sich, mittels des Befehls<br />

sudo apt‐get install phpmyadmin zusätzlich<br />

PHPMyAdmin zu installieren. Es<br />

hilft dabei, die Inhalte der MySQL-Datenbank<br />

komfortabel über den Browser zu<br />

verwalten. Sofern Sie selbst PHP-Skripte<br />

schreiben, können Sie mit PHPMyAdmin<br />

auch kontrollieren, ob diese fehlerfrei<br />

sind <strong>und</strong> die Daten wie beabsichtigt ablegen.<br />

Um die Oberfläche aufzurufen,<br />

melden Sie sich im Browser über die URL<br />

http://192.168.2.131/phpmyadmin<br />

an 3 , wobei Sie die IP-Adresse durch<br />

Raspbian „Wheezy“ 2013-05-25<br />

Listing 1<br />

<br />

Listing 2<br />

LU/raspbian/<br />

01 $ sudo usermod ‐a ‐G www‐data<br />

pi<br />

02 $ sudo chmod 775 /var/www<br />

03 $ sudo adduser Benutzer<br />

www‐data<br />

Listing 3<br />

$ sudo apt‐get install<br />

php5‐common php5‐cgi php5<br />

$ sudo apt‐get install php5‐mysql<br />

$ sudo lighty‐enable‐mod<br />

fastcgi‐php<br />

$ sudo service lighttpd<br />

force‐reload<br />

Listing 4<br />

$ find . ‐type f ‐exec chmod 644<br />

{} \;<br />

$ find . ‐type d ‐exec chmod 755<br />

{} \;<br />

1 Nach der Installation des Apache sieht in der Regel die erste Index-Seite auf dem Webserver zunächst noch relativ mager aus.<br />

05.2013 www.raspberry-pi-geek.de<br />

47


Server<br />

Webserver<br />

Ein guter Kandidat <strong>für</strong> diesen Zweck ist<br />

Lighttpd. Falls Sie vor dessen Installation<br />

bereits Apache verwendet haben, gilt es,<br />

diesen samt seinen Zusatzpaketen zunächst<br />

zu entfernen:<br />

$ sudo apt‐get remove apache2 phpU<br />

5 libapache2‐mod‐php5 php5‐mysql<br />

2 Das Skript firsttest.php gibt<br />

Informationen zur PHP-Installation aus.<br />

3 PHPMyAdmin vereinfacht die Administration<br />

von MySQL-Datenbanken.<br />

jene Ihres Ras<strong>Pi</strong> ersetzen. Für das Login<br />

lautet der Benutzername root, das Passwort<br />

entspricht dem bei der MySQL-Installation<br />

angegebenen.<br />

Nun können Sie nach Herzenslust<br />

HTML/​PHP-Seiten erstellen <strong>und</strong> mit Ihrem<br />

eigenen Ras<strong>Pi</strong>-Webserver verwenden.<br />

Die Pages erstellen Sie wahlweise<br />

direkt auf dem <strong>Pi</strong> unter /var/www/ oder<br />

mit einer Entwicklungsumgebung Ihrer<br />

Wahl auf einem PC. In letzterem Fall<br />

übertragen Sie die Dateien anschließend<br />

per SFTP auf den <strong>Raspberry</strong> <strong>Pi</strong>. In diesem<br />

Fall muss der SFTP-Benutzer aber ausreichende<br />

Zugriffsrechte <strong>für</strong> das Webseiten-Verzeichnis<br />

besitzen.<br />

Dies erreichen Sie am einfachsten, indem<br />

Sie das Benutzerkonto pi der Gruppe<br />

www-data hinzufügen (Listing 2, Zeile<br />

1) <strong>und</strong> allen Mitgliedern dieser Gruppe<br />

Schreibrechte <strong>für</strong> das Homepage-Verzeichnis<br />

einräumen (Zeile 2). Um <strong>für</strong> Dateiübertragungen<br />

einen anderen Nutzer<br />

als <strong>Pi</strong> zu verwenden, müssen Sie diesen<br />

gesondert anlegen (Zeile 3).<br />

Auf Diät<br />

In manchen Fällen erweist sich der <strong>Raspberry</strong><br />

<strong>Pi</strong> als zu schwach <strong>für</strong> den umfangreich<br />

ausgestatteten Apache-Server –<br />

etwa, wenn mehrere Personen gleichzeitig<br />

auf den Webserver zugreifen. Das<br />

setzt die schlanke Hardware gehörig<br />

unter Last, wodurch sich die Seiten im<br />

Browser nur langsam aufbauen. Peilen<br />

Sie also ein solches Szenario an, sollten<br />

Sie einen genügsameren Webserver û<br />

verwenden, der mehr aus den Ressourcen<br />

des Minirechners herausholt.<br />

Dann richten Sie Lighttpd über den Befehl<br />

sudo apt‐get install lighttpd<br />

ein. Die MySQL-Installation erfolgt auf<br />

die gleiche Weise wie bei einer Apache-<br />

Umgebung. Nur bei PHP gibt es einen<br />

Unterschied: Sie müssen es hier als CGI-<br />

Modul einbinden. Die Befehle dazu zeigen<br />

die ersten beiden Zeilen von Listing<br />

3. Zu guter Letzt gestatten Sie dem<br />

Webserver noch explizit, PHP-Skripte zu<br />

parsen (Zeile 3). Nach einem Neustart<br />

von Lighttpd (Zeile 4) ist diese Einstellung<br />

aktiv: Die Seite firsttest.php<br />

zeigt nun eine ähnliche Ausgabe wie <strong>für</strong><br />

Apache in Abbildung 2 .<br />

Content-Management<br />

Früher war es gang <strong>und</strong> gäbe, bei jeder<br />

Änderung einer Webseite die entsprechenden<br />

Daten per FTP neu hochzuladen,<br />

mittlerweile ermöglichen Content-<br />

Management-Systeme ein effizienteres<br />

Vorgehen: So können Sie via Browser<br />

von jedem Gerät aus schnell neue Inhalte<br />

auf die eigene Homepage stellen <strong>und</strong><br />

sich obendrein die Arbeit mit anderen<br />

teilen. Betreiben Sie etwa zu mehreren<br />

die Website eines Vereins, kann jeder der<br />

Beteiligten über ein eigenes Redakteurskonto<br />

neue Inhalte einstellen, während<br />

Sie nur <strong>für</strong> sich selbst als Technikverantwortlichen<br />

weitergehende Zugriffsrechte<br />

einräumen.<br />

Der Markt an unterschiedlichen CMS<br />

scheint schier unerschöpflich, doch viele<br />

Anfänger vertrauen auf Wordpress – eigentlich<br />

kein CMS, sondern eine Blogging-Software.<br />

Aufgr<strong>und</strong> der übersichtlichen<br />

Bedienoberfläche ist es keine<br />

schlechte Wahl. Trotzdem sollten Sie<br />

besser auf eine echte CMS-Lösung setzen,<br />

wie etwa Joomla. Letzteres bietet<br />

weit mehr Möglichkeiten, weist aber<br />

eine durchdachte Oberfläche auf.<br />

48 www.raspberry-pi-geek.de<br />

05.2013


Webserver<br />

Server<br />

Zur Installation von Joomla laden Sie<br />

dieses als Zip-Archiv von der offiziellen<br />

Homepage û herunter <strong>und</strong> übertragen<br />

es via SFTP in das Verzeichnis /var/www/<br />

auf dem Ras<strong>Pi</strong>. Dort entpacken Sie das<br />

Archiv <strong>und</strong> löschen die nicht mehr benötigte<br />

ZIP-Datei. Geben Sie die IP-Adresse<br />

des <strong>Raspberry</strong> in den Browser ein, leitet<br />

Joomla Sie mittels mehrerer Dialoge<br />

durch die Erstkonfiguration des CMS.<br />

Falls die Webkonfiguration fehlschlägt,<br />

müssen Sie noch die Zugriffsrechte der<br />

Joomla-Version <strong>für</strong> die Verzeichnisse <strong>und</strong><br />

Dateien anpassen. Dies erledigen Sie auf<br />

dem <strong>Pi</strong>, indem Sie in das Verzeichnis<br />

/ var/www/ wechseln <strong>und</strong> dort die Befehle<br />

aus Listing 4 ausführen. Anschließend<br />

starten Sie die Konfiguration erneut.<br />

Ausblick<br />

Nun verfügen Sie über einen reichhaltig<br />

ausgestatteten Heim-Webserver. Soll<br />

Ihre Website irgendwann das Test- <strong>und</strong><br />

Experimentierstadium verlassen, gilt es,<br />

die Daten <strong>für</strong> den Produktivbetrieb ins<br />

World Wide Web hochzuladen. Für kleine<br />

bis mittelgroße Sites genügt hier<strong>für</strong><br />

preisgünstiger Webspace. In der Regel<br />

unterstützt die Konfiguration der Webhosting-Unternehmen<br />

gängige CMS.<br />

Das Anmieten eines VServers oder gar<br />

eines kompletten Root-Servers will gut<br />

überlegt sein: Hier müssen Sie die Administration<br />

selbst übernehmen, <strong>und</strong> einen<br />

im Netz stehenden Rechner gilt es weitaus<br />

stärker gegen Angriffe zu sichern als<br />

einen Ras<strong>Pi</strong> im heimischen LAN. Unternehmen<br />

Sie diesen Schritt erst, wenn Sie<br />

Erfahrungen mit Administration <strong>und</strong><br />

Server-Sicherheit gesammelt haben.<br />

Alle <strong>für</strong> diesen Schritt notwendigen<br />

Fertigkeiten – etwa das Konfigurieren<br />

einer Firewall mithilfe von Iptables oder<br />

das „Einsperren“ von Verzeichnissen mittels<br />

Chroot – können Sie auf jeden Fall<br />

vorab w<strong>und</strong>erbar am <strong>Raspberry</strong> <strong>Pi</strong> erlernen<br />

<strong>und</strong> üben. (jlu) n<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29876<br />

05.2013 www.raspberry-pi-geek.de<br />

49


Multimedia<br />

Ras<strong>Pi</strong> als Jukebox<br />

<strong>Raspberry</strong> <strong>Pi</strong> zur Miniatur-<br />

Musikzentrale ausbauen<br />

Kompakte<br />

Jukebox<br />

© ladyann, 123RF<br />

Der Music Player Daemon macht aus dem Ras<strong>Pi</strong> eine kleine Jukebox. Die Konfiguration ist allerdings<br />

nicht immer geradlinig. Wir zeigen, worauf Sie dabei achten müssen. Marcus Nasarek<br />

Readme<br />

Manchmal ist ein komplettes Mediacenter<br />

mit Full-HD-Monitor <strong>und</strong> Dolby-Surro<strong>und</strong> zu<br />

viel des Guten. Hier bietet sich der Ras<strong>Pi</strong> als<br />

moderner Ersatz <strong>für</strong> das Kofferradio an: Er<br />

holt Radiosender aus dem Internet, streamt<br />

die digitale Musiksammlung aus dem LAN<br />

oder von der externen Festplatte <strong>und</strong> lässt<br />

sich dabei per Smartphone fernsteuern.<br />

Der <strong>Raspberry</strong> <strong>Pi</strong> kostet einschließlich eines<br />

kleinen Lautsprechers weit weniger<br />

als ein WLAN-Radio. Mit ein wenig Handarbeit<br />

macht der Music Player Daemon<br />

MPD û aus dem Ras<strong>Pi</strong> einen netzwerkfähigen<br />

Musikplayer, der sich hinter einem<br />

WLAN-Kofferradio nicht zu verstecken<br />

braucht. Mit einer Smartphone-App lässt<br />

er sich zudem weit komfortabler bedienen<br />

als über das „Mäusekino“, wie es einfache<br />

Stand-Alone-Geräte bieten.<br />

Im Gegensatz zu einem Radio muss<br />

man dem Ras<strong>Pi</strong> das Musikabspielen aber<br />

erst beibringen. Die folgende Anleitung<br />

baut auf einem bereits mit dem Image<br />

des auf Debian 7 basierenden Raspbian<br />

„Wheezy“ û eingerichteten <strong>Raspberry</strong> <strong>Pi</strong><br />

auf û. Zum Einrichten der benötigten<br />

Komponenten setzen wir in der folgenden<br />

Beschreibung die Werkzeuge <strong>für</strong> die<br />

Kommandozeile ein. Der <strong>für</strong> eine Konfiguration<br />

von einem anderen Rechner benötigte<br />

SSH-Zugang sollte daher bereits<br />

ebenfalls auf dem Ras<strong>Pi</strong> vorhanden sein.<br />

Die Hardware<br />

Der Ras<strong>Pi</strong> besitzt einen analogen So<strong>und</strong>-<br />

Ausgang. Dessen Klangqualität fällt zwar<br />

nicht gerade berauschend aus, aber ein<br />

50 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> als Jukebox<br />

Multimedia<br />

kleiner Lautsprecher mit begrenztem<br />

Frequenzumfang verschluckt eben auch<br />

die meisten störenden Nebengeräusche.<br />

Das Ergebnis kann auf jeden Fall mit einem<br />

einfachen Kofferradio mithalten.<br />

Das hier vorgestellte Low-Fi-System<br />

besteht im Gr<strong>und</strong>ausbau aus dem Ras<strong>Pi</strong><br />

mit Netzwerkanschluss sowie einem<br />

Lautsprecher von Raikko û, der trotz seines<br />

geringen Gewichtes (100 Gramm)<br />

eine Lautstärke von mehr als 80 dB erzeugt<br />

1 . Die Musiksammlung kann sich<br />

auf einer externen Festplatte, im LAN auf<br />

einem Netzlaufwerk oder in einem<br />

Cloud-Speicher befinden. Sie steuern die<br />

Musikausgabe über das lokale Netzwerk<br />

mit einem Client auf dem Smartphone<br />

oder dem PC. Solche Clients gibt es <strong>für</strong><br />

Linux, Android <strong>und</strong> Windows.<br />

Die mangelhafte Tonqualität der analogen<br />

So<strong>und</strong>-Ausgabe des Ras<strong>Pi</strong> fällt bei<br />

entsprechend kleinen Lautsprechern<br />

wenig auf. Bei größeren Lautsprechern<br />

kann es dagegen sinnvoll sein, auf eine<br />

gute USB-So<strong>und</strong>karte auszuweichen. Für<br />

eine gewisse Optimierung sorgt auf jeden<br />

Fall schon einmal die Nutzung von<br />

Pulseaudio anstelle von ALSA als So<strong>und</strong>-<br />

System. Wie Sie das einstellen, erklären<br />

wir später noch genauer.<br />

In Sachen Hardware ist das System nun<br />

schon fast komplett. Noch fehlt jedoch<br />

die Möglichkeit zum Einbinden der eigenen<br />

Musiksammlung. Eine solche lagert<br />

üblicherweise auf einer externen Festplatte,<br />

die sich per USB mit dem <strong>Raspberry</strong><br />

<strong>Pi</strong> verbinden lässt. Netzwerk-Festplatten<br />

bindet der Ras<strong>Pi</strong> am einfachsten<br />

in Form einer Samba-Freigabe ein.<br />

Die Software<br />

Das Kernstück der Software-Austattung<br />

<strong>für</strong> das Ras<strong>Pi</strong>-Radio bildet der Music<br />

1 Der <strong>Raspberry</strong> <strong>Pi</strong> mit einem Lautsprecher von Raikko im Einsatz als Mini-Jukebox.<br />

Player Daemon MPD, den Sie zusammen<br />

mit dem Kommandozeilen-Client mpc<br />

zunächst einmal via Terminal installieren.<br />

Das Pulseaudio-So<strong>und</strong>system richten<br />

Sie aus den oben erwähnten Gründen<br />

am besten gleich mit ein. Die dazu<br />

notwendigen Befehle zeigt das Listing 1.<br />

Die Installation von mpg321 <strong>und</strong> lame<br />

stellt sicher, dass auch die MP3-Codecs<br />

eingerichtet werden <strong>und</strong> Sie die So<strong>und</strong>-<br />

Ausgabe auf der Kommandozeile testen<br />

können. Mit dieser Gr<strong>und</strong>ausstattung<br />

steht auf dem <strong>Raspberry</strong> <strong>Pi</strong> alles Nötige<br />

<strong>für</strong> das Abspielen von MP3-Dateien <strong>und</strong><br />

entsprechenden Streams zur Verfügung.<br />

Clients <strong>für</strong> die Steuerung des MPD gibt<br />

es <strong>für</strong> alle wichtigen Betriebssysteme. Im<br />

MPD Community Wiki û findet sich eine<br />

Liste mit Clients <strong>für</strong> Linux, Windows, Mac<br />

OS <strong>und</strong> Smartphones. Auf die Clients <strong>für</strong><br />

das Smartphone, <strong>für</strong> Linux <strong>und</strong> <strong>für</strong> Windows<br />

gehen wir später noch ein. Alternativ<br />

zu einer lokalen Anwendung können<br />

Sie auch einen Web-Client einrichten,<br />

wo<strong>für</strong> das Wiki ebenfalls Beispiele auflistet.<br />

Logischerweise setzt das Verwenden<br />

des im Browser laufenden Web-Clients<br />

Listing 1<br />

$ sudo apt‐get install mpd mpc pulseaudio pulseaudio‐module‐zeroconf<br />

$ sudo apt‐get install mpg321 lame<br />

05.2013 www.raspberry-pi-geek.de<br />

51


Multimedia<br />

Ras<strong>Pi</strong> als Jukebox<br />

allerdings die Installation eines Webservers<br />

auf dem MPD-System voraus, weshalb<br />

wir es hier außen vor lassen.<br />

MPD konfigurieren<br />

Der MPD sollte auf dem <strong>Raspberry</strong> <strong>Pi</strong> als<br />

Systemdienst starten. In diesem Fall liest<br />

der Daemon seine Konfiguration aus der<br />

Datei /etc/mpd.conf ein. Rufen sie ihn<br />

stattdessen als Benutzer auf, greift er auf<br />

die Konfigurationsdatei ~/.mpdconf zu –<br />

das ist <strong>für</strong> Testzwecke gut zu wissen.<br />

Den wichtigsten Punkt der Konfiguration<br />

stellt die Angabe dar, an welcher<br />

Stelle der MPD nach Musik suchen soll.<br />

Ohne anderweitige Angaben nutzt er<br />

dazu das Verzeichnis /var/lib/mpd/<br />

music/. MPD akzeptiert nur eine einzige<br />

Angabe <strong>für</strong> die Option music_directory.<br />

Wollen Sie die Musik also auf mehrere<br />

Verzeichnisse verteilen, müssen Sie die<br />

anderen Verzeichnisse einfach im Standardordner<br />

verlinken.<br />

Beim ersten Start baut der MPD seine<br />

Datenbank mit den Titeleinträgen aus<br />

den MP3-Tags der Musikdateien auf. Das<br />

kann bei großen Musiksammlungen einige<br />

Zeit in Anspruch nehmen: Das Auswerten<br />

von r<strong>und</strong> 10 000 Titeln dauerte in<br />

unserem Test r<strong>und</strong> 20 Minuten. Findet<br />

der MPD trotz vorhandener Dateien im<br />

angegebenen Verzeichnis keine Musik –<br />

mpc stats gibt über den aktuellen Stand<br />

Auskunft –, dann kann das daran liegen,<br />

dass die Rechte <strong>für</strong> das Verzeichnis nicht<br />

korrekt eingestellt sind: Der MPD startet<br />

als Benutzer mpd <strong>und</strong> braucht <strong>für</strong> diesen<br />

Leserechte im Musikverzeichnis.<br />

Nach der Gr<strong>und</strong>konfiguration richten<br />

Sie den MPD als Systemdienst auf dem<br />

Ras<strong>Pi</strong> ein. Dazu genügt folgender Aufruf:<br />

$ sudo update‐rc.d mpd defaults<br />

Dieses Kommando konfiguriert den<br />

Dienst so, dass das System ihn beim<br />

Start automatisch mitlädt.<br />

Knisterfrei durch Pulseaudio<br />

In der Standardkonfiguration nutzt<br />

Debi an auf dem <strong>Raspberry</strong> <strong>Pi</strong> das ALSA-<br />

So<strong>und</strong>-System <strong>für</strong> die Audio-Ausgabe.<br />

Nach dem Umstellen des Standardausgabekanals<br />

von HDMI auf den Analogausgang<br />

mittels amixer cset numid=3<br />

1 (die 1 steht <strong>für</strong> analog) knackt <strong>und</strong><br />

klirrt es jedoch unerträglich. Blogs im<br />

Internet berichten dazu, dass bei der<br />

Audio-Hardware des Ras<strong>Pi</strong> aus verständlichen<br />

Gründen gespart wurde.<br />

Probleme mit großen Musiksammlungen lösen<br />

Das Pulseaudio-So<strong>und</strong>system funktioniert<br />

mit dem Ras<strong>Pi</strong> deutlich besser. Um<br />

die Tonausgabe daher alternativ auf Pulseaudio<br />

umzustellen, nehmen Sie den<br />

Eintrag aus Listing 2 mit in die Konfigurationsdatei<br />

/etc/mpd.conf auf.<br />

Die Anpassungen des Pulseaudio-<br />

So<strong>und</strong>systems <strong>für</strong> den Ras<strong>Pi</strong> erweisen<br />

sich allerdings als knifflig. Damit es letztlich<br />

wie erwartet funktioniert, gilt es an<br />

gleich drei Stellen zu schrauben. Im ersten<br />

Schritt sorgen Sie da<strong>für</strong>, dass das Betriebssystem<br />

pulseaudio mit jedem Systemstart<br />

lädt. Da<strong>für</strong> passen Sie die zwei<br />

in Listing 3 gezeigten Einträge in der<br />

Datei /etc/default/pulseaudio an.<br />

Im zweiten Schritt halten Sie Pulseaudio<br />

davon ab, in den Stromsparmodus<br />

zu gehen, sobald keine Töne ausgegeben<br />

werden: Dieses Verhalten sorgt <strong>für</strong><br />

unschöne Klickgeräusche am Anfang<br />

<strong>und</strong> Ende jedes Titels. Dazu modifizieren<br />

Sie einige Einträge in der Datei /etc/<br />

pulse/system.pa (Listing 4). Hier kommentieren<br />

Sie zum einen den Eintrag<br />

load‐module module‐suspend‐on‐idle<br />

aus. Zum anderen gilt es, die Netzwerkberechtigungen<br />

<strong>für</strong> das lokale Netzwerk<br />

(in unserem Beispiel das Heimnetz<br />

192.168.4.0) anzupassen.<br />

Listing 2<br />

audio_output {<br />

type: "pulse"<br />

name: "MPD PulseAudio Output"<br />

}<br />

Listing 3<br />

PULSEAUDIO_SYSTEM_START=1<br />

DISALLOW_MODULE_LOADING=0<br />

Beim Einlesen von 10 136 Musikdateien<br />

von einer Samba-Freigabe war bei der<br />

Testinstallation nach 4028 Titeln erst einmal<br />

Schluss. Ein manuelles Update der Datenbank<br />

per mpc update brachte es dann<br />

auf 7623 Titel. Aber auch das waren ja<br />

längst nicht alle Titel.<br />

Das Verhalten schien aber ein Einzelfall zu<br />

sein, denn eine längere Recherche im Internet<br />

brachte keine vergleichbaren Probleme<br />

zutage. Mit einem kleinen Work-<br />

Aro<strong>und</strong> klappte der Import der Titel aber<br />

dann doch noch. Die einzelnen Unterverzeichnisse<br />

der Musiksammlung enthielten<br />

jeweils nur maximal 15 Verzeichnisse mit<br />

Musikalben. Mit dem schrittweisen Einlesen<br />

der Datenbank schien der MPD kein<br />

Problem zu haben.<br />

Daher lasen wir mit dem in Listing 10 gezeigten<br />

Skript jeweils nur ein Unterverzeichnis<br />

per Update ein <strong>und</strong> hangelten uns<br />

so durch die gesamte Sammlung. Anschließend<br />

waren dann alle Titel in der Datenbank<br />

vorhanden.<br />

Listing 4<br />

#load‐module module‐suspend‐on‐idle<br />

Listing 5<br />

pcm.pulse { type pulse }<br />

load‐module module‐native‐protocol‐tcp auth‐ip‐acl=127.0.0.1;192.168.0.<br />

0/24 auth‐anonymous=1<br />

load‐module module‐zeroconf‐publish<br />

ctl.pulse { type pulse }<br />

pcm.!default { type pulse }<br />

ctl.!default { type pulse }<br />

52 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> als Jukebox<br />

Multimedia<br />

Anschließend stellen Sie im dritten<br />

Schritt die Konfiguration der ALSA-Bibliotheken<br />

auf Pulseaudio um. Zu diesem<br />

Zweck ersetzen Sie den Inhalt der Datei<br />

/etc/aso<strong>und</strong>.conf durch die in Listing 5<br />

gezeigten Zeilen. Damit haben Sie die<br />

<strong>für</strong> Pulseaudio notwendigen Konfigurationsaufgaben<br />

erfolgreich abgeschlossen.<br />

Ein Neustart der Systemdienste <strong>für</strong><br />

Pulseaudio <strong>und</strong> den MPD sorgt jetzt da<strong>für</strong>,<br />

dass die vorgenommenen Änderungen<br />

auch greifen (Listing 6).<br />

Externe Festplatten<br />

Liegt die Musiksammlung auf einem externen<br />

Datenträger oder einer anderen<br />

Partition, gilt es, das entsprechende Laufwerk<br />

zur Aktualisierung der Datenbank<br />

<strong>und</strong> zum Abspielen der Titel einzubinden.<br />

Größere externe Festplatten sind<br />

üblicherweise mit NTFS formatiert, das<br />

Einbinden erfordert daher die NTFS-Treiber.<br />

Die Installation des Paketes ntfs-3g<br />

mittels sudo apt‐get install ntfs‐3g<br />

liefert die benötigten Mount-Module.<br />

Das automatische Einbinden externer<br />

Platten zum Systemstart steuern Sie<br />

über /etc/fstab. Welchen Gerätenamen<br />

der Kernel einer USB-Festplatte zuordnet,<br />

erfahren Sie über den Aufruf dmesg<br />

| tail gleich nachdem Sie die Festplatte<br />

an den Ras<strong>Pi</strong> anschlossen haben. Für eine<br />

externe Festplatte, auf deren erster beziehungsweise<br />

einziger Partition die Musiksammlung<br />

liegt, lautet der Gerätename<br />

in der Regel sdb1. Den zugehörigen Eintrag<br />

<strong>für</strong> die / etc/fstab, um die Platte direkt<br />

in das MPD-Standardverzeichnis <strong>für</strong><br />

Musik einzuhängen, zeigt Listing 7.<br />

Listing 6<br />

$ sudo /etc/init.d/pulseaudio<br />

restart<br />

$ sudo /etc/init.d/mpd restart<br />

Netzwerkfreigaben<br />

Die meisten NAS-Laufwerke stellen die<br />

Daten als Windows-Freigabe im LAN zur<br />

Verfügung. Solche Shares sprechen Sie<br />

von Linux aus mit einem Samba-Client<br />

an, den Sie mittels sudo apt‐get install<br />

samba‐client installieren. Ein Windows-Share<br />

erfordert meist einen Benutzernamen<br />

<strong>und</strong> ein Passwort <strong>für</strong> die Einbindung.<br />

Um das Passwort nicht in die<br />

<strong>für</strong> jeden lesbare Fstab-Datei eintragen<br />

zu müssen, erzeugen Sie eine Datei mit<br />

den entsprechenden Zugangsdaten, die<br />

Sie am besten im Verzeichnis /root ablegen.<br />

Listing 8 zeigt den Aufbau einer solchen<br />

Datei, der man üblicherweise den<br />

Namen .smbcredentials gibt.<br />

Das Einbinden der Freigabe erfolgt<br />

auch hier wieder über die Datei /etc/<br />

fstab. Listing 9 zeigt den entsprechenden<br />

Eintrag <strong>für</strong> ein Samba-Share namens<br />

MUSIK auf dem Server 192.168.2.2, wobei<br />

der Optionsteil gleichzeitig den Zeichensatz<br />

korrekt auf UTF‐8 einstellt.<br />

Ein Aufruf von sudo mount /var/lib/<br />

mpd/music bindet das Verzeichnis anschließend<br />

auch ohne Neustart ein. Das<br />

Ergebnis überprüfen Sie bei Bedarf mit<br />

dem Aufruf sudo mount ‐l ‐t cifs.<br />

Anschließend können Sie die Musikdatenbank<br />

mit MPC, dem MPD-Client <strong>für</strong><br />

die Kommandozeile, durch einen Aufruf<br />

von mpc update aktualisieren.<br />

Internetradio hören<br />

Radiosender sind im MPD nicht vorkonfiguriert.<br />

Um sie manuell einzupflegen,<br />

legen Sie eine oder mehrere Dateien mit<br />

Listing 8<br />

# /root/.smbcredentials<br />

username=Username<br />

password=Passwort<br />

2 MPDroid <strong>für</strong> Android macht sowohl<br />

auf dem Smartphone als auch auf dem<br />

Tablet eine gute Figur.<br />

NAS: Network Attached Storage. Ein Massenspeichersystem,<br />

das die enthaltenen<br />

Festplatten im Netz zur Verfügung stellt,<br />

meist in Form einer Windows-Freigabe.<br />

Kleine NAS bestehen in der Regel aus ein<br />

bis zwei Festplatten in einem kompakten<br />

Gehäuse mit eigener Stromversorgung.<br />

Listing 7<br />

# /etc/fstab<br />

Listing 9<br />

# /etc/fstab<br />

/dev/sdb1 /var/lib/mpd/music<br />

auto defaults 0 0<br />

//192.168.2.2/MUSIK /var/lib/mpd/music cifs credentials=/root/.smbcr<br />

edentials,iocharset="utf8" 0 0<br />

05.2013 www.raspberry-pi-geek.de<br />

53


Multimedia<br />

Ras<strong>Pi</strong> als Jukebox<br />

3 Den Desktop-Client Gnome Music Player gibt es sowohl <strong>für</strong> Linux als auch <strong>für</strong> Windows.<br />

an den Feedbacks der Nutzer, einen<br />

ganz guten Eindruck. Die App wirkt im<br />

Vergleich zu den anderen relativ ausgereift<br />

<strong>und</strong> in der Bedienung ansprechend<br />

<strong>und</strong> übersichtlich 2 .<br />

Die Konfiguration beschränkt sich in<br />

der Regel darauf, die IP-Adresse des<br />

<strong>Raspberry</strong> <strong>Pi</strong> einzutragen, danach findet<br />

MPDroid den MPD sofort. Die Auswahl<br />

der Alben, Titel oder Wiedergabelisten<br />

erfolgt intuitiv. Dank MPDroid beantwortet<br />

sich auch besonders schnell die<br />

Frage, wie man denn die Wiedergabelautstärke<br />

der Ras<strong>Pi</strong>-Jukebox einstellt:<br />

Diese regeln Sie über einen Schieber auf<br />

der Hauptseite der App treffsicher.<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29843<br />

der Endung .m3u in jenem Verzeichnis<br />

an, das Sie in der Konfigurationsdatei<br />

/ etc/mpd.conf mit der Option playlist_directory<br />

ausgewählt haben. Die<br />

Internetadressen der Streams û tragen<br />

Sie dann zeilenweise in die M3U-Datei<br />

ein. Stream-Adressen in Form von M3U-<br />

Wiedergabelisten können Sie direkt herunterladen<br />

<strong>und</strong> im Playlist-Verzeichnis<br />

speichern. Die enthaltenen MP3-Stream-<br />

Adressen zeigen Sie mittels des folgenden<br />

Aufrufs an:<br />

$ echo $(wget ‐q ‐O ‐ M3U‐URL)<br />

Sie können die Adressen anschließend<br />

direkt in eine vorhandene Wiedergabeliste<br />

mit aufnehmen.<br />

Steuern per Smartphone<br />

Im Google Play Store finden sich einige<br />

Android-Apps r<strong>und</strong> um den MPD. Die<br />

Apps bitMPC, Droid MPD Client <strong>und</strong> MP-<br />

Droid fallen dabei sofort ins Auge. Insbesondere<br />

MPDroid û macht, gemessen<br />

Listing 10<br />

fs=$IFS<br />

IFS=$(echo ‐en "\n\b")<br />

for f in $(ls Verzeichnis);<br />

do echo "$f";<br />

mpc update ‐‐wait "$f";<br />

done<br />

IFS=$fs<br />

Desktop-Client<br />

Hinsichtlich eines Clients <strong>für</strong> den Desktop<br />

stellen kritische Geister vielleicht die<br />

Frage, warum man denn einen Ras<strong>Pi</strong> im<br />

selben Raum mit einem solchen zur Musikausgabe<br />

bewegen sollte, wenn der<br />

vorhandene Desktop das ja auch selbst<br />

kann. Die Antwort lautet „42“ û.<br />

Spaß beiseite: Klammert man die Frage<br />

nach dem Sinngehalt einmal aus, eignet<br />

sich der Gnome Music Player û als<br />

einfacher, aber ausreichend komfortabler<br />

MPD-Client <strong>für</strong> den Desktop bestens<br />

3 . Da der Player auch nach Windows<br />

portiert wurde, lässt er sich ebenfalls<br />

auf Microsoft-Clients nutzen.<br />

Zu den besonders angenehmen Features<br />

des GMP zählen die grafische Albenübersicht<br />

sowie die Zusatzinfos zu<br />

dem gerade abgespielten Titel, darunter<br />

die Liedtexte <strong>und</strong> der Verweis auf ähnliche<br />

Interpreten.<br />

Fazit<br />

Mit dem Music Player Daemon übernimmt<br />

der <strong>Raspberry</strong> <strong>Pi</strong> zeitgemäß den<br />

Platz des Kofferradios <strong>und</strong> lässt sich per<br />

Smartphone zudem noch komfortabel<br />

steuern. Die Einrichtung des MPD, die<br />

auf einem Desktop ziemlich geradlinig<br />

wäre, gestaltet sich aufgr<strong>und</strong> der spärlichen<br />

Audio-Hardware des Ras<strong>Pi</strong> etwas<br />

holperig. Am Ende hat aber auch dieses<br />

Projekt wieder Spaß gemacht <strong>und</strong> ein<br />

Alltagsproblem gelöst. (jlu) n<br />

54 www.raspberry-pi-geek.de<br />

05.2013


<strong>Raspberry</strong> <strong>Pi</strong><br />

Multimedia<br />

Der <strong>Raspberry</strong> <strong>Pi</strong> als Media-Center<br />

Smarte Himbeere<br />

Ihrem Fernseher fehlen<br />

Media-Center- oder Smart-TV-<br />

Funktionen? Die rüsten Sie<br />

mit einem <strong>Raspberry</strong> <strong>Pi</strong> preisgünstig<br />

<strong>und</strong> individuell nach.<br />

Marko Dragicevic<br />

Readme<br />

Die Media-Center-Software XBMC eröffnet<br />

auf dem <strong>Raspberry</strong> <strong>Pi</strong> viele Möglichkeiten.<br />

Dank dieser Vielfalt erhalten Sie eine Multimedia-Box<br />

genau nach Ihren Wünschen –<br />

<strong>und</strong> kommen trotzdem schnell ans Ziel.<br />

Selbst gebaute HTPCs („Home Theater<br />

Personal Computer“) sind schon seit der<br />

Jahrtausendwende auf dem Vormarsch.<br />

Anfangs handelte es sich noch um gewöhnliche<br />

Desktop-Rechner, die sich<br />

nach dem Umbau in einem <strong>für</strong> das<br />

Wohnzimmer tauglicheren Gehäuse wiederfanden.<br />

Dementsprechend hoch<br />

fielen die Anschaffungs- <strong>und</strong> Energiekosten<br />

aus. Doch die Community kam<br />

rasch auf neue Ideen: So tauchte <strong>für</strong><br />

XBox-Konsolen die Media-Center-Software<br />

XBMC auf. Sie wurde im Laufe der<br />

Jahre <strong>für</strong> verschiedenste Plattformen<br />

<strong>und</strong> Betriebssysteme portiert. So kamen<br />

als Hardwarebasis Nettops wie zum Beispiel<br />

die Zbox von Zotac in Kombination<br />

mit der OpenELEC-Distribution in Mode.<br />

Jetzt stellt eine neue Plattform alle bisherigen<br />

Media-Center-Lösungen in Sachen<br />

Preis/​Leistung, Platzbedarf <strong>und</strong><br />

Energieeffizienz in den Schatten: der<br />

<strong>Raspberry</strong> <strong>Pi</strong> in Kombination mit XBMC.<br />

Freilich kann ein 35 Euro teurer Embedded-PC<br />

nicht in allen Punkten die gleiche<br />

Leistung bringen wie ein 200-Euro-<br />

Nettop oder gar ein 600 Euro teurer<br />

Selbstbau-HTPC. Für viele Anwendungszwecke<br />

muss er dies aber eben auch<br />

nicht zwingend tun.<br />

Zwar kann es nach der Auswahl eines<br />

Videos durchaus zwei Sek<strong>und</strong>en dauern,<br />

bis dieses startet – anschließend gibt der<br />

<strong>Raspberry</strong> <strong>Pi</strong> es jedoch ruckelfrei in HD-<br />

Qualität wider. Die GPU gleicht bei vielen<br />

Multimedia-Anwendungen das aus,<br />

was dem 700-MHz-Hauptprozessor an<br />

Power fehlt. Der Platzbedarf in der Größe<br />

einer Zigarettenschachtel fällt angenehm<br />

gering aus, <strong>für</strong> den Stromverbrauch<br />

in Höhe von einer niedrigen einstelligen<br />

Wattzahl gilt dasselbe.<br />

Einkaufsliste<br />

Für manche Anwendungszwecke kommen<br />

Sie um teurere Alternativen jedoch<br />

nicht herum: Wer ein externes Blu-ray-<br />

Laufwerk anstöpseln möchte, kann nur<br />

Scheiben ohne Kopierschutz abspielen.<br />

Auch bei Live-TV-Anwendungen, bei denen<br />

sowohl Back- als auch Frontend auf<br />

demselben Gerät laufen, stößt der <strong>Raspberry</strong><br />

<strong>Pi</strong> schnell an seine Grenzen.<br />

05.2013 www.raspberry-pi-geek.de<br />

55


Multimedia<br />

<strong>Raspberry</strong> <strong>Pi</strong><br />

1 Die OpenELEC-Distribution harmoniert perfekt mit dem <strong>Raspberry</strong> <strong>Pi</strong>.<br />

Class-10-Standard: Die SD-2.00-Spezifikation<br />

sieht die vier Geschwindigkeitsklassen<br />

2, 4, 6 <strong>und</strong> 10 <strong>für</strong> SD-Cards vor. Dabei entspricht<br />

die Bezeichnung der Klasse der minimalen<br />

Schreibgeschwindigkeit in MByte/​s.<br />

Am Anfang steht in der digitalen Welt<br />

nicht das Wort, sondern die Hardware.<br />

Die Lieferzeiten des <strong>Raspberry</strong> <strong>Pi</strong> haben<br />

sich erfreulicherweise gegenüber der<br />

Anfangszeit stark verbessert. Einer der<br />

beiden offiziellen Distributoren, Farnell/​<br />

element 14 û verschickt oft innerhalb<br />

ein bis zwei Wochen nach Bestelleingang,<br />

bei RS Components û dauert es<br />

dem Vernehmen nach etwas länger.<br />

Wer nicht warten möchte, bestellt das<br />

Gerät gegen einen Aufpreis direkt aus<br />

dem Lager von Wiederverkäufern.<br />

Modmypi û bietet beispielsweise <strong>für</strong><br />

zusätzliche acht Euro ein Gehäuse an,<br />

welches in seiner schwarzen Ausführung<br />

im Wohnzimmer optisch nicht negativ<br />

auffällt. Aber auch deutsche Händler wie<br />

Vesalia û, Exp-Tech û oder Watterott û<br />

führen den kleinen Einplatinen-Computer<br />

im Sortiment. Dabei gilt es jedoch,<br />

stets zu kontrollieren, ob laut der Homepage<br />

des Import-Händlers derzeit Geräte<br />

auf Lager liegen <strong>und</strong> der Preisaufschlag<br />

gegenüber den offiziellen Distributoren<br />

maximal fünf Euro beträgt – ansonsten<br />

lohnt sich eher ein Direktimport<br />

aus England.<br />

Das <strong>für</strong> den Minicomputer benötigte<br />

Zubehör, wie etwa ein HDMI-Kabel, gibt<br />

es in vielen Haushalten bereits, sodass es<br />

sich selten lohnt, zu einem vergleichsweise<br />

hohen Preis ein „<strong>Raspberry</strong> <strong>Pi</strong> Starter<br />

Kit“ zu ordern. Zwar zeigt sich das<br />

Gerät etwas wählerisch darin, mit welcher<br />

Peripherie es zusammenarbeitet,<br />

doch lässt sich die Kompatibilität zu<br />

Komponenten in einschlägigen Listen<br />

û recherchieren.<br />

Zum Beispiel liefert ein Smartphone-<br />

USB-Netzteil <strong>für</strong> den <strong>Pi</strong> genügend Strom<br />

– 5 Volt, 1 Ampere. Die an manchen Stellen<br />

zitierten 700 mA genügen dem <strong>Pi</strong><br />

nur, wenn weder ein Ethernet-Kabel<br />

noch USB-Geräte angeschlossen sind.<br />

Möchten Sie eine externe Festplatte nutzen,<br />

sollte diese eine eigene Stromversorgung<br />

mitbringen oder über einen aktiven<br />

USB-Hub mit dem <strong>Pi</strong> verb<strong>und</strong>en<br />

werden. Eine Unterversorgung mit<br />

Strom kann zu willkürlich wirkenden<br />

Fehlern im Betrieb führen. SD-Karten<br />

sollten optimalerweise den schnellen<br />

Class-10-Standard beherrschen.<br />

Ein modernes Media-Center spielt nur<br />

dann alle Möglichkeiten aus, wenn es<br />

über Internetzugriff verfügt: Liegt keine<br />

Netzwerkdose in der Nähe des Fernsehers,<br />

bietet sich (schon aus Gründen der<br />

Optik) der Einsatz eines Micro-USB-<br />

WLAN-Sticks an, da dieser mit seiner geringen<br />

Größe fast in einer der beiden<br />

USB-Buchsen des <strong>Raspberry</strong> <strong>Pi</strong> verschwindet.<br />

Hier erweist sich zum Beispiel<br />

der N150-Stick von Netgear als unproblematisch<br />

– er läuft unter gängigen<br />

Distributionen auf Anhieb.<br />

Aus der Ferne<br />

Prinzipiell bietet es sich an, das Media-<br />

Center über eine Fernbedienung zu nutzen<br />

– was auch problemlos klappt.<br />

Möchten Sie jedoch später häufig Plugins<br />

nutzen, die eine Texteingabe verlangen<br />

(wie etwa die Suche beim Youtube-<br />

Plugin), ist eine Bluetooth-Funktastatur<br />

das Mittel der Wahl. Hier bevorzugen<br />

viele Nutzer das Modell K400 von Logitech,<br />

da hier auch das integrierte Touchpad<br />

funktioniert.<br />

Theoretisch lassen sich Menüpunkte<br />

im Media-Center auch über die XBMC-<br />

Remote-App des eigenen Smartphones<br />

auswählen. Aufgr<strong>und</strong> des Umwegs über<br />

einen WLAN-Router fällt die Latenzzeit<br />

<strong>für</strong> Reaktionen in diesem Fall jedoch höher<br />

aus. Für den Genuss von konventio-<br />

56 www.raspberry-pi-geek.de<br />

05.2013


<strong>Raspberry</strong> <strong>Pi</strong><br />

Multimedia<br />

nellen Fernsehübertragungen können<br />

Sie an den <strong>Raspberry</strong> <strong>Pi</strong> auch per USB einen<br />

externen DVB-Empfänger anschließen<br />

– Kompatibilität vorausgesetzt. Dies<br />

ist allerdings nicht uneingeschränkt zu<br />

empfehlen – mehr dazu später im Abschnitt<br />

über Live-TV.<br />

Distributionen<br />

Das Einrichten einer speziellen Media-<br />

Center-Distribution geht angenehm<br />

schnell von der Hand. Dazu laden Sie lediglich<br />

die entsprechende Image-Datei<br />

herunter <strong>und</strong> schreiben diese auf eine<br />

SD-Karte, von der Sie den <strong>Raspberry</strong> <strong>Pi</strong><br />

anschließend booten.<br />

Bei OpenELEC û handelt es sich um<br />

eine speziell <strong>für</strong> das Media-Center XBMC<br />

zusammengestellte Distribution 1 . Dieser<br />

Purismus sorgt <strong>für</strong> eine höhere Geschwindigkeit<br />

als bei vielen Alternativen.<br />

Das Dateisystem setzten die Entwickler<br />

hingegen absichtlich auf read-only, sodass<br />

der Nutzer nicht so leicht XBMCfremde<br />

Programme nachinstallieren<br />

kann. Sie laden von der offiziellen<br />

Homepage ein Archiv des Images, entpacken<br />

es <strong>und</strong> nutzen anschließend mit<br />

Root-Rechten die darin enthaltene Datei<br />

create_sdcard, um eine SD-Karte <strong>für</strong><br />

den <strong>Raspberry</strong> <strong>Pi</strong> zu beschreiben.<br />

RaspBMC û kommt ebenfalls häufig<br />

zum Einsatz. Diese Distribution entstand<br />

ursprünglich aus einem abgewandelten<br />

Raspbian (ein Debian-Derivat), hat sich<br />

jedoch inzwischen stark weiterentwickelt.<br />

Das Dateisystem lässt sich zwar<br />

hier beschreiben. Trotzdem sollten Sie<br />

nicht anfangen, ungehemmt Dutzende<br />

Programme aus den Raspbian-Paketquellen<br />

nachzuinstallieren: Laufen zu<br />

viele Services auf dem kleinen Medienserver,<br />

steigt sonst die Systemlast recht<br />

schnell an. Für das Installieren von Rasp-<br />

BMC gibt es ein Python-Skript û, welches<br />

das Image herunterlädt <strong>und</strong> auf einer<br />

SD-Karte ausgibt.<br />

Als Dritter im B<strong>und</strong>e fungiert Xbian û,<br />

das hauptsächlich dadurch auffällt, dass<br />

es anders als die anderen beiden Lösungen<br />

über keine Auto-Update-Funktion<br />

verfügt. Sie installieren das Image nach<br />

dem Herunterladen händisch via dd –<br />

falls sich die SD-Karte also etwa unter<br />

/dev/sdb befindet, mit dem Kommando<br />

$ sudo dd if=xbian.img of=/dev/sdb<br />

Insgesamt fallen die Unterschiede zwischen<br />

den drei Distributionen eher marginal<br />

aus. Kein W<strong>und</strong>er: Die oberhalb des<br />

Betriebssystems verwendete Media-Center-Software<br />

XBMC ist schließlich in allen<br />

Fällen fast dieselbe. Betrachtet man die<br />

kleinen Unterschiede genau, lässt sich<br />

sagen, dass RaspBMC tendenziell benutzerfre<strong>und</strong>licher<br />

<strong>und</strong> OpenELEC tendenziell<br />

schneller ist als Xbian.<br />

Wollen Sie Videos im MPEG2- oder<br />

VC1-Format (bei manchen Blu-ray-Disks)<br />

abspielen, müssen Sie die Codecs hier<strong>für</strong><br />

nachträglich über die <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation<br />

erwerben: Aus Kostengründen<br />

werden diese Codecs nicht automatisch<br />

<strong>für</strong> jeden ausgelieferten <strong>Raspberry</strong> <strong>Pi</strong><br />

lizenziert. Hier<strong>für</strong> rufen Sie zunächst auf<br />

der Konsole des Kleinrechners die Seriennummer<br />

des Gerätes ab:<br />

$ cat /proc/cpuinfo | grep Serial<br />

Mit dieser <strong>und</strong> der Zahlung von je<br />

4,50 Euro erhalten Sie die Codec-Lizenzen<br />

<strong>für</strong> MPEG2 û <strong>und</strong> VC1 û in Form<br />

von Seriennummern. Bei Xbian <strong>und</strong><br />

OpenELEC tragen Sie die Letzteren in der<br />

Datei /boot/config.txt als decode_<br />

MPG2=0x12345678 respektive decode_<br />

WVC1=0x12345678 ein, wobei Sie natürlich<br />

jeweils die nach dem Bestellvorgang<br />

erhaltenen Serials einsetzen. Bei Rasp-<br />

BMC läuft der Vorgang anders ab: Diese<br />

Distribution ignoriert einfach die Standard-Konfigurationsdatei<br />

config.txt.<br />

Hier geben Sie die Seriennummern komfortabel<br />

innerhalb der XBMC-Oberfläche<br />

in einem Einstellungsdialog an.<br />

Als Nächstes sollten Sie sich die<br />

Addons von XBMC anschauen – eine der<br />

großen Stärken dieses Media-Centers.<br />

Dabei handelt es sich (oft) um Python-<br />

Skripte, die vielerlei Erweiterungen ermöglichen<br />

– etwa den Zugriff auf Youtube<br />

oder die Mediatheken von Fernsehsendern,<br />

aber auch das Browsen in Internet-Foren<br />

mittels Fernbedienung oder<br />

das Spielen von Konsolen-Emulatoren.<br />

Raspbian „Wheezy“ 2013-05-25<br />

(ISO-Image als ZIP)<br />

Für solche Erweiterungen stellt XBMC<br />

ein eigenes Paketquellen-System bereit.<br />

Haben Sie selbst ein neues Addon geschrieben,<br />

können Sie es bei der „offiziellen“<br />

XBMC-Paketquelle zur Veröffentlichung<br />

einreichen – anschließend hat<br />

weltweit jeder XBMC-Anwender die<br />

Möglichkeit, die neue Erweiterung mit<br />

wenigen Klicks zu installieren. Aber auch<br />

dort nicht verzeichnete Addons lassen<br />

sich nutzen – diese beziehen Sie in der<br />

Regel als Zip-Datei direkt von der Homepage<br />

des Programmierers.<br />

Medienserver<br />

RPG/raspbian/<br />

Auch wenn die Cloud-Anbieter uns gerne<br />

glauben machen wollen, dass inzwischen<br />

alles aus dem Netz kommt – nach<br />

wie vor dient typischerweise die eigene<br />

Festplatte als verlässlichste Medienquelle.<br />

Welche Lösungsmöglichkeiten<br />

bieten sich nun an, um dem heimischen<br />

Medienserver Zugriff auf einen solchen<br />

Massenspeicher zu gestatten?<br />

Den meisten Anwendern dürfte hier<br />

die Idee kommen, eine externe Festplatte<br />

direkt an den <strong>Raspberry</strong> <strong>Pi</strong> anzuschließen.<br />

Das funktioniert zwar, stellt jedoch<br />

nicht das Nonplusultra im Spektrum der<br />

Möglichkeiten dar. Komfortabel wäre<br />

schließlich, wenn nicht nur das Media-<br />

Center Zugriff auf den Massenspeicher<br />

05.2013 www.raspberry-pi-geek.de<br />

57


Multimedia<br />

<strong>Raspberry</strong> <strong>Pi</strong><br />

2 Confluence ist der Standard-Skin von XBMC.<br />

3 Xeebo erinnert nicht nur zufällig an Boxee.<br />

mit der eigenen Film- <strong>und</strong> Musiksammlung<br />

hätte, sondern alle im heimischen<br />

LAN eingebuchten Geräte.<br />

Direkt auf dem <strong>Raspberry</strong> <strong>Pi</strong> einen Server<br />

laufen zu lassen, welcher die angeschlossene<br />

externe Festplatte im LAN<br />

bereitstellt, ist jedoch eher nicht ratsam:<br />

Aufgr<strong>und</strong> der schwachen CPU kann es<br />

beim Abspielen eines Films schnell zu einer<br />

Systemüberlastung kommen, wenn<br />

im Hintergr<strong>und</strong> aktive Datentransfers zu<br />

mehreren Clients stattfinden. Eine sauberere<br />

<strong>und</strong> alltagstauglichere Lösung<br />

besteht darin, das Gerät im Wohnzimmer<br />

<strong>und</strong> den Massenspeicher physisch<br />

voneinander zu trennen – etwa durch<br />

ein im LAN vorhandenes NAS.<br />

Nun sind handelsübliche NAS zum einen<br />

nicht eben preisgünstig, zum anderen<br />

erweisen sie sich als wenig flexibel:<br />

Es gilt mit den Protokollen zu leben, die<br />

der Hersteller von Haus aus implementiert<br />

hat. Als billige <strong>und</strong> flexible Alternative<br />

bietet es sich an, einen zweiten<br />

Rasp berry <strong>Pi</strong> als Eigenbau-NAS zu nutzen.<br />

Als Distribution <strong>für</strong> das selbstgebaute<br />

NAS kann beispielsweise eine Minimal-Installation<br />

von Raspbian û dienen.<br />

Falls im Netzwerk nicht das <strong>Raspberry</strong>-<br />

Media-Center auf das NAS zugreift, sondern<br />

auch der eine oder andere Windows-Client,<br />

besteht die einfachste Vorgehensweise<br />

darin, das Samba-Protokoll<br />

zu verwenden. Dessen Performance lässt<br />

allerdings ausgerechnet bei breitbandigen<br />

Übertragungen, wie sie gerade bei<br />

Videodateien vorkommen, deutlich zu<br />

wünschen übrig. Besser fahren Sie hier<br />

mit NFS oder WebDAV. Haben Sie also<br />

auf dem NAS-<strong>Raspberry</strong> eine Server-<br />

Software wie Mediatomb installiert, um<br />

die Ordner freizugeben, kann das Media-<br />

Center ohne Probleme auf die Daten zugreifen<br />

– XBMC beherrscht UPnP.<br />

Damit durch die NAS-Festplatte keine<br />

hohen Stromkosten entstehen, sollten<br />

Sie dieser einen Spindown verordnen.<br />

Da<strong>für</strong> installieren Sie das Paket hdparm.<br />

Um die Festplatte unter /dev/sda nach<br />

einer Minute Inaktivität automatisch einzuschläfern,<br />

fügen Sie der Datei /etc/<br />

hdparm.conf folgende Zeile hinzu:<br />

4 Back Row gestaltet das Thema Kino optisch ansprechend.<br />

sudo hdparm ‐S 12 /dev/sda<br />

58 www.raspberry-pi-geek.de<br />

05.2013


<strong>Raspberry</strong> <strong>Pi</strong><br />

Multimedia<br />

Optische Scheiben kommen zwar langsam<br />

aus der Mode, aber dennoch hat<br />

der eine oder andere noch einige Filme<br />

in Form von Silberlingen zu Hause. Bei<br />

DVDs stellt das kein Problem dar – die<br />

spielt XBMC klaglos ab, vorausgesetzt,<br />

am <strong>Raspberry</strong> <strong>Pi</strong> hängt ein externes USB-<br />

DVD-Laufwerk. Bei Blu-ray-Disks sieht es<br />

jedoch düster aus – aufgr<strong>und</strong> eines rigiden<br />

DRM-Schutzes lassen sich verschlüsselte<br />

Scheiben derzeit nicht abspielen.<br />

Des Kaisers neue Kleider<br />

Die Oberfläche von XBMC lässt sich anpassen<br />

<strong>und</strong> auf Wunsch stark verändern.<br />

Alle drei <strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong> erhält liche<br />

Distributionen nutzen als Vorgabe den<br />

Standard-Skin von XBMC, „Confluence“<br />

2. Via XML-Datei wird <strong>für</strong> einen solchen<br />

Skin festgelegt, wie die Menüstruktur<br />

aussieht <strong>und</strong> welche Bilder, Schriftarten<br />

<strong>und</strong> Grafiken der Benutzer zu Gesicht<br />

bekommt.<br />

In der offiziellen XBMC-Paketquelle<br />

finden sich mittlerweile einige weitere<br />

Skins, die sich dementsprechend einfach<br />

über das Einstellungsmenü nachinstallieren<br />

lassen. Als Beispiele da<strong>für</strong> Skins<br />

seien hier Xeebo 3 , Back Row 4 ,<br />

Quartz <strong>und</strong> Metropolis 5 erwähnt. Es<br />

existieren jedoch noch weitaus mehr.<br />

Live is Live<br />

Wäre es nicht schön, in XBMC auch Fernsehkanäle<br />

anzuschauen <strong>und</strong> gegebenenfalls<br />

aufzuzeichnen? An den <strong>Raspberry</strong><br />

<strong>Pi</strong> müssen Sie dazu per USB eine<br />

externe DVB-Empfangseinheit anschließen,<br />

<strong>für</strong> die es auch Linux-Treiber gibt.<br />

Dazu hält LinuxTV.org umfangreiche Informationen<br />

bereit. Dort finden Sie auch<br />

<strong>für</strong> jedes unterstützte Modell Anleitungen<br />

zur Installation der passenden Treiber<br />

<strong>und</strong> Firmware-Dateien. Mit etwas<br />

Glück bringt der Kernel Treiber <strong>für</strong> das<br />

vorhandene Gerät mit, <strong>und</strong> Sie müssen<br />

nur noch die Firmware herunterladen<br />

<strong>und</strong> nach /lib/firmware/ kopieren.<br />

Die DVB-Hardware sollten Sie auf jeden<br />

Fall nicht unmittelbar an den <strong>Raspberry</strong><br />

<strong>Pi</strong> anschließen, sondern sie nur<br />

mittelbar über einen aktiven USB-Hub<br />

5 Wer es futuristisch mag, greift zur Metropolis-Skin.<br />

mit dem Media-Center verbinden – DVB-<br />

Empfangseinheiten benötigen vergleichsweise<br />

viel Strom. Sobald das Gerät<br />

problemlos erkannt wurde, installieren<br />

Sie die Server-Software TV-Headend.<br />

Konkrete Hinweise, wie Sie das beispielsweise<br />

unter RaspBMC erledigen <strong>und</strong> <strong>für</strong><br />

XBMC gleichzeitig ein zugehöriges<br />

Client- Addon aktivieren, finden sich in<br />

den Foren von Stm Labs û. Zudem<br />

müssen Sie zu einem Nightly-Build von<br />

XBMC wechseln – bei RaspBMC klappt<br />

das beispielsweise problemlos über das<br />

Einstellungsmenü.<br />

Allerdings funktioniert Live-Fernsehen<br />

(<strong>und</strong> erst recht dessen Aufzeichnung)<br />

auf dem <strong>Raspberry</strong> <strong>Pi</strong> nur rudimentär. Je<br />

nach Hardware gibt es gröbere Instabilitäten.<br />

So konnten wir zwar einen externen<br />

DVB-S-Empfänger am Media-Center<br />

in Betrieb nehmen, doch in der Praxis<br />

disqualifizierte sich der Aufbau recht<br />

schnell: Die Umschaltzeiten zwischen<br />

Programmen fielen so lange aus, dass<br />

selbst ein billiger Baumarkt-Satellitenreceiver<br />

noch pfeilschnell erscheint.<br />

Live-TV auf dem <strong>Raspberry</strong> <strong>Pi</strong> wirkt<br />

derzeit eher noch wie ein Proof of Concept.<br />

Falls Ihnen dieses Feature wichtig<br />

ist, weichen Sie lieber auf einen teureren<br />

HTPC aus. Alle anderen in diesem Artikel<br />

beschriebenen Funktionen meistert der<br />

<strong>Raspberry</strong> <strong>Pi</strong> jedoch problemlos. (jlu) n<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29847<br />

05.2013 www.raspberry-pi-geek.de<br />

59


<strong>Hacks</strong><br />

Ras<strong>Pi</strong> als Wetterstation<br />

Mit dem <strong>Raspberry</strong> <strong>Pi</strong><br />

eine Wetterstation anzapfen<br />

Alle Wetter<br />

© Sergey Drozdov, Fotolia<br />

Einige Wetterstationen liefern<br />

ihre Messdaten per USB an<br />

einen angeschlossenen<br />

Rechner. Mit dem <strong>Raspberry</strong><br />

<strong>Pi</strong> lassen sich so die Daten<br />

auswerten <strong>und</strong> per Webanwendung<br />

ins Netz stellen.<br />

Marcus Nasarek<br />

Readme<br />

Da in einem <strong>Raspberry</strong> <strong>Pi</strong> ein ausgewachsenes<br />

Linux steckt, stellen auch eigene<br />

Webanwendungen <strong>für</strong> den Heimgebrauch<br />

kein Problem dar. Der Artikel zeigt, wie man<br />

die Daten einer Wetterstation mit Ruby auswertet<br />

<strong>und</strong> dann mithilfe eines Webservers<br />

im Eigenbau präsentiert.<br />

Meiner neuen Wetterstation TFA Nexus<br />

1 lagen nicht nur etliche Sensoren <strong>für</strong><br />

Wind, Regen <strong>und</strong> Außentemperatur bei,<br />

sondern auch ein USB-Kabel <strong>und</strong> eine<br />

Auswerte-Software û. Letztere wanderte<br />

aber direkt wieder in den Karton: Zum<br />

einen setzte sie Windows voraus, zum<br />

anderen war es eine reine Desktop-Anwendung.<br />

Ich wollte die Messdaten aber<br />

aufzeichnen <strong>und</strong> möglichst auch mit<br />

dem Handy von unterwegs bew<strong>und</strong>ern.<br />

So fiel mein zweiter Blick dann auf<br />

meinen <strong>Raspberry</strong> <strong>Pi</strong>. Der gab bisher mit<br />

einem kleinen Lautsprecher ein Mini-<br />

Mediacenter ab. Stattdessen, so mein<br />

Gedanke, könnte er doch die Messdaten<br />

aus der Wetterstation auslesen. Der<br />

Strombedarf wäre gegenüber einem PC<br />

verschwindend gering, obendrein läuft<br />

Listing 1<br />

$ sudo ./te923con<br />

der Ras<strong>Pi</strong> lautlos. Wie aber per USB an<br />

die Daten kommen, wenn der Station<br />

nur ein Windows-Programm beiliegt?<br />

Ein kleines C-Programm<br />

Sebastian John hat das kleine Programm<br />

Te923tool û geschrieben, das viele Wetterstationen<br />

auslesen kann, die auf Hardware<br />

des Herstellers Hideki basieren. Mit<br />

ein paar Abstrichen funktioniert es auch<br />

<strong>für</strong> meine TFA Nexus. Da<strong>für</strong> gilt es jedoch,<br />

den Quellcode des Programms auf dem<br />

<strong>Raspberry</strong> <strong>Pi</strong> zu kompilieren. Damit das<br />

klappt, müssen die Entwicklerwerkzeuge<br />

gcc, make <strong>und</strong> libusb‐dev installiert sein.<br />

Nach Auspacken des Programm-Archivs<br />

sollte der Aufruf von make dann das<br />

Programm te923con liefern. Ein Test mit<br />

1363468817:20.40:50:i:i:i:i:i:i:i:i:‐1.90:60:1008.0:i:5:0:14:0.4:0.6:U<br />

‐3.8:115<br />

60 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> als Wetterstation<br />

<strong>Hacks</strong><br />

Te923tool 0.5, Listings zum Artikel<br />

LU/raspi/<br />

1 Die elektronische Wetterstation TFA Nexus erfasst unter anderem Wind, Regen sowie<br />

Außentemperatur <strong>und</strong> reicht die Daten via USB weiter. (Bild: TFA-Dostmann)<br />

dem Aufruf te923con ‐h liefert – neben<br />

der Erkenntnis, ob das Binary läuft – eine<br />

ausführliche Hilfe. Die wiederum verrät,<br />

dass ein Aufruf ohne Parameter die<br />

Messdaten ausgibt (Listing 1).<br />

Das vorangestellte sudo ist nötig, da<br />

der Zugriff auf den USB-Port Root-Rechte<br />

benötigt. Was die einzelnen Werte zwischen<br />

den Doppelpunkten bedeuten, erklärt<br />

die Hilfe. Ein „i“ steht demnach <strong>für</strong><br />

Werte, die das Programm nicht zuweisen<br />

konnte. Das erste Feld jedoch erklärt die<br />

Hilfe nicht: Hier handelt es sich um die<br />

Unix-Zeit, also die Sek<strong>und</strong>en, die seit<br />

dem 1.1.1970 vergangen sind. Ein Aufruf<br />

von date ‐d @1363468817 +%c im Terminal<br />

macht daraus das lesbare Datum<br />

Sam 16 Mär 2013 22:20:17 CET.<br />

Ruby installieren<br />

Ruby bietet eine perfekte Gr<strong>und</strong>lage, um<br />

die Messdaten zu verarbeiten <strong>und</strong> einen<br />

Webserver damit zu füttern. Zu den zahlreichen<br />

Bibliotheken, die man über die<br />

Ruby-eigene Paketverwaltung RubyGem<br />

nachinstallieren kann, zählen auch die<br />

Datenbankschnittstelle ActiveRecord<br />

sowie der Webserver Sinatra. Die beiden<br />

Bibliotheken machen später den Kern<br />

der Anwendung aus. Ruby lässt sich auf<br />

dem Ras<strong>Pi</strong> zwar aus den Debian-Paketquellen<br />

installieren, aktueller <strong>und</strong> einfacher<br />

zu verwalten, ist es jedoch mit der<br />

Ruby-Versionsverwaltung Rbenv û.<br />

Um Rbenv aus dem Quellcode-Repo<br />

gitHub.com zu installieren, müssen Sie<br />

zunächst das Paket git einrichten. Einige<br />

Ruby-Bibliotheken werden zudem vor<br />

der Installation auf dem Zielsystem kompiliert.<br />

Um später weitere Bibliotheken<br />

einrichten zu können, gilt es, noch die<br />

Bibliotheken zlib1g‐dev, libsqlite3‐dev,<br />

lib ssl‐dev <strong>und</strong> libreadline6‐dev aus den<br />

Debian-Paketquellen nachzuziehen.<br />

Listing 3<br />

Listing 2<br />

require 'sinatra'<br />

puts Sinatra::VERSION<br />

get '/' do<br />

'Hello world!'<br />

end<br />

require 'csv'<br />

require 'active_record'<br />

data = CSV.read('weather.csv', { col_sep: ':' })<br />

ActiveRecord::Base.establish_connection({"adapter"=>"sqlite3",<br />

"database"=>"db.sqlite3"})<br />

class Temperature < ActiveRecord::Base<br />

validates_uniqueness_of :zeit<br />

end<br />

data.each do |d|<br />

werte = { zeit: d[0], t: d[11] }<br />

Temperature.create werte<br />

end<br />

05.2013 www.raspberry-pi-geek.de<br />

61


<strong>Hacks</strong><br />

Ras<strong>Pi</strong> als Wetterstation<br />

Zur Installation folgen Sie den Anweisungen<br />

auf der Rbenv-Webseite. Anschließend<br />

richtet der Aufruf rbenv install<br />

2.0.0‐p0 die aktuelle Ruby-Version ein.<br />

Bevor Sie Ruby dann verwenden können,<br />

legen Sie per rbenv global 2.0.0‐p0<br />

erst einmal diese Version als Standard<br />

fest. Ein Test mit ruby ‐v zeigt, ob die<br />

Installation geklappt hat.<br />

Die Ruby-Bibliotheken verwalten Sie<br />

mittels RubyGem. Um Webanwendungen<br />

mit Sinatra zu programmieren, richten<br />

Sie mit dem Kommando gem install<br />

sinatra das Sinatra-gem ein. Listing<br />

2 zeigt eine vollwertige Webanwendung,<br />

die Sie nach dem Start mit ruby<br />

webapp.rb im Browser unter der URL<br />

http://localhost:4567/ aufrufen.<br />

Datenbank befüllen<br />

Jetzt müssen Sie die Messdaten noch in<br />

einer Datenbank ablegen. Das schlanke<br />

SQLite genügt <strong>für</strong> solche einfachen Zwecke,<br />

versteht aber trotzdem SQL. Sie richten<br />

das gute Stück aus dem Debian-Paket<br />

sqlite3 ein. Um SQLite aus Ruby heraus<br />

zu verwenden, benötigen Sie zudem<br />

das Ruby-gem sqlite3. Eine neue<br />

Datenbankdatei db.sqlite3, die zum<br />

Listing 5<br />

Listing 4<br />

require 'active_record'<br />

ActiveRecord::Base.establish_coU<br />

nnection({"adapter"=>"sqlite3",<br />

"database"=>"db.sqlite3"})<br />

class Temperature <<br />

ActiveRecord::Base<br />

end<br />

werte = Temperature.all.map {|m|<br />

[m.zeit * 1000, m.t]}<br />

data = werte.inspect<br />

puts data<br />

<br />

<br />

<br />

<br />

<br />

$(function () {<br />

var chart = new Highcharts.Chart({<br />

chart: { renderTo: 'container' },<br />

title: { text: 'Messdaten'},<br />

xAxis: { type: 'datetime' },<br />

yAxis: { title: { text: 'Temperatur (C)' } },<br />

series: [{<br />

name: "Temperatur",<br />

data: [[1363465023000, ‐1.3], [1363468623000, ‐1.9],<br />

[1363472223000, ‐2.5],<br />

[1363475823000, ‐2.5], [1363479423000, ‐2.8], [1363483023000,<br />

‐3.1],<br />

[1363486623000, ‐3.4], [1363490223000, ‐3.7], [1363493823000,<br />

‐3.9],<br />

[1363497423000, ‐3.9], [1363501023000, ‐3.3], [1363504622000,<br />

2.0],<br />

[1363508223000, 1.1], [1363511822000, 7.8], [1363515422000, 5.4],<br />

[1363519022000, 4.3], [1363522623000, 5.9], [1363526223000, 6.3],<br />

[1363529823000, 5.2], [1363533423000, 3.8], [1363537023000, 3.1],<br />

[1363540623000, 2.0], [1363544223000, 1.6], [1363547823000, 1.3],<br />

[1363551422000, 1.1]],<br />

pointStart: 1363465023000,<br />

pointInterval: 3600 * 1000 // one hour<br />

}]<br />

});<br />

});<br />

<br />

<br />

<br />

<br />

<br />

<br />

62 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> als Wetterstation<br />

<strong>Hacks</strong><br />

2 Ein Highcharts-Diagramm der Wetterdaten in einer Sinatra-Webanwendung.<br />

Beispiel die Temperaturwerte aufnimmt,<br />

erstellen Sie mit dem Befehl<br />

$ sqlite3 db.sqlite3 'create tableU<br />

temperatures(zeit integer, t real)<br />

Das Ruby-Programm in Listing 3 greift<br />

mithilfe von ActiveRecord auf diese Datenbank<br />

zu <strong>und</strong> füllt sie mit den Werten,<br />

die es aus einer CSV-Datei wetter.csv<br />

einliest. Die Zeilen in der CSV-Datei wiederum<br />

enthalten die Daten der Wetterstation<br />

im Format aus Listing 1.<br />

ActiveRecord kümmert sich dabei<br />

automatisch um alles, was man <strong>für</strong> das<br />

Lesen <strong>und</strong> Schreiben von Datenbanken<br />

braucht. So erkennt es in Listing 3 an<br />

den Namen der Klasse Temperature,<br />

dass es in der Datenbank die Tabelle<br />

temperatures verwenden muss, <strong>und</strong> an<br />

den Namen der Variablen (zeit <strong>und</strong> t),<br />

in welche Spalten der Datenbanktabelle<br />

es schreiben muss.<br />

Messwerte lesen<br />

Die Daten lassen sich dank ActiveRecord<br />

auch komfortabel wieder aus der Datenbank<br />

auslesen. Der Code in Listing 4 liest<br />

alle Einträge in einem Schwung in die<br />

Variable werte ein <strong>und</strong> multipliziert dabei<br />

die Zeitwerte mit 1000. Das Array enthält<br />

Wertepaare aus Zeit <strong>und</strong> Messwert, damit<br />

die Diagrammbibliothek diese später als<br />

Datenpunkte interpretieren kann. Die<br />

Methode inspect generiert aus dem Array<br />

eine Zeichenkette der Form:<br />

"[[1363465023000, ‐1.3], [13634686U<br />

23000, ‐1.9],…]"<br />

Im Listing wird diese Zeichenkette im<br />

Terminal ausgegeben, später bauen wir<br />

sie in die Webseite an der entsprechenden<br />

Stelle im Javascript-Code ein.<br />

Webseiten darstellen<br />

Es gibt diverse Wege, die Daten zu Diagrammen<br />

zu verarbeiten <strong>und</strong> diese in<br />

eine Webseite einzubetten. So ließe sich<br />

per Skript mit Gnuplot eine Grafik erzeugen<br />

<strong>und</strong> einbauen. Google Charts bietet<br />

die Möglichkeit, die Daten an eine Webschnittstelle<br />

zu übermitteln, <strong>und</strong> liefert<br />

ein Bild zurück. So braucht man keine<br />

Grafikanwendung auf dem eigenen Server.<br />

Ich habe mich <strong>für</strong> eine dritte Variante<br />

entschieden <strong>und</strong> die Javascript-Bibliothek<br />

Highcharts û zum Erzeugen der<br />

Diagramme genutzt. Highcharts liefert<br />

sehr ansprechende Ergebnisse. Zwar<br />

kostet die Nutzung <strong>für</strong> den kommerziellen<br />

Einsatz nicht gerade wenig, die private<br />

Nutzung räumt der Anbieter Highsoft<br />

Solutions AS unter der „Creative<br />

Commons Attribution-NonCommercial<br />

3.0 License“ aber kostenfrei ein.<br />

Listing 5 zeigt ein Diagramm <strong>für</strong> den<br />

Temperaturverlauf über 24 St<strong>und</strong>en. Um<br />

es zu erzeugen, gilt es, lediglich die beiden<br />

Javascript-Bibliotheken jQuery <strong>und</strong><br />

Highcharts einzubetten. Das eigentliche<br />

Diagramm wird als Javascript-Funktion<br />

definiert. Das einzig Besondere stellt das<br />

Kennzeichnen der X-Achse als Datumswerte<br />

<strong>und</strong> das Einbetten der Messwerte<br />

dar. Ein Messwert setzt sich aus der Zeitangabe<br />

<strong>und</strong> der Temperatur zusammen.<br />

Die Zeitangaben aus der Wetterstation<br />

haben wir vorher mit 1000 multipliziert,<br />

da Javascript die Werte in Millisek<strong>und</strong>en<br />

erwartet, die Angaben in den Messdaten<br />

jedoch in Sek<strong>und</strong>en vorliegen.<br />

Alles zusammen<br />

Die bisher beschriebenen Zutaten machen<br />

den Kern der Anwendung aus. Was<br />

noch fehlt, ist im Wesentlichen die regelmäßige<br />

Aktualisierung der Daten <strong>und</strong> das<br />

Zusammenspiel der bisher beschriebenen<br />

Komponenten. Eine einfache Webanwendung,<br />

die Daten aus der Datenbank<br />

ausliest <strong>und</strong> das entsprechende Diagramm<br />

generiert, sehen Sie in Listing 6.<br />

Die eigentliche Sinatra-Anwendung<br />

steckt in den Zeilen 8 bis 13. Der Aufruf<br />

von erb :index baut die Daten in die<br />

Webseite ein, die wiederum ab Zeile 18 in<br />

das Skript eingebettet ist. Erb ersetzt in<br />

Zeile 23 den Code durch<br />

den Inhalt der Variablen @data. Das Ergebnis<br />

im Browser zeigt Abbildung 2 .<br />

Um das regelmäßige Erfassen der Daten<br />

kümmert sich ein Cron-Job mit einem<br />

stündlichen Aufruf des Lade-Skripts<br />

aus Listing 7. Das Skript legen Sie im Verzeichnis<br />

/etc/cron.hourly ab <strong>und</strong> markieren<br />

es mit sudo chmod a+x crontab_<br />

pi als ausführbar. Das im Listing aufgeführte<br />

Skript load_data liest die Messdaten<br />

aus, schreibt sie in die CSV-Datei <strong>und</strong><br />

lädt diese in die Datenbank.<br />

05.2013 www.raspberry-pi-geek.de<br />

63


<strong>Hacks</strong><br />

Ras<strong>Pi</strong> als Wetterstation<br />

3 Die gesammelten <strong>und</strong> aufbereiteten Wetterdaten in der fertigen Webanwendung.<br />

Listing 6<br />

Ausblick<br />

Listing 6 hat das Prinzip einer Sinatra-<br />

Webanwendung gezeigt, in der mit relativ<br />

wenig Code eine vollwertige Weban-<br />

01 require 'active_record'<br />

02 require 'sinatra'<br />

03 <br />

04 ActiveRecord::Base.establish_connection({"adapter"=>"sqlite3",<br />

"database"=>"db.sqlite3"})<br />

05 class Temperature < ActiveRecord::Base<br />

06 end<br />

07 <br />

08 get '/' do<br />

09 werte = Temperature.all(order: "zeit desc", limit: 24)<br />

10 @data = werte.map {|m| [m.zeit * 1000, m.t]}.inspect<br />

11 @start_time = werte.first.zeit<br />

12 erb :index<br />

13 end<br />

14 <br />

15 __END__<br />

16 <br />

17 @@ index<br />

18 <br />

19 <br />

20 [ ... wie in Listing 5, bis 'series' ...]<br />

21 series: [{<br />

22 name: "Temperatur",<br />

23 data: ,<br />

24 pointStart: ,<br />

25 pointInterval: 3600 * 1000 // one hour<br />

26 }]<br />

27 [ ... weiter wie in Listing 5 ...]<br />

wendung entsteht. Der Rest ist Fleißarbeit<br />

<strong>und</strong> besteht größtenteils darin, die<br />

anderen von der Wetterstation gelieferten<br />

Messwerte einzubeziehen <strong>und</strong> das<br />

Programm etwas aufzuräumen. Ein mögliches<br />

Resultat dieser Bemühungen zeigt<br />

Abbildung 3 .<br />

Das vorläufige Ergebnis meiner Wetter-Anwendung<br />

habe ich als Quellcode<br />

in gitHub.com û eingestellt. Um die<br />

Sourcen mit Git herunterzuladen <strong>und</strong><br />

auszuprobieren, erzeugen Sie zunächst<br />

eine lokale Kopie:<br />

$ git clone git://github.com/rheiU<br />

kvaneyck/rnexus.git<br />

Später können Sie Aktualisierungen<br />

dann mit git pull nachladen. Noch ist<br />

der Code an vielen Stellen verbesserungsfähig.<br />

Einen Einblick in die Möglichkeiten,<br />

mit einem <strong>Raspberry</strong> <strong>Pi</strong> auch<br />

eigene Webanwendungen zu bauen,<br />

verschafft er aber allemal. (jlu) n<br />

Listing 7<br />

30 * * * * /usr/local/bin/<br />

load‐data > /dev/null 2>&1<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29842<br />

64 www.raspberry-pi-geek.de<br />

05.2013


Probelesen<br />

ohne risiko<br />

Und Gewinnen!<br />

einen von drei Spheros, per Smartphone fernsteuerbare<br />

Roboter-Bälle im Gesamtwert von 389 Euro<br />

wasserfester Kugelroboter, per Bluetooth steuerbar,<br />

Multi-Colour-Changing LEDs, Apps <strong>für</strong> Android <strong>und</strong> iOS<br />

induktive Ladestation (3 Std. Ladezeit, 1 Std. Betriebszeit)<br />

gesponsert von<br />

.de<br />

sonderAkTion!<br />

Testen sie jetzt<br />

3 Ausgaben <strong>für</strong><br />

nUr 3€*<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de<br />

Mit großem Gewinnspiel unter:<br />

www.linux-user.de/probeabo<br />

* Angebot gilt innerhalb Deutschlands <strong>und</strong> Österreichs. In der Schweiz: SFr 4,50.<br />

Weitere Preise: www.linux-user.de/produkte


<strong>Hacks</strong><br />

Ras<strong>Pi</strong> als Printserver<br />

<strong>Raspberry</strong> <strong>Pi</strong> zum Wireless-Printserver aufrüsten<br />

Im grünen Bereich<br />

Der <strong>Raspberry</strong> <strong>Pi</strong> ist so<br />

günstig, klein <strong>und</strong> sparsam,<br />

dass er sich auch als WLAN-<br />

Printserver <strong>für</strong> das Recycling<br />

eines ausgedienten Multifunktionsdruckers<br />

eignet –<br />

ganz im Sinn der „Green IT“.<br />

Marcus Nasarek<br />

Readme<br />

Klobige Multifunktionsdrucker mit<br />

USB-Anschluss sind keine Augenweide,<br />

besonders neben einem schicken Notebook<br />

oder Tablet. Netzwerkfähige Drucker<br />

dagegen verschwinden unauffällig<br />

in einer Ecke, zudem stehen sie allen Benutzern<br />

im LAN bereit. Deswegen haben<br />

solche Drucker ihre USB-Kollegen an vielen<br />

Arbeitsplätzen längst abgelöst.<br />

Das ist aber noch lange kein Gr<strong>und</strong>,<br />

den alten USB-Drucker auf dem nächsten<br />

Wertstoffhof zu entsorgen. Der <strong>Raspberry</strong><br />

<strong>Pi</strong> eignet sich hervorragend dazu,<br />

die USB-Welt mit dem LAN zu verbinden,<br />

<strong>und</strong> stellt obendrein in Form von Cups<br />

noch einen veritablen Druckserver zur<br />

Verfügung. Mit einem WLAN-Adapter<br />

am Ras<strong>Pi</strong> hängt die Standortwahl <strong>für</strong><br />

den Drucker dann nur noch von einem<br />

passenden Stromanschluss ab.<br />

Einkaufsliste<br />

Da reine USB-Drucker nicht mehr en<br />

vogue sind, gibt es entsprechende Gebrauchtgeräte<br />

zu sehr günstigen Preisen.<br />

Selbst wenn Sie also nicht auf einen<br />

noch vorhandenen USB-Drucker zurückgreifen<br />

können, lohnt sich schon aus<br />

Kostengründen unter Umständen immer<br />

noch die Anschaffung eines gebrauchten.<br />

Die gibt es bei den Online-Plattform<br />

Ebay schon <strong>für</strong> unter 20 Euro.<br />

Die Tabelle Einkaufsliste zeigt eine Zusammenstellung<br />

<strong>für</strong> ein Komplettpaket<br />

inklusive eines gebrauchten Multifunktionsdruckers<br />

des Typs Canon <strong>Pi</strong>xma<br />

MP160, den Sie auch als Scanner einsetzen<br />

können. Bei Gesamtkosten von r<strong>und</strong><br />

90 Euro kommt das Komplettpaket<br />

selbst samt Drucker etwas günstiger als<br />

die Anschaffung eines vergleichbaren<br />

neuen, WLAN-fähigen Druckers. Finden<br />

sich einzelne Komponenten aus der Liste<br />

noch in Ihrem F<strong>und</strong>us – etwa eine<br />

passende SD-Card, ein Micro-USB-Steckernetzteil<br />

eines alten Smartphones,<br />

oder eben ein etwas eingestaubter USB-<br />

Drucker – bietet sich hier eine preislich<br />

konkurrenzlos günstige Lösung an.<br />

Das Gr<strong>und</strong>system<br />

Der <strong>Raspberry</strong> <strong>Pi</strong> lädt sein Betriebssystem<br />

von einer SD-Card. Dazu bespielen<br />

Sie eine mindestens 2 GByte große SD-<br />

Card mit einer Linux-Distribution, die<br />

sich <strong>für</strong> den ARM-Prozessor des Ras<strong>Pi</strong><br />

eignet. Die folgende Anleitung basiert<br />

auf dem von <strong>Raspberry</strong>.org empfohlenen<br />

Debian-Ableger Raspbian „Wheezy“,<br />

dessen Image Sie als ZIP-Archiv von der<br />

<strong>Raspberry</strong>-Website û herunterladen.<br />

Die Webseite enthält auch eine Anleitung<br />

<strong>für</strong> das Vorbereiten der SD-Card.<br />

Für die Installation mit einem Windows-<br />

Es muss nicht gleich immer ein neuer netzwerkfähiger<br />

Drucker her, wenn der kabellose<br />

Arbeitsplatz winkt: Ein <strong>Raspberry</strong> <strong>Pi</strong><br />

bringt mit Cups <strong>und</strong> Sane alles mit, was aus<br />

einem alten USB-Drucker einen netzwerkfähigen<br />

Office-Drucker macht. Der Artikel<br />

zeigt, welche Komponenten Sie <strong>für</strong> den<br />

Netzwerkdrucker im Eigenbau benötigen<br />

<strong>und</strong> wie Sie alles zum Laufen bringen.<br />

Einkaufsliste<br />

Komponente Bezugsquelle Preis (ca.)<br />

Multifunktionsdrucker Canon MP160 Ebay 20 Euro<br />

<strong>Raspberry</strong> <strong>Pi</strong> Type B Amazon 41 Euro<br />

Gehäuse <strong>für</strong> den Ras<strong>Pi</strong> Amazon 7 Euro<br />

Wireless USB Adapter EDIMAX EW-7811UN Amazon 11 Euro<br />

Steckernetzteil Micro-USB 5V Amazon 7 Euro<br />

SD-Card (2 GByte) Amazon 6 Euro<br />

Summe<br />

92 Euro<br />

66 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> als Printserver<br />

<strong>Hacks</strong><br />

System verweist das Projekt auf das Tool<br />

Win32DiskImager. Auf einem vorhandenen<br />

Linux-System gelingt die Installation<br />

unter Ubuntu mit dem grafischen Tool<br />

Imagewriter. Noch einfacher geht es mit<br />

Bordmitteln, sofern Sie die Kommandozeile<br />

nicht scheuen: Von dort kopieren<br />

Sie das Image per dd auf eine SD-Card.<br />

Das Tool warnt allerdings nicht, wenn<br />

der Vorgang eventuell vorhandene Daten<br />

auf dem Ziellaufwerk überschreibt –<br />

gehen Sie hier also vorab sicher, welches<br />

Device auf die SD-Card verweist. Nach<br />

dem Einstecken der Speicherkarte rufen<br />

Sie dazu dmesg auf, das in den letzten<br />

Zeilen das gerade erkannte Gerät aufführt<br />

(im folgenden Beispiel sdb).<br />

Nachdem Sie das Raspbian-Image aus<br />

dem heruntergeladenen ZIP-Archiv extrahiert<br />

haben, kopieren Sie es dann mit<br />

dem folgenden Befehl auf die SD-Card:<br />

$ dd bs=4M if=2013‐05‐25‐wheezy‐rU<br />

aspbian.img of=/dev/sdb<br />

Wie Sie hier sehen, war die zu Redaktionsschluss<br />

aktuelle Raspbian-Version<br />

von Ende Mai 2013. Den Gerätenamen<br />

/ dev/sdb müssen Sie wie bereits erwähnt<br />

auf Ihrem System unter Umständen<br />

anpassen.<br />

Nach dem Kopieren<br />

des Images<br />

ist die<br />

SD-Card sofort<br />

betriebsbereit,<br />

<strong>und</strong> Sie können<br />

sie direkt<br />

in den<br />

<strong>Raspberry</strong> <strong>Pi</strong><br />

einstecken.<br />

Nach Anschluss<br />

der<br />

Stromversorgung lädt der Mini-Computer<br />

das Betriebssystem <strong>und</strong> lässt sich<br />

nun konfigurieren.<br />

Netzwerkkonfiguration<br />

Stehen ein HDMI-Monitor <strong>und</strong> eine USB-<br />

Tastatur zur Verfügung, kann die Konfiguration<br />

des Ras<strong>Pi</strong> direkt am Gerät erfolgen.<br />

Die Installation via Netzwerk bereitet<br />

aber ebenso wenig Probleme, sofern<br />

Sie den Zwergcomputer vorab per Netzwerkkabel<br />

ans LAN angeschlossen haben.<br />

Dann fragt er per DHCP nach einer<br />

IP-Adresse <strong>und</strong> konfiguriert die Netzwerkschnittstelle<br />

mit den angelieferten<br />

Daten. Die Gr<strong>und</strong>installation liefert auch<br />

gleich einen SSH-Server mit, sodass der<br />

Installation über einen sicheren Kanal<br />

nichts im Wege steht.<br />

Freilich klappt eine Konfiguration per<br />

SSH nur dann, wenn Sie wissen, welche<br />

IP-Adresse der Ras<strong>Pi</strong> vom DHCP-Server<br />

erhalten hat. Dieser läuft in<br />

der Regel auf dem heimischen<br />

Router, wo Sie<br />

die per DHCP vergebenen<br />

Adressen in einem<br />

Menü zu den DHCP-<br />

Einstellungen<br />

Raspbian „Wheezy“ 2013-05-25<br />

(Image als ZIP)<br />

LU/raspbian/<br />

© Natalija Bielous, 123RF<br />

05.2013 www.raspberry-pi-geek.de<br />

67


<strong>Hacks</strong><br />

Ras<strong>Pi</strong> als Printserver<br />

Listing 1<br />

#/etc/network/interfaces<br />

auto lo<br />

iface lo inet loopback<br />

iface eth0 inet static<br />

address 192.168.0.64<br />

netmask 255.255.255.0<br />

gateway 192.168.0.1<br />

nachschlagen können. Der Ras<strong>Pi</strong> meldet<br />

sich mit dem Host-Namen raspberrypi<br />

an. Bei der Gelegenheit nehmen Sie<br />

idealerweise auch gleich eine Adressreservierung<br />

vor, falls der Router das unterstützt:<br />

Dann erhält der Ras<strong>Pi</strong> immer<br />

die gleiche IP-Adresse – die Voraussetzung<br />

da<strong>für</strong>, dass die Druck-Clients ihn<br />

später direkt finden können.<br />

Kennen Sie die IP-Adresse – im Beispiel<br />

192.168.0.100 – öffnet ein Aufruf<br />

von ssh pi@IP-Adresse <strong>für</strong> den voreingestellten<br />

Nutzer pi eine Konsole auf<br />

dem Kleinst-PC. Das zugehörige Passwort<br />

lautet nach der Gr<strong>und</strong>installation<br />

raspberry – das sollten Sie mit einem<br />

Aufruf des Tools passwd bei nächster<br />

Gelegenheit ändern.<br />

Soll der Ras<strong>Pi</strong> eine feste IP-Adresse erhalten,<br />

es besteht aber nicht die Möglichkeit,<br />

das über eine Adressreservierung<br />

im Router einzustellen, dann gilt es<br />

außerdem, die Konfigurationsdatei /<br />

etc/network/interfaces anzupassen.<br />

Bei der festen IP-Adresse muss es sich<br />

um eine handeln, die der Router nicht an<br />

andere DHCP-Clients vergibt. Verteilt der<br />

Router mit der IP-Adresse 192.168.0.1 im<br />

Netzwerk zum Beispiel Adressen von<br />

192.168.0.100 bis 192.168.0.254 an<br />

DHCP-Clients, dann passen Sie die Datei<br />

nach dem Muster aus Listing 1 an (zum<br />

Beispiel mit dem CLI-Editor Nano).<br />

Der Ras<strong>Pi</strong> ist anschließend unter der<br />

fest eingestellten Adresse 192.168.0.64<br />

zu erreichen. Damit er IP-Adressen auflösen<br />

kann, müssen Sie einen DNS-Server<br />

angeben. Im obigen Beispiel übernimmt<br />

der Router die Funktion, daher steht seine<br />

IP-Adresse in der Datei /etc/resolv.<br />

conf (Listing 2).<br />

Die Konfiguration aus Listing 1 erlaubt<br />

auch noch das Einstecken eines WLAN-<br />

Adapters, den Sie dann wieder via DHCP<br />

einstellen û. Versieht im heimischen<br />

Netz ein Router seinen Dienst, erledigt<br />

dieser das in der Regel gleich mit.<br />

Damit ist die Gr<strong>und</strong>konfiguration abgeschlossen.<br />

Einige weitere Gr<strong>und</strong>einstellungen<br />

des Systems nehmen Sie<br />

über einen Aufruf von sudo raspi‐config<br />

vor. Hier ist es zum Beispiel sinnvoll,<br />

die Systempartition auf die gesamte SD-<br />

Card auszudehnen. Zu guter Letzt aktualisieren<br />

Sie dann per Apt-get die Software<br />

des Systems (Listing 3).<br />

Cups installieren<br />

Das Drucksystem Cups verwaltet die per<br />

USB oder Netzwerk angeschlossenen<br />

Drucker <strong>und</strong> stellt eine Verwaltungsoberfläche<br />

bereit. Die Installation von<br />

Cups, das Treiber <strong>für</strong> viele Drucker bereits<br />

mitbringt, geschieht mit sudo<br />

apt‐get install cups. Den Benutzer pi<br />

sollten Sie in die Gruppe lpadmin aufnehmen;<br />

das ermöglicht es ihm, auf die<br />

administrativen Funktionen von Cups<br />

zuzugreifen:<br />

$ sudo usermod ‐a ‐G lpadmin pi<br />

Nach der Installation läuft Cups als Systemdienst<br />

<strong>und</strong> stellt eine Verwaltungsoberfläche<br />

auf dem lokalen System bereit.<br />

Ist das Netzwerk, in dem sich der<br />

Ras<strong>Pi</strong> befindet, halbwegs vertrauenswürdig<br />

– <strong>und</strong> beim heimischen LAN ist das<br />

ja der Fall – genügt die Kommandofolge<br />

aus Listing 4, um Cups auch aus dem<br />

Netzwerk zu erreichen. Die Verwaltungs-<br />

allow‐hotplug wlan0<br />

iface wlan0 inet manual<br />

wpa‐roam /etc/wpa_supplicant/<br />

wpa_supplicant.conf<br />

iface default inet dhcp<br />

Listing 3<br />

$ sudo apt‐get update<br />

$ sudo apt‐get upgrade<br />

Listing 4<br />

$ sudo cupsctl ‐‐remote‐any<br />

$ sudo /etc/init.d/cups restart<br />

Listing 2<br />

#/etc/resolv.conf<br />

nameserver 192.168.0.1<br />

Listing 5<br />

$ scanimage ‐L<br />

device 'net:192.168.4.64:pixma:04A91714_010466' is a CANON Canon PIXMA<br />

MP160 multi‐function peripheral<br />

68 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> als Printserver<br />

<strong>Hacks</strong><br />

oberfläche steht dann unter<br />

der IP-Adresse des <strong>Raspberry</strong><br />

<strong>Pi</strong> im Netzwerk zur Verfügung.<br />

Sie rufen sie im Webbrowser<br />

auf – in unserem Beispiel<br />

unter der Adresse<br />

http://192.168.0.100:631/.<br />

Drucker einrichten<br />

Zur Installation des Druckers<br />

wechseln Sie in der Cups-<br />

Weboberfläche zum Menüpunkt<br />

Verwaltung, wo Sie den<br />

Schalter Drucker hinzufügen<br />

anklicken. Die Oberfläche<br />

schaltet nun in den Administrationsmodus<br />

<strong>und</strong> fragt dazu<br />

Benutzername <strong>und</strong> das Passwort ab.<br />

Hier nutzen Sie den vorher eingerichteten<br />

Benutzer pi.<br />

Sofern der anzusteuernde Drucker (in<br />

unserem Beispiel der Canon <strong>Pi</strong>xma<br />

MP160) bereits per USB angeschlossen<br />

<strong>und</strong> angeschaltet ist, erkennt Cups ihn<br />

automatisch <strong>und</strong> zeigt ihn an. Sie wählen<br />

den MP160 nun aus <strong>und</strong> klicken<br />

dann auf Weiter. Jetzt dürfen Sie eine Beschreibung<br />

<strong>für</strong> das Gerät eingeben <strong>und</strong><br />

geben den Drucker im Netz frei. Im<br />

nächsten Schritt wählen Sie den Treiber<br />

Canon PIXMA MP160 - CUPS+Gutenprint<br />

v5.2.9 (en) aus. Ein Klick auf Drucker hinzufügen<br />

führt weiter zu den Standardeinstellungen,<br />

an denen Sie in der Regel<br />

nichts ändern müssen.<br />

Danach steht der Drucker in Cups bereit.<br />

Ein Klick auf den Link Canon_MP160<br />

zeigt ihn an, <strong>und</strong> Sie können durch Anwählen<br />

von Testseite drucken in der oberen<br />

linken Auswahl-Box überprüfen, ob<br />

das Gerät funktioniert.<br />

Client einrichten<br />

Unter Gnome gelangen Sie über die Systemeinstellungen<br />

zur Druckerkonfiguration.<br />

Nach einem Klick auf Entsperren<br />

dürfen Sie über den gleichnamigen<br />

Schalter einen Drucker hinzufügen. Gnome<br />

erkennt dabei den Drucker automatisch,<br />

da Sie ja die entsprechenden Dienste<br />

im vorigen Schritt <strong>für</strong> das lokale Netzwerk<br />

freigegeben haben. Unter Windows<br />

gelingt die Einbindung des Druckers ähnlich<br />

automatisch. Auf einem Android-Tablet<br />

nutzt der Autor erfolgreich die (allerdings<br />

kostenpflich tige) App PrintBot.<br />

Scanner bereitstellen<br />

Um die Scan-Funktion des Druckers über<br />

das Netzwerk bereitzustellen, nehmen<br />

Sie die Dienste von Saned in Anspruch.<br />

Die entsprechenden Sane-Werkzeuge<br />

sollten nach der Installation von Cups<br />

schon eingerichtet sein – falls nicht, holen<br />

Sie das mit dem folgenden Aufruf in<br />

einem Terminal nach:<br />

$ sudo apt‐get install sane‐utils<br />

Anschließend stellen Sie in der Datei<br />

/ etc/default/saned den Dienst als Systemdienst<br />

mit automatischem Start ein,<br />

indem Sie die Zeile RUN=no zu RUN=yes<br />

abändern. Der Eintrag <strong>für</strong> das lokale<br />

Netzwerk – <strong>für</strong> unser Beispiel die Zeile<br />

192.168.4.0/24 in der Datei /etc/<br />

sane.d/saned.conf ermöglicht den Zugriff<br />

von Clients über das lokale Netzwerk.<br />

Mit einem sudo /etc/init.d/saned<br />

restart starten Sie anschließend<br />

den Dienst neu, um die geänderte Konfiguration<br />

zu aktivieren.<br />

Auf einem Linux-Client zeigt der Aufruf<br />

von scanimage ‐L, ob der Scan-<br />

Dienst im Netzwerk zur Verfügung steht:<br />

Dann meldet sich der Scanner mit einer<br />

Ausgabe wie in Listing 5.<br />

1 Xsane bindet auch im Netzwerk<br />

erreichbare Scanner mit ein.<br />

Ein einfacher Client <strong>für</strong> das Scannen unter<br />

Linux ist Xsane. Das Programm sucht<br />

beim Start nach Scannern <strong>und</strong> findet dabei<br />

solche, die es über das lokale Netzwerk<br />

erreicht 1 . Für das Scannen via<br />

LAN unter Windows verweisen viele Anleitungen<br />

auf das Tool SaneTwain û.<br />

Fazit<br />

Mit wenigen Schritten binden Sie dank<br />

des <strong>Raspberry</strong> <strong>Pi</strong> einen Multifunktionsdrucker<br />

mit einem USB-Anschluss ins lokale<br />

Netzwerk. Damit verhelfen Sie idealerweise<br />

eingemotteter Hardware zu einem<br />

zweiten Frühling – <strong>und</strong> sparen Kosten.<br />

Das ist angenehm <strong>und</strong> vor allem<br />

ganz im Sinn der „grünen“ IT. (jlu) n<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/29848<br />

05.2013 www.raspberry-pi-geek.de<br />

69


Open Hardware<br />

Ras<strong>Pi</strong> <strong>und</strong> Arduino<br />

<strong>Raspberry</strong> <strong>Pi</strong> <strong>und</strong> Arduino Uno verbinden<br />

Dynamisches Duo<br />

Eine Kombination aus <strong>Raspberry</strong> <strong>Pi</strong> <strong>und</strong> Arduino eignet sich bestens <strong>für</strong> anspruchsvolle<br />

Aufgaben bei der Sensorik <strong>und</strong> Heimautomation. Dabei ergänzen sich die Stärken der<br />

beiden Boards geradezu ideal. Paul Brown, Hiram Zuñiga Romero<br />

© iofoto, Fotolia<br />

70 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> <strong>und</strong> Arduino Open Hardware<br />

Wie der <strong>Raspberry</strong> <strong>Pi</strong> ist der Arduino<br />

unter Nutzern von Open-Hardware populär,<br />

erfüllt aber einen etwas anderen<br />

Zweck: Die Embedded-Plattform dient<br />

meist als Basis <strong>für</strong> einfache <strong>Projekte</strong>. Mit<br />

ihrer Hilfe lassen sich unkompliziert Lichter,<br />

Motoren <strong>und</strong> andere Geräte im heimischen<br />

Umfeld ansteuern. Anders als<br />

der Ras<strong>Pi</strong> verfügt der Arduino aber nicht<br />

über ein komplettes Linux-Betriebssystem<br />

<strong>und</strong> ist daher kein vollständiger PC.<br />

Er wurde eher als System <strong>für</strong> die einfache,<br />

universelle Ein- <strong>und</strong> Ausgabe entwickelt<br />

<strong>und</strong> zielt damit klar auf elektronische<br />

Appliances ab.<br />

In manchen Szenarien erscheint eine<br />

Interaktion zwischen <strong>Raspberry</strong> <strong>und</strong> Arduino<br />

aber sinnvoll: So könnte ein Programm<br />

auf dem Ras<strong>Pi</strong> Eingaben eines<br />

am Arduino angeschlossenen Sensors<br />

verarbeiten oder der <strong>Pi</strong> ein Signal an den<br />

Arduino schicken, damit dieser die Lichter<br />

dimmt oder die Vorhänge schließt.<br />

Im Folgenden wollen wir zeigen, wie Sie<br />

den Ras<strong>Pi</strong> dazu bringen, via USB-Kabel<br />

mit einem Arduino zu kommunizieren.<br />

Teileliste<br />

Um einen <strong>Raspberry</strong> <strong>Pi</strong> Modell B unter<br />

Raspbian mit einem Arduino Uno R3 zu<br />

verschalten, benötigen Sie ein Bread-<br />

board, drei Kabel <strong>für</strong> die Verbindungen<br />

von <strong>und</strong> zu diesem, ein Netzwerkkabel<br />

<strong>für</strong> den Ras<strong>Pi</strong>, ein USB-Kabel <strong>für</strong> den<br />

Arduino, einen 220-Ohm-Widerstand<br />

sowie eine LED als Statusanzeige.<br />

Auf dem <strong>Raspberry</strong> richten Sie zunächst<br />

die Arduino-Entwicklungsumgebung<br />

ein, die Sie im Paket arduino finden.<br />

Zusätzlich benötigen Sie die Python-Bibliothek<br />

python‐serial aus dem<br />

gleichnamigen Raspbian-Paket. Haben<br />

sie beides installiert, können Sie die Arduino-IDE<br />

aus dem Hauptmenü heraus<br />

über Elektronik | Arduino IDE starten 1 .<br />

Serial Arduino<br />

In der Arduino-Entwicklungsumgebung<br />

tippen Sie den Code aus Listing 1 ein.<br />

Ein solches Code-Stück nennt man im<br />

Arduino-Jargon einen Sketch. Dieser<br />

liest von einer seriellen Schnittstelle (in<br />

diesem Fall der USB-Anschluss) <strong>und</strong> lässt<br />

eine LED so oft aufleuchten, wie die Variable<br />

num es vorgibt.<br />

Nach dem Abspeichern des Codes<br />

laden Sie den Sketch auf den Arduino<br />

hoch. Dazu verbinden Sie den Arduino<br />

mit einem USB-Port des Ras<strong>Pi</strong> <strong>und</strong> klicken<br />

den Upload-Schalter an (das zweite<br />

Icon von links in der Werkzeugleiste der<br />

Arduino-IDE). Dies sendet den kompilierten<br />

Sketch an den Arduino. Behalten<br />

Sie dabei das Statusfenster ganz unten<br />

in der Arduino-IDE im Auge. Geht bei<br />

der Übertragung etwas schief, müssen<br />

Sie eventuell den Port <strong>für</strong> den Arduino<br />

unter Tools | Serial Port einstellen. Der<br />

dem Arduino zugeordnete Port erscheint<br />

in aller Regel automatisch in der<br />

IDE <strong>und</strong> heißt fast immer ttyACM0.<br />

Raspbian „Wheezy“ 2013-05-25<br />

(ISO-Image als ZIP)<br />

Listing 1<br />

RPG/raspbian/<br />

# helloArduino.ino<br />

const int led<strong>Pi</strong>n = 8;<br />

void setup()<br />

{<br />

pinMode(led<strong>Pi</strong>n, OUTPUT);<br />

Serial.begin(9600);<br />

}<br />

void loop()<br />

{<br />

if (Serial.available())<br />

{<br />

int num = Serial.read() ‐ '0';<br />

{<br />

for (int i= 0; i


Open Hardware<br />

Ras<strong>Pi</strong> <strong>und</strong> Arduino<br />

Nun geht es wieder zurück an den <strong>Raspberry</strong><br />

<strong>Pi</strong>, wo Sie nun ein Stück Python-<br />

Code erstellen, entweder im Texteditor<br />

oder in einer Python-IDE wie IDLE. Tippen<br />

sie die Zeilen aus Listing 2 ein <strong>und</strong><br />

speichern Sie diese in ardu2<strong>Pi</strong>.py.<br />

Der erste Teil des Codes prüft, an welchem<br />

Ras<strong>Pi</strong>-Port der Arduino hängt, <strong>und</strong><br />

speichert dessen Nummer in der Variablen<br />

com. Nun zeigt das Programm ein<br />

rudimentäres Tk-Fenster mit drei Schaltern<br />

an 3 . Drücken Sie einen davon,<br />

leuchtet die LED so oft auf, wie die Aufschrift<br />

es angibt. Dazu sendet das Programm<br />

über das USB-Kabel die Anzahl<br />

der gewünschten Pulse, die der Arduino<br />

in Listing 1 in die Variable num einliest.<br />

stellen Sie sicher, dass nichts lose sitzt.<br />

Das Kabel von <strong>Pi</strong>n 8 des Arduino muss<br />

auf dieselbe Reihe des Breadboards führen<br />

wie das eine Bein des Resistors. Dessen<br />

anderes Bein gehört wiederum in<br />

dieselbe Reihe wie die Anode der LED<br />

(in der Regel das längere Bein). Schließlich<br />

muss das letzte Kabel von der Kathode<br />

der LED zurück zum Gnd-<strong>Pi</strong>n des<br />

Arduino führen, um den Schaltkreis wieder<br />

zu schließen 4 .<br />

Möglicherweise ist der Name des<br />

Ports <strong>für</strong> den Arduino am Ras<strong>Pi</strong> ein anderer,<br />

als Sie angegeben haben – etwa<br />

/ dev/ttyACM1 statt /dev/ttyACM0). Das<br />

kann auftreten, wenn Sie den Arduino<br />

Fehlerquellen<br />

Blinkt die LED nicht, dann kann das unterschiedlichste<br />

Ursachen haben. Prüfen<br />

Sie zunächst einmal die Schaltung <strong>und</strong><br />

Listing 3<br />

#!/usr/bin/python<br />

# whereIsArduino.py<br />

import serial<br />

Listing 2<br />

#!/usr/bin/python<br />

# ardu2<strong>Pi</strong>.py<br />

################<br />

# Port Detection<br />

import serial<br />

for com in range(0,4):<br />

try:<br />

PORT = '/dev/ttyACM'+str(com)<br />

BAUD = 9600<br />

board = serial.<br />

Serial(PORT,BAUD)<br />

board.close()<br />

break<br />

except:<br />

pass<br />

########<br />

# Blinks<br />

from Tkinter import *<br />

import time<br />

DEVICE = '/dev/ttyACM'+str(com)<br />

BAUD = 9600<br />

ser = serial.Serial(DEVICE, BAUD)<br />

root = Tk()<br />

def five() :<br />

ser.write('5')<br />

return<br />

def two() :<br />

ser.write('2')<br />

return<br />

def seven() :<br />

ser.write('7')<br />

return<br />

root.title("Arduino im Test")<br />

Label(text="<strong>Raspberry</strong> <strong>Pi</strong> <strong>Geek</strong><br />

05/2013", fg="#0A116B").pack()<br />

Label(text="Ras<strong>Pi</strong> gruesst<br />

Arduino!",fg="#0A116B").pack()<br />

Button(text='2x blinken',<br />

command=two, backgro<strong>und</strong>="#33D63B",<br />

fg="#FFFFFF").pack()<br />

Button(text='5x<br />

blinken', command=five,<br />

backgro<strong>und</strong>="#1DE4F2",<br />

fg="#FFFFFF").pack()<br />

Button(text='7x<br />

blinken', command=seven,<br />

backgro<strong>und</strong>="#DC0F16",<br />

fg="#FFFFFF").pack()<br />

root.mainloop()<br />

for com in range(0,4):<br />

try:<br />

PORT = '/dev/ttyACM'+str(com)<br />

BAUD = 9600<br />

board = serial.<br />

Serial(PORT,BAUD)<br />

print 'Arduino erkannt an /<br />

dev/ttyACM'+str(com)<br />

print 'Hardware: %s' %<br />

board.__str__()<br />

board.close()<br />

break<br />

except:<br />

print 'Kein Arduino an /dev/<br />

ttyACM'+str(com)<br />

Listing 4<br />

$ python whereIsArduino.py<br />

Kein Arduino an /dev/ttyACM0<br />

Kein Arduino an /dev/ttyACM0<br />

Kein Arduino an /dev/ttyACM0<br />

Kein Arduino an /dev/ttyACM0<br />

$ python whereIsArduino.py<br />

Arduino erkannt an /dev/ttyACM0<br />

Hardware: Serial(port='/dev/ttyACM0',<br />

baudrate=9600, bytesize=8,<br />

parity='N', stopbits=1,<br />

timeout=None, xonxoff=False,<br />

[...]<br />

72 www.raspberry-pi-geek.de<br />

05.2013


Ras<strong>Pi</strong> <strong>und</strong> Arduino Open Hardware<br />

zwischendurch einmal ausgesteckt haben.<br />

Um so etwas zu vermeiden, halten<br />

Sie nach jedem Wiedereinstecken des<br />

Arduino das Programm ardu2<strong>Pi</strong>.py an,<br />

warten einige Sek<strong>und</strong>en, damit der<br />

Linux-Kernel den Arduino wieder korrekt<br />

erkennen kann, <strong>und</strong> starten das Programm<br />

dann erneut.<br />

Der Code aus Listing 3 prüft, an welchem<br />

Port der Ras<strong>Pi</strong> den Arduino erkennt.<br />

Listing 4 zeigt eine typische Ausgabe.<br />

Während unserer Tests steckten<br />

wir den Arduino mehrmals zwischen<br />

den beiden USB-Ports des <strong>Raspberry</strong> <strong>Pi</strong><br />

um. In allen Fällen wurde der Arduino<br />

anschließend an der Schnittstelle /dev/<br />

ttyACM0 gef<strong>und</strong>en.<br />

Fazit<br />

Mittels unseres Aufbaus können <strong>Raspberry</strong><br />

<strong>Pi</strong> <strong>und</strong> Arduino nun miteinander<br />

kommunizieren, wobei sich die einfache<br />

Sensoransteuerung des Arduino <strong>und</strong> die<br />

Rechenpower des Ras<strong>Pi</strong> ideal ergänzen.<br />

Dank der Bibliothek Python-serial können<br />

Sie die geballten Fähigkeiten des<br />

Duos unkompliziert in eigenen <strong>Projekte</strong>n<br />

nutzen <strong>und</strong> ersparen sich dabei oft<br />

Investitionen in Zusatzhardware.<br />

Allerdings ist der Arduino hardwareseitig<br />

nicht h<strong>und</strong>ertprozentig kompatibel<br />

zum Ras<strong>Pi</strong>. Möchten Sie die beiden des<br />

Öfteren zusammen einsetzen, sollten Sie<br />

über die Anschaffung einer Arduino-<br />

Shields-Connection-Bridge û <strong>für</strong> den<br />

<strong>Raspberry</strong> <strong>Pi</strong> nachdenken. Mit ihr können<br />

sie alle <strong>für</strong> den Arduino gedachten<br />

Shields, Boards <strong>und</strong> Module direkt am<br />

Ras<strong>Pi</strong> nutzen.<br />

Obendrein lassen sich digitale <strong>und</strong><br />

analoge Sensoren im selben <strong>Pi</strong>nout wie<br />

am Arduino anschließen. Dabei ermöglicht<br />

die Bibliothek ardu<strong>Pi</strong> û sogar das<br />

Verwenden des Arduino-Codes auf dem<br />

<strong>Raspberry</strong> <strong>Pi</strong>. Das erspart Ihnen ebenfalls<br />

Arbeit beim Programmieren. (jlu) n<br />

4 Der Schaltkreis ist fertig verkabelt, es<br />

kann mit den Experimenten losgehen.<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29892<br />

2 Das Diagramm des benötigten Schaltkreises.<br />

Es wurde mit dem Programm Fritzing<br />

erstellt, das sich speziell <strong>für</strong> Arduino-<br />

Entwürfe gut eignet.<br />

3 Diese kleine Anwendung sendet die<br />

Anzahl der gewünschten Blinkvorgänge<br />

an den Arduino.<br />

05.2013 www.raspberry-pi-geek.de<br />

73


Know-how<br />

GPIO-Programmierung<br />

Tricks zum Programmieren der GPIO-Schnittstelle<br />

Rein <strong>und</strong> raus<br />

© vska, 123RF<br />

Sobald Sie komplexere Aufgaben anpeilen, brauchen Sie<br />

auch ein erweitertes Repertoire an Programmiertechniken<br />

<strong>für</strong> den Zugriff auf die GPIO-<strong>Pi</strong>ns des <strong>Raspberry</strong> <strong>Pi</strong>, wie zum<br />

Beispiel die Verarbeitung von Interrupts. Richard Ryniker<br />

Readme<br />

Nach den ersten erfolgreichen Experimenten<br />

mit blinkenden LEDs <strong>und</strong> ausgelesenen<br />

Schaltern flaut die erste Euphorie in Sachen<br />

Ras<strong>Pi</strong>-Schnittstellenprogrammierung schnell<br />

ab. Um komplexere Probleme anzupacken,<br />

gilt es, sich jetzt eingehender mit dem<br />

GPIO-Interface des <strong>Raspberry</strong> <strong>Pi</strong> zu beschäftigen.<br />

Das macht erfreulicherweise weniger<br />

Mühe, als viele be<strong>für</strong>chten.<br />

Das Kürzel GPIO steht <strong>für</strong> General Purpose<br />

Input/​Output, was sich in etwa als<br />

Mehrzweck-Ein/​Ausgabe ins Deutsche<br />

übersetzen lässt. Damit bezeichnet man<br />

im Allgemeinen einen Kontakt, dessen<br />

Verhalten als Eingabe- respektive Ausgabeschnittstelle<br />

sich über einen dahinterhängenden<br />

integrierten Schaltkreis beliebig<br />

programmieren lässt. Der <strong>Raspberry</strong><br />

<strong>Pi</strong> verfügt über ein GPIO-Interface<br />

mit insgesamt 26 <strong>Pi</strong>ns, von denen sich<br />

17 wahlweise als Ein- oder Ausgang ansteuern<br />

lassen 1 .<br />

Linux bringt ein eigenes GPIO-Subsystem<br />

als Schnittstelle <strong>für</strong> Anwendungen<br />

mit, schützt die durch Treiber wie I2C<br />

oder SPI verwendeten Ressourcen <strong>und</strong><br />

stellt einen <strong>Pi</strong>n-genauen Zugriff sicher,<br />

sodass sich kein Programm darum zu<br />

kümmern braucht, was andere Software<br />

gerade mit anderen GPIO-Kontakten anstellt.<br />

Dies bietet den angenehmen Vorteil,<br />

dass man sich bei der Programmierung<br />

keine Gedanken um sogenannte<br />

Race Conditions zu machen braucht, bei<br />

der ein Programm das andere beim Zugriff<br />

auf die <strong>Pi</strong>ns blockiert. Auch komplizierte<br />

Softwaremechanismen wie Locks<br />

oder ein Interrupt-Management können<br />

dadurch entfallen.<br />

Das GPIO-System von Linux legt seine<br />

Dateien im Verzeichnis /sys/class/gpio/<br />

ab. Wie bei vielen Konfigurations- <strong>und</strong><br />

Kontrolldateien erhält nur Root hier Zugriff.<br />

Die Anwendungen auf dem <strong>Raspberry</strong><br />

<strong>Pi</strong> kommunizieren mit dem GPIO-<br />

74 www.raspberry-pi-geek.de<br />

05.2013


GPIO-Programmierung<br />

Know-how<br />

System mittels dieser Dateien, über die<br />

das System Informationen zwischen<br />

Hard- <strong>und</strong> Software übermittelt.<br />

Dabei kommt oft das Kommando echo<br />

der Shell zum Einsatz. Normalerweise<br />

benutzt man es, um Texte auf die Standardausgabe<br />

(in der Regel der Bildschirm)<br />

zu schreiben, etwa mit echo<br />

„Hallo!“. Zusammen mit einer Ausgabeumleitung<br />

kann man damit aber auch<br />

in Dateien schreiben: So legt echo „Hallo!“<br />

> hallo.txt den Text in der Datei<br />

hallo.txt im aktuellen Verzeichnis ab.<br />

Nehmen wir einmal an, Sie möchten<br />

den <strong>Pi</strong>n 16 der GPIO-Schnittstelle ansprechen,<br />

der dem Port GPIO23 entspricht.<br />

Im Schaltplan des Ras<strong>Pi</strong> û wird<br />

dieser Port auch als GPIO_GEN4 bezeichnet<br />

2 . Um ein Benutzerinterface <strong>für</strong><br />

diesen Port zu erzeugen, führen Sie folgenden<br />

Befehl aus:<br />

$ sudo echo 23 >/sys/class/gpio/eU<br />

xport<br />

value (Zeile 8 <strong>und</strong> 9). Über das File<br />

active_low invertieren Sie bei Bedarf die<br />

<strong>Pi</strong>n-Logik (Zeile 11 <strong>und</strong> 12). Das müssen<br />

Sie vor dem Lesen einer Eingabe oder dem<br />

Setzen eines Ausgabewertes erledigen.<br />

Wie schnell lassen sich nun mittels<br />

dieser Mechanismen die GPIO-<strong>Pi</strong>n-Werte<br />

modifizieren? Das in Listing 2 gezeigte<br />

einfache Python-Programm generiert<br />

Pulse mit 18 kHz. Die Entsprechung in C<br />

schafft dagegen r<strong>und</strong> 120 kHz û. Die<br />

tatsächliche Umschaltfrequenz variiert,<br />

denn der Ras<strong>Pi</strong> beschäftigt sich zwischendurch<br />

auch noch mit anderen Dingen,<br />

wie etwa Netzwerkzugriffen, dem<br />

aktualisieren der Zeit <strong>und</strong> anderen System-<br />

<strong>und</strong> Benutzerprozessen.<br />

GPIO ohne Root?<br />

Bisher haben wir als Root auf die GPIO-<br />

Schnittstelle zugegriffen, was aus verschiedenen<br />

Gründen in der Praxis als<br />

Der Kernel erzeugt daraufhin das Verzeichnis<br />

/sys/class/gpio/gpio23, das<br />

vier wichtige Dateien enthält: active_<br />

low, direction, edge <strong>und</strong> value. Sie enthalten<br />

die in der Tabelle Wichtige Dateien<br />

in / sys/class/gpio/gpio23 gezeigten<br />

Ausgangswerte, zumindest, solange am<br />

<strong>Pi</strong>n noch nichts hängt.<br />

Über die vier Dateien erfolgt die gesamte<br />

Ansteuerung des Ports GPIO23.<br />

Die dazu notwendigen Kommandos<br />

fasst Listing 1 zusammen. Um den Port<br />

als Ein- oder Ausgang zu definieren, beschreiben<br />

Sie beispielsweise die Datei<br />

direction mit dem entsprechenden<br />

Wert (Zeile 2 <strong>und</strong> 3).<br />

Das Gleiche gilt <strong>für</strong> das Initialisieren eines<br />

Ausgangswertes (Zeile 5 <strong>und</strong> 6). Um<br />

die <strong>Pi</strong>n-Ausgabe an- beziehungsweise<br />

abzuschalten, schreiben Sie in die Datei<br />

Wichtige Dateien in<br />

/sys/class/gpio/gpio23<br />

Datei<br />

Ausgangswert<br />

active_low 0<br />

direction in<br />

edge<br />

none<br />

value 0<br />

1 Das GPIO-Interface des <strong>Raspberry</strong> <strong>Pi</strong>.<br />

Die grün gekennzeichneten <strong>Pi</strong>ns lassen sich<br />

wahlweise als Ein- oder Ausgänge ansteuern.<br />

Dazu gehört beispielsweise auch der<br />

Port GPIO23 auf <strong>Pi</strong>n 16 der Schnittstelle.<br />

I2C: Inter-Integrated Circuit. Ein von Philips<br />

Semiconductors entwickelter serieller Datenbus<br />

zur Kommunikation zwischen verschiedenen<br />

Schaltungsteilen, etwa zwischen<br />

einem Controller <strong>und</strong> Peripherie-ICs.<br />

SPI: Serial Peripheral Interface. Ein von Motorola<br />

entwickelter serieller Datenbus, der<br />

Schaltungen nach dem Master-Slave-Prinzip<br />

miteinander verbindet.<br />

05.2013 www.raspberry-pi-geek.de<br />

75


Know-how<br />

GPIO-Programmierung<br />

nicht unbedingt ratsam erscheint, sich<br />

hauptsächlich aber aus Gründen des<br />

Sicherheit <strong>und</strong> Systemstabilität verbietet.<br />

Nur allzu leicht bringen Sie mit einem<br />

als Root abgesetzten fehlerhaften<br />

Kommando das System aus dem Tritt<br />

oder gar zum Absturz.<br />

Komplett lässt sich dieses Dilemma<br />

nicht umgehen, denn Zugriffe auf das<br />

GPIO-Interface klappen nun einmal nur<br />

mit Root-Rechten. Einen gewissen Schutz<br />

bietet das Zwischenschalten einer Kontrollinstanz<br />

wie etwa des C-Programms<br />

gpio_control.c, das Sie von der Website<br />

Ryniker.ods.org herunterladen können<br />

û. Die Kommentare am Anfang des<br />

Quelltextes beschreiben, wie Sie es übersetzen<br />

<strong>und</strong> auf dem Ras<strong>Pi</strong> (als Root) einrichten.<br />

Via setuid läuft es nach einem<br />

Aufruf durch einen normalen Benutzer<br />

mit der effektiven UID von root, sodass<br />

es mit allen zum Ansteuern der GPIO-<br />

Schnittstelle <strong>und</strong> ihrer Kontrolldateien<br />

notwendigen Rechte agieren kann.<br />

Der meiste Code in gpio_control.c<br />

dient ausschließlich dazu, sicherzustellen,<br />

dass die übergebenen Argumente<br />

sinnvoll sind <strong>und</strong> keinen Schaden anrichten<br />

können. Außerdem informiert<br />

Sie das Programm, sobald ein ungewöhnlicher<br />

Betriebszustand auftritt. Um<br />

den bereits im vorigen Beispiel verwendeten<br />

<strong>Pi</strong>n 23 mit Gpio_control anzusteuern,<br />

tippen Sie als einfacher Benutzer:<br />

$ gpio_control 23 export<br />

Bei Bedarf konfigurieren Sie den Quelltext<br />

in gpio_control.c vor dem Übersetzen<br />

so, dass er lediglich den Anwendern<br />

einer bestimmten Gruppe Zugriff<br />

auf das GPIO-Interface einräumt, anstatt<br />

allen Benutzern. Für jeden einzelnen<br />

GPIO-Port können Sie zudem den Export<br />

explizit gestatten oder unterbinden.<br />

Über den <strong>Pi</strong>n 16 (GPIO23) steuert der<br />

<strong>Raspberry</strong> <strong>Pi</strong> die grüne Status-LED <strong>für</strong> OK<br />

an. Versuchen Sie, diesen <strong>Pi</strong>n anzusteu-<br />

Listing 2<br />

#!/usr/bin/python<br />

#<br />

# GPIO‐<strong>Pi</strong>n umschalten<br />

# Ausgabefrequenz: ~18 kHz<br />

# (je nach anderen Aktivitaeten)<br />

pin_path = '/sys/class/gpio/<br />

gpio23'<br />

def write_once(path, value):<br />

f = open(path, 'w')<br />

f.write(value)<br />

f.close()<br />

return<br />

Listing 1<br />

01 # Port als Ein‐ oder Ausgang verwenden<br />

02 $ sudo echo in >/sys/class/gpio/gpio23/direction<br />

03 $ sudo echo out >/sys/class/gpio/gpio23/direction<br />

04 # Ausgabewert initialisieren<br />

05 $ sudo echo low >/sys/class/gpio/gpio23/direction<br />

06 $ sudo echo high >/sys/class/gpio/gpio23/direction<br />

07 # <strong>Pi</strong>n‐Ausgabe ein/aus<br />

08 $ sudo echo 1 >/sys/class/gpio/gpio23/value<br />

09 $ sudo echo 0 >/sys/class/gpio/gpio23/value<br />

10 # <strong>Pi</strong>n‐Logik invertieren<br />

11 $ sudo echo 0 >/sys/class/gpio/gpio23/active_low<br />

12 $ sudo echo 1 >/sys/class/gpio/gpio23/active_low<br />

# Ausgabe setzen, Ausgangswert<br />

"low"<br />

write_once(pin_path + '/<br />

direction', 'out\n')<br />

f = open(pin_path + '/value',<br />

'w')<br />

# Schnellstmoeglich blinken<br />

while 1:<br />

f.write('1')<br />

f.flush()<br />

f.write('0')<br />

f.flush()<br />

f.close()<br />

76 www.raspberry-pi-geek.de<br />

05.2013


GPIO-Programmierung<br />

Know-how<br />

ern, dann scheitert die Operation, weil<br />

der Kernel diese Ressource bereits in Beschlag<br />

legt (Listing 3). Auch andere Systemkomponenten<br />

wie etwa der I2C-Kernel-Treiber,<br />

können einzelne GPIO-Ports<br />

<strong>für</strong> normale Nutzer blockieren.<br />

Der Kernel speichert den Zustand der<br />

GPIO-<strong>Pi</strong>ns. Exportieren Sie beispielsweise<br />

einen Ausgabe-<strong>Pi</strong>n <strong>und</strong> geben ihn<br />

hinterher wieder frei, dann verschwinden<br />

zwar die entsprechenden Kontrolldateien,<br />

aber der <strong>Pi</strong>n bleibt ein Ausgabe-<br />

<strong>Pi</strong>n mit dem letzten gesetzten Wert. Exportieren<br />

Sie ihn später erneut, stellt der<br />

Kernel die Kontrolldateien <strong>und</strong> damit<br />

den gespeicherten Zustand wieder her.<br />

Interrupts<br />

Viele einfache Programme lesen den Zustand<br />

eines Eingabe signals in einer Endlosschleife<br />

aus <strong>und</strong> reagieren, sobald sich<br />

dessen Wert verändert. Bei einer einzelnen<br />

Signalquelle mag das noch angehen<br />

– allerdings lastet eine solche Schleife<br />

trotzdem den Prozessor des Rasp berry <strong>Pi</strong><br />

2 Der <strong>Raspberry</strong>-<strong>Pi</strong>-Schaltplan bezeichnet <strong>Pi</strong>n 16 (GPIO23) auch als GPIO_GEN4. Auf diesem<br />

Schema erkennen Sie auch die anderen 16 programmierbaren <strong>Pi</strong>ns.<br />

Listing 3<br />

$ gpio_control 16 export<br />

export failed: Device or resource<br />

busy<br />

Listing 4<br />

01 #!/usr/bin/python3<br />

02 # Test interrupts.<br />

03 <br />

04 import select, time, sys<br />

05 <br />

06 pin_base = '/sys/class/gpio/<br />

gpio23/'<br />

07 <br />

08 def write_once(path, value):<br />

09 f = open(path, 'w')<br />

10 f.write(value)<br />

11 f.close()<br />

12 return<br />

13 <br />

14 f = open(pin_base + 'value',<br />

'r')<br />

15 <br />

16 write_once(pin_base +<br />

'direction', 'in')<br />

17 write_once(pin_base + 'edge',<br />

'both')<br />

18 <br />

19 po = select.poll()<br />

20 po.register(f, select.POLLPRI)<br />

21 <br />

22 state_last = f.read(1)<br />

23 t1 = time.time()<br />

24 sys.stdout.write('Initial<br />

pin value = {}\n'.<br />

format(repr(state_last)))<br />

25 <br />

26 while 1:<br />

27 events = po.poll(60000)<br />

28 t2 = time.time()<br />

29 f.seek(0)<br />

30 state_last = f.read(1)<br />

31 if len(events) == 0:<br />

05.2013 www.raspberry-pi-geek.de<br />

77


Know-how<br />

GPIO-Programmierung<br />

Weitere Infos <strong>und</strong><br />

interessante Links<br />

www. raspi-geek.de/qr/ 29891<br />

voll aus <strong>und</strong> bremst damit alle anderen<br />

Vorgänge auf dem Minirechner.<br />

Eine mögliche Abhilfe bestünde in einer<br />

Verzögerung in der Schleife, indem<br />

Sie diese etwa mittels des Kommandos<br />

sleep 0.5 zwischen den Abfragen <strong>für</strong><br />

eine halbe Sek<strong>und</strong>e pausieren lassen.<br />

Das schafft zwar Zeit <strong>für</strong> andere Aktionen,<br />

bedeutet aber auch, dass im Schnitt<br />

eine Viertelsek<strong>und</strong>e vergeht, bevor das<br />

Programm eine Veränderung des Eingabewertes<br />

mitbekommt.<br />

Mit Interrupts gibt es eine wesentlich<br />

effektivere Methode, um direkt auf solche<br />

Signalveränderungen zu reagieren. Sie<br />

greift insbesondere dann bestens, wenn<br />

es gilt, Veränderungen an verschiedenen<br />

<strong>Pi</strong>ns im Auge zu behalten. Das Python-<br />

Programm aus Listing 4 illustriert den<br />

Einsatz des GPIO-Interrupt-Handlings.<br />

Das Programm konfiguriert Port 23 als<br />

Eingabequelle <strong>und</strong> setzt die zugehörige<br />

Kontrolldatei edge auf den Wert both.<br />

Damit erreicht es, dass sowohl „fallende“<br />

als auch „steigende“ Veränderungen des<br />

Wertes einen Interrupt auslösen. Außerdem<br />

öffnet es die Datei value, in der das<br />

System die ausgelesenen Werte ablegt.<br />

Der Aufruf von select.poll() erzeugt<br />

das Abfrageobjekt po, <strong>für</strong> das dann ein<br />

Mehr <strong>Pi</strong>ns<br />

Zwar stellt der <strong>Raspberry</strong> <strong>Pi</strong> nur eine<br />

Handvoll GPIO-<strong>Pi</strong>ns zur Verfügung, doch<br />

gibt es einige Implementationen, die zeigen,<br />

dass sich mit preiswerten ICs wie<br />

dem MCP23017 diese Anzahl ausbauen<br />

lässt. So stellt beispielsweise das Erweiterungsboard<br />

„Slice of <strong>Pi</strong>/​O“ û nicht weniger<br />

als 16 zusätzliche GPIO-Ports bereit.<br />

Zudem lässt es sich in bis zu acht Exemplaren<br />

kaskadieren, sodass dann 128 digitale<br />

I/​O-<strong>Pi</strong>ns bereitstehen.<br />

Danksagung<br />

Dieser Artikel ist ursprünglich in der Ausgabe<br />

7 von „The Mag<strong>Pi</strong>“ (http:// www.​<br />

themagpi. com) erschienen <strong>und</strong> wird von<br />

uns mit deren fre<strong>und</strong>licher Genehmigung<br />

als Übersetzung veröffentlicht.<br />

Aufruf von po.register() die Werte-Datei<br />

des Ports als eine der Quellen registriert,<br />

die eine folgende po.poll()-Anfrage<br />

bedienen können.<br />

Zwar nutzt das in Listing 3 gezeigte<br />

Programm lediglich eine einzelne Interrupt-Quelle,<br />

aber mit dem Poll-Objekt<br />

lassen sich bei Bedarf auch weitere<br />

GPIO-Ports sowie andere Interrupt-Quellen<br />

registrieren. So könnte etwa eine<br />

<strong>Pi</strong>pe, die in Verbindung mit einem anderen<br />

Prozess steht oder Daten aus dem<br />

Netzwerk empfängt, ebenso als Auslöser<br />

von Interrupts dienen.<br />

Der zweite Operand im Aufruf von<br />

po.register() gibt an, welcher von drei<br />

möglichen Zuständen als Interrupt erkannt<br />

wird. Der Wert select.POLLPRI<br />

sorgt da<strong>für</strong>, dass dies bei priority data<br />

to read geschieht. Die beiden anderen<br />

möglichen Zustände, data available<br />

<strong>und</strong> ready for output, sind <strong>für</strong> einen<br />

GPIO-<strong>Pi</strong>n ohnehin immer gegeben. Sie<br />

können aber als Auslöser <strong>für</strong> andere<br />

Interrupt-Quellen dienen.<br />

In manchen Fällen ist auch das Ausbleiben<br />

eines erwarteten Signals von<br />

Interesse. Der Aufruf po.poll(60000)<br />

wartet lediglich 60 000 Millisek<strong>und</strong>en<br />

lang, also eine Minute, auf einen Interrupt.<br />

Dann gibt er eine leere Liste von<br />

Interrupt-Signalen zurück <strong>und</strong> signalisiert<br />

so einen Timeout.<br />

Für einen GPIO-<strong>Pi</strong>n enthält diese Datei<br />

value zwei Bytes Inhalt: Eine Null oder<br />

Eins repräsentiert den <strong>Pi</strong>n-Zustand, es<br />

folgt ein Zeilenvorschub. Der Aufruf<br />

f.seek(0) setzt die Positionsmarke <strong>für</strong><br />

die Datei wieder auf den Anfang, sodass<br />

sich der abgespeicherte Wert noch einmal<br />

einlesen lässt.<br />

Fazit<br />

Sobald Sie mit dem <strong>Raspberry</strong> <strong>Pi</strong> beim<br />

Messen, Steuern <strong>und</strong> Regeln ausgefeiltere<br />

Aufgaben anpacken, brauchen Sie<br />

auch ein erweitertes Repertoire an Programmiertechniken.<br />

Die hier vorgestellten<br />

Methoden – vom Zugriff auf GPIO-<br />

<strong>Pi</strong>ns über deren Export bis hin zur Interruptverarbeitung<br />

– leisten Ihnen dabei<br />

vor allen Dingen in komplexeren Einsatzszenarien<br />

gute Dienste. (jlu) n<br />

78 www.raspberry-pi-geek.de<br />

05.2013


Jetzt<br />

am KiosK<br />

<strong>für</strong> nur<br />

9,80 euro<br />

•Über 100 Jahre Motorrad-Passion<br />

•Exklusiver Einblick in das Triumph Foto Archiv<br />

•Die Geschichte der legendären Marke im Überblick


Service<br />

Impressum<br />

Impressum<br />

<strong>Raspberry</strong> <strong>Pi</strong> <strong>Geek</strong> ist eine zweimonatlich erscheinende<br />

Publikation der Medialinx AG.<br />

Anschrift Putzbrunner Str. 71<br />

81739 München<br />

Telefon: (089) 99 34 11-0<br />

Fax: (089) 99 34 11-99<br />

Homepage<br />

Abo/Nachbestellung<br />

E-Mail (Leserbriefe)<br />

E-Mail (Datenträger)<br />

Abo-Service<br />

Pressemitteilungen<br />

Chefredakteur<br />

Stellv. Chefredakteur<br />

Redaktion <strong>und</strong> DVDs<br />

http://www.raspberry-pi-geek.de<br />

http://www.www.raspberry-pi-geek.de/bestellen/<br />

<br />

<br />

<br />

<br />

Jörg Luther (jlu, v. i. S. d. P.)<br />

<br />

Andreas Bohle (agr)<br />

<br />

Thomas Leichtenstern (tle)<br />

<br />

Ständiger Mitarbeiter Marko Dragicevic<br />

<br />

Ständige Autoren<br />

Grafik<br />

Sprachlektorat<br />

Produktion<br />

Druck<br />

Geschäftsleitung<br />

Pressevertrieb<br />

Abonnentenservice<br />

D / A / CH<br />

Bernhard Bablok, Falko Benthin, Paul Brown,<br />

Bruce Byfield, Joe Casad, Joseph Guarino,<br />

Werner Hein, Peter Kreußel, Markus Nasarek,<br />

Dmitri Popov, Ferdinand Thommes<br />

Judith Erb (Titel)<br />

Dana Fidlerova (Layout)<br />

Bildnachweis Titel: Les Cunliffe, 123RF<br />

Bildnachweis: Stock.xchng, 123rf.com,<br />

Fotolia.de <strong>und</strong> andere<br />

Astrid Hillmer-Bruer<br />

Christian Ullrich<br />

<br />

Vogel Druck <strong>und</strong> Medienservice GmbH & Co. KG<br />

97204 Höchberg<br />

Brian Osborn (Vorstand,<br />

verantwortlich <strong>für</strong> den Anzeigenteil)<br />

<br />

Hermann Plank (Vorstand)<br />

<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1<br />

85716 Unterschleißheim<br />

Tel.: (089) 3 19 06-0<br />

Fax: (089) 3 19 06-113<br />

A.B.O. Verlagsservice GmbH<br />

Gudrun Blanz (Teamleitung) <br />

Postfach 1165<br />

74001 Heilbronn<br />

Telefon: +49 (0)7131 27 07-274<br />

Fax: +49 (0)7131 27 07 -78-601<br />

Mediaberatung<br />

D / A / CH<br />

USA / Kanada<br />

Andere Länder<br />

Petra Jaser<br />

<br />

Tel.: +49 (0)89 / 99 34 11 24<br />

Fax: +49 (0)89 / 99 34 11 99<br />

Michael Seiter<br />

<br />

Tel.: +49 (0)89 / 99 34 11 23<br />

Fax: +49 (0)89 / 99 34 11 99<br />

Ann Jesse<br />

<br />

Tel.: +1 785 841 88 34<br />

Darrah Buren<br />

<br />

Tel.: +1 785 856 3082<br />

Penny Wilby<br />

<br />

Tel.: +44 1787 21 11 00<br />

Es gilt die Anzeigenpreisliste vom 01.01.2013.<br />

Abo-Preise Deutschland Österreich Schweiz Ausland EU<br />

Einzelheft<br />

€ 9,80 € 10,80 Sfr 19,60 € 12,75<br />

Mini-Abonnement<br />

(2 Ausgaben)<br />

Jahres-Abonnement<br />

(6 Ausgaben)<br />

€ 9,80 € 10,80 Sfr 19,60 € 12,75<br />

€ 49,90 € 54,90 Sfr 82,32 € 59,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF<br />

(Einzelausgabe)<br />

€ 7,99 € 7,99 Sfr 9,99 € 7,99<br />

Digi-Sub<br />

(6 Ausgaben)<br />

€ 39,90 € 39,90 Sfr 44,50 € 39,90<br />

Jahres-Abonnements verlängern sich, sofern Sie diese nicht kündigen, nach Ablauf<br />

eines Jahres um ein weiteres Jahr. Sie können ein Abonnement aber jederzeit<br />

ohne Angabe von Gründen zur nächst erreichbaren Ausgabe kündigen.<br />

Informationen zu anderen Abo-Formen <strong>und</strong> weiteren Produkten der Medialinx AG<br />

finden Sie in unserem Webshop unter http://www.medialinx-shop.de.<br />

Gegen Vorlage eines gültigen Schülerausweises oder einer aktuellen Immatrikulationsbescheinigung<br />

erhalten Schüler <strong>und</strong> Studenten eine Ermäßigung von 20<br />

Prozent auf alle Abo-Preise. Der Nachweis ist jeweils bei Verlängerung neu zu<br />

erbringen.<br />

Bitte teilen Sie Änderungen Ihrer Adresse umgehend unserem Abo-Service<br />

() mit, da Nachsendeaufträge bei der Post nicht <strong>für</strong> Zeitschriften<br />

gelten.<br />

»<strong>Raspberry</strong> <strong>Pi</strong>« <strong>und</strong> das <strong>Raspberry</strong>-<strong>Pi</strong>-Logo sind eingetragene Warenzeichen<br />

der <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation <strong>und</strong> werden von uns mit deren fre<strong>und</strong>licher Genehmigung<br />

verwendet. »Linux« ist ein eingetragenes Warenzeichen von Linus<br />

Torvalds <strong>und</strong> wird von uns mit seiner fre<strong>und</strong>lichen Genehmigung verwendet.<br />

»Unix« wird als Sammelbegriff <strong>für</strong> die Gruppe der Unix-ähnlichen Betriebssysteme<br />

(wie beispielsweise HP/UX, FreeBSD, Solaris, u.a.) verwendet, nicht als<br />

Bezeichnung <strong>für</strong> das Trademark »UNIX« der Open Group.<br />

Eine Haftung <strong>für</strong> die Richtigkeit von Veröffentlichungen kann – trotz sorgfältiger<br />

Prüfung durch die Redaktion – vom Verlag nicht übernommen werden.<br />

Mit der Einsendung von Manuskripten oder Leserbriefen gibt der Verfasser<br />

seine Einwilligung zur Veröffent lich ung in einer Publikation der Medialinx AG.<br />

Für unverlangt eingesandte Manuskripte oder Beiträge übernehmen Redaktion<br />

<strong>und</strong> Verlag keinerlei Haftung.<br />

Eine Reihe von Informationen <strong>für</strong> Autoren finden Sie auf der Webseite<br />

http://www.raspberry-pi-geek.de/Autorenhinweise. Die Redaktion behält<br />

sich vor, Einsendungen zu kürzen <strong>und</strong> zu überarbeiten. Das exklusive Urheber-<br />

<strong>und</strong> Verwertungsrecht <strong>für</strong> angenommene Manus kripte liegt beim Verlag.<br />

Es darf kein Teil des Inhalts ohne schriftliche Genehmigung des Verlags in<br />

irgendeiner Form vervielfältigt oder verbreitet werden.<br />

Copyright © 1999 - 2013 Medialinx AG ISSN: 2196-9159<br />

80 www.raspberry-pi-geek.de<br />

05.2013


<strong>Vorschau</strong><br />

Service<br />

Das nächste Heft<br />

<strong>Raspberry</strong> <strong>Pi</strong> <strong>Geek</strong> 06/​2013 erscheint am 4. Oktober 2013<br />

Datensafe <strong>für</strong>s LAN<br />

Seit dem NSA-Skandal drängt sich die<br />

Frage auf, wohin mit den privaten Daten.<br />

Da bietet sich es sich an, einen <strong>Raspberry</strong><br />

<strong>Pi</strong> mit ArkOS zur zentralen Ablage umzufunktionieren.<br />

Das speziell gehärtete<br />

System erlaubt es, auf dem Mini-PC einen<br />

Datensafe aufzubauen, der Ihre Privatsphäre<br />

gegen alle Spähversuche von<br />

außen absichert.<br />

Die Redaktion behält sich vor,<br />

Themen zu ändern oder zu streichen.<br />

Scratch-Programmierung<br />

Wer das Potenzial des <strong>Raspberry</strong> <strong>Pi</strong> voll<br />

ausnutzen möchte, der programmiert<br />

die GPIO-Schnittstelle des kleinen PCs.<br />

Die grafische Programmierumgebung<br />

Scratch macht das kinderleicht: Hier fügen<br />

Sie mittels Mauszeiger kleine Objekte<br />

zu einem kompletten Programmlauf<br />

zusammen, versehen diesen mit den<br />

richtigen Parametern <strong>und</strong> haben so im<br />

Handumdrehen die richtigen Kommandos<br />

an den Kleinst-PC gesendet.<br />

<strong>Raspberry</strong> <strong>Pi</strong> tunen: Mehr Leistung <strong>für</strong>s gleiche Geld<br />

© linder6580_sxc.hu<br />

Die Entwickler des <strong>Raspberry</strong> <strong>Pi</strong> haben gleich beim Design darauf geachtet, dass der<br />

Computer über einigermaßen zeitgemäße Komponenten verfügt. Allerdings setzen<br />

die knapp bemessenen Dimensionen der Hardware den Leistungswünschen der Anwender<br />

natürliche Grenzen. Innerhalb dieser bietet die Architekur des Mini-PCs aber<br />

noch etwas Raum <strong>für</strong> Verbesserungen. Unser Artikel beleuchtet verschiedene Möglichkeiten<br />

des Tunings <strong>und</strong> zeigt die Vorteile, aber auch die Gefahren auf, die beim<br />

Spiel mit Taktfrequenzen <strong>und</strong> Spannungen drohen.<br />

Autoren<br />

Inserenten<br />

Paul Brown Crash-Kurs: Einführung in die Raspbian-Shell (28),<br />

<strong>Raspberry</strong> <strong>Pi</strong> <strong>und</strong> Arduino miteinander koppeln (70)<br />

Bruce Byfield Eben Upton: Der steinige Weg zum <strong>Raspberry</strong> <strong>Pi</strong> (6)<br />

Marko Dragicevic Anwender-Konferenz „<strong>Pi</strong> and More“ in Trier (10),<br />

Die besten Betriebssysteme <strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong> (36)<br />

Daten- <strong>und</strong> Druckdienste auf dem Ras<strong>Pi</strong> (42)<br />

Ras<strong>Pi</strong> als Webserver mit PHP, CMS <strong>und</strong> Datenbank (46)<br />

Media-Center auf dem Mini-PC installieren (55)<br />

Werner Hein <strong>Einsteiger</strong>projekte <strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong> (14)<br />

Marcus Nasarek Wetterdaten auslesen <strong>und</strong> aufbereiten (60)<br />

Ras<strong>Pi</strong> als Printerserver <strong>für</strong> USB-Drucker (66)<br />

Ras<strong>Pi</strong> im Einsatz als digitale Jukebox (50)<br />

Hiram Zuñiga Romero <strong>Raspberry</strong> <strong>Pi</strong> <strong>und</strong> Arduino miteinander koppeln (70)<br />

Richard Ryniker GPIO-Programmierung (74)<br />

Ruth Suehle Remote-Access via Secure Shell (22)<br />

Android Apps & Tipps www.android-user.de 79<br />

Bodenseo www.bodenseo.de 17<br />

EXP GmbH www.exp-tech.de 9<br />

Linux-Community www.linux-community.de 35<br />

Linux-Hotel www.linuxhotel.de 49<br />

LinuxUser www.linuxuser.de 65<br />

Medialinx AG www.medialinx-gruppe.de 2<br />

mitp-Verlag www.mitp.de 41<br />

O’Reilly Verlag GmbH & Co KG www.oreilly.de 35<br />

<strong>Raspberry</strong> <strong>Pi</strong> <strong>Geek</strong> www.raspberry-pi-geek.de 21<br />

Reichelt Elektronik www.reichelt.de 84<br />

Tuxedo Computers GmbH www.linux-onlineshop.de 83<br />

05.2013 www.raspberry-pi-geek.de<br />

81


Service<br />

Heft-DVD-Inhalt<br />

Raspbian 2013-05-25<br />

Das bekannteste OS <strong>für</strong> den <strong>Raspberry</strong> <strong>Pi</strong><br />

ist Raspbian. Dabei handelt es sich um<br />

eine <strong>für</strong> den Minirechner angepasste<br />

Variante von Debian GNU/​Linux. Debian<br />

ist nicht nur auf Serversystemen<br />

weit verbreitet, sondern<br />

bildet auch die Gr<strong>und</strong>lage <strong>für</strong><br />

einige populäre Desktop-Distributionen,<br />

wie beispielsweise<br />

Ubuntu. Dies wirkt<br />

sich wiederum positiv auf<br />

Raspbian aus: Mit den<br />

35.000 Paketen aus den<br />

Debian-Paketquellen<br />

kann der Nutzer auf eine<br />

enorme Menge an freier<br />

Software zurückgreifen.<br />

Raspbian liegt in den beiden<br />

Varianten Hardfloat<br />

(-raspbian) <strong>und</strong> Softfloat<br />

(-armel) vor. Erstere Version arbeitet<br />

deutlich schneller, weswegen<br />

Sie diese in so gut wie allen Fällen<br />

bevorzugen sollten. (tle)<br />

Die DVD enthält viele Programme <strong>und</strong> Distributionen, die das Heft in den Artikeln bespricht. Sollten Sie<br />

Probleme mit dem Datenträger haben, wenden Sie sich bitte an cdredaktion@raspberry-pi-geek.de.<br />

Weitere DVD-Inhalte<br />

Einen Kontrapunkt zu den grafischen Systemen setzt die Distribution<br />

Arch Linux 2013_05_14. Sie bootet innerhalb weniger Sek<strong>und</strong>en<br />

in die Kommandozeile. Fachk<strong>und</strong>ige erhalten ein schlankes<br />

Gr<strong>und</strong>system, das sie ihren Bedürfnissen gemäß ausbauen.<br />

Das Tool BerryBoot 20130528 präsentiert sich als eine Mischung<br />

aus Bootmanager <strong>und</strong> Installationshilfe, die Ihnen nach dem Startvorgang<br />

anbietet, das gewünschtes Ras<strong>Pi</strong>-Betriebssystem auf der<br />

SD-Karte automatisch zu installieren.<br />

Ähnlich wie BerryBoot stellt auch NOOBS 2.1 („New Out Of The<br />

Box Software“) eine Mischung aus Bootmanager <strong>und</strong> Installationshilfe<br />

dar. Sie formatieren auf dem PC die SD-Karte mit dem FAT32-<br />

Dateisystem <strong>und</strong> entpacken darauf die NOOBS-ZIP-Datei.<br />

Dank seines hardwarebeschleunigten Grafikchips eignet sich <strong>Raspberry</strong><br />

<strong>Pi</strong> perfekt als Media-Player. Dies nutzt Open ELEC 3.06, um<br />

aus dem Minirechner ein vollwertiges Media-Center zu zaubern.<br />

Dazu startet es nach dem Booten das XBMC (XBox Media Center),<br />

das Mediendateien nicht nur von lokalen oder Netzlaufwerken abspielt,<br />

sondern auch mit Web-Streams aller Art zurechtkommt.<br />

Die Distribution <strong>Pi</strong>Bang 20130411 verwendet den leichtgewichtigen<br />

Window-Manager Openbox, nutzt den neueren 3.6er-Kernel<br />

<strong>und</strong> bietet in seiner Paketquelle auch aktuellere Softwareversionen<br />

an. Die Distribution setzt zwar weniger Vorkenntnisse als etwa Arch<br />

Linux voraus, richtet sich aber eher an erfahrenere Anwender.<br />

Bei <strong>Pi</strong>dora 18 RC1 handelt es sich um eine an den <strong>Raspberry</strong> <strong>Pi</strong> angepasste<br />

Version von Fedora. Auf Desktop-PCs erfreut sich Fedora<br />

hoher, auf Servern wachsender Beliebtheit. Unter anderem deswegen<br />

plante die <strong>Raspberry</strong> <strong>Pi</strong> Fo<strong>und</strong>ation ursprünglich, <strong>Pi</strong>dora zur<br />

Standard-Distribution <strong>für</strong> den Ras<strong>Pi</strong> zu ernennen. Die ersten Versionen<br />

erwiesen sich als sehr langsam <strong>und</strong> zum Teil fehlerhaft,<br />

weswegen Raspbian zum Klassenprimus aufstieg.<br />

Da in einem <strong>Raspberry</strong> <strong>Pi</strong> ein Linux steckt, stellen auch eigene<br />

Webanwendungen <strong>für</strong> den Heimgebrauch kein Problem dar. So lassen<br />

sich etwa die Daten einer Wetterstation mit Ruby auswerten<br />

<strong>und</strong> dann mithilfe eines Webservers im Eigenbau präsentieren. Dabei<br />

hilft das Programm Te923tool 0.5 von Sebastian John, das viele<br />

Wetterstationen auslesen kann, die auf HIDEKI basieren. n<br />

82 www.raspberry-pi-geek.de<br />

05.2013

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!