Know-howWissen, wie’s für geht. Kreative.

Leseprobe

Mit dem Raspberry Pi steht Ihnen die Bastelwelt offen. Wir zeigen Ihnen in dieser Leseprobe, wie Sie Ihren RasPi starten und die rich- tigen Steuerungskommandos anwenden. Als erstes Beispielprojekt machen Sie mit Ihrem Raspberry Pi anschließend Musik.

»Schnellstart: Die erste Inbetriebnahme« »Wichtige Konsolenbefehle im Griff« »Den Raspberry Pi als MP3-Player nutzen«

Inhaltsverzeichnis

Index

Der Autor

Leseprobe weiterempfehlen

Daniel Kampert Raspberry Pi – Der praktische Einstieg 364 Seiten, broschiert, in Farbe, 3. Auflage 2015 19,90 Euro, ISBN 978-3-8362-3902-8

www.rheinwerk-verlag.de/3984 Kapitel 2 Schnellstart: Die erste Inbetriebnahme

In Kapitel 1 haben Sie bereits einen kleinen Überblick über die Ausstattung des Rasp- berry Pi bekommen. Da Sie jetzt wissen, womit Sie es zu tun haben, wird es Zeit, dem kleinen Computer Leben einzuhauchen!

Dieses Kapitel beschäftigt sich mit der ersten Inbetriebnahme des Raspberry Pi und dem Betriebssystem Raspbian Wheezy. Ich erkläre Ihnen, wie Sie das Betriebssystem installieren und welche alternativen Betriebssysteme es gibt. Zudem werden wir uns eine Basis erarbeiten, um das Betriebssystem, das auf basiert, etwas besser zu ver- stehen. Im letzten Schritt werden wir den Raspberry Pi zum ersten Mal booten und einige Grundeinstellungen vornehmen.

2.1 Installieren des Betriebssystems Raspbian Wheezy

Zum Einstieg werden wir das Betriebssystem Raspbian Wheezy verwenden. Ich werde zwar später noch andere Betriebssysteme vorstellen, aber für Anfänger ist dieses Betriebssystem die bessere Wahl, da schon einige wichtige Programme mitgeliefert werden.

Das nötige Raspbian-Wheezy-Image können Sie auf der offiziellen Raspberry-Pi-Seite unter Downloads (www.raspberrypi.org/downloads) herunterladen. Für die Installa- tion eines Betriebssystems benötigen Sie eine mit dem FAT-32-Dateisystem formatierte SD-Karte!

So formatieren Sie eine SD-Karte unter Windows Falls Sie eine SD-Karte verwenden, die in einem anderen Dateisystem als FAT-32 forma- tiert ist, dann müssen Sie diese SD-Karte vor dem Bespielen mit dem Image formatie- ren. Beachten Sie: Bei diesem Vorgang werden alle Daten auf der SD-Karte gelöscht! Falls die Karte wichtige Daten enthält, dann sichern Sie die entsprechenden Dateien unbedingt, bevor Sie die folgenden Schritte durchführen: Öffnen Sie den Computer (aus früheren Windows-Versionen bekannt als Arbeitsplatz). Schieben Sie dann die SD-Karte in den Kartenleser des Rechners. Die SD-Karte wird nun

25 2 Schnellstart: Die erste Inbetriebnahme 2.1 Installieren des Betriebssystems Raspbian Wheezy

4. Stecken Sie die SD-Karte in den Kartenleser. im Computer angezeigt und bekommt einen Laufwerksbuchstaben zugewiesen (z. B. Device »G«). Merken Sie sich diesen Laufwerksbuchstaben, da Sie ihn im nächsten Schritt 5. Wählen Sie das heruntergeladene Raspbian-Image aus und unter die zu benötigen (siehe Abbildung 2.2). Nach einem Rechtsklick auf die SD-Karte im Arbeits- beschreibende SD-Karte aus (siehe Abbildung 2.2). Klicken Sie auf den Write-Button. platzmenü können Sie mit einem Klick auf Formatieren das Formatierungsmenü der SD-Karte öffnen (siehe Abbildung 2.1).

Abbildung 2.2 Der Win32 Disk Imager

2.1.2 Die Installation auf einem Mac 1. Entpacken Sie das Raspbian-Image, zum Beispiel mit einem Programm wie UnRarX. 2. Legen Sie die SD-Karte in den Kartenleser. 3. Im Apple-Menü suchen Sie unter »USB« den BSD-Namen der Karte heraus (z. B. /dev/ Abbildung 2.1 Hier starten Sie den Formatierungsprozess der SD-Karte. disk1s1) und unmounten anschließend die Karte, sodass Sie den Inhalt der Karte über- schreiben dürfen. Der Befehl sieht z. B. so aus (den Namen /dev/disk1s1 müssen Sie In dem Fenster, das sich nun öffnet, wählen Sie als Dateisystem FAT-32. Klicken Sie dann natürlich anpassen!): auf Starten. Nach wenigen Augenblicken ist die SD-Karte fertig formatiert und einsatz- diskutil unmount /dev/disk1s1 bereit. 4. Öffnen Sie ein Terminal, und geben Sie Die Installation des Betriebssystems auf der SD-Karte unterscheidet sich je nach auf sudo dd if=Pfad zum Image.img of=/dev/diskN bs=1m dem Computer verwendeten Betriebssystem. Ich werde die Installationsroutinen nach- N folgend kurz erklären. ein. Ersetzen Sie dabei das durch die Disknummer.

2.1.1 Die Installation auf einem Windows-Computer 2.1.3 Die Installation unter Linux 1. Entpacken Sie das heruntergeladene Raspbian-Image, beispielsweise mit dem Gratis- 1. Als Erstes öffnen Sie ein Konsolenfenster (z. B. im Terminal unter Ubuntu). programm 7-Zip, das Sie z. B. bei www.chip.de herunterladen können. Falls Sie als 2. Wechseln Sie in das Download-Verzeichnis mit dem Raspbian-Image: Betriebssystem Windows 7 oder höher verwenden, können Sie sich den Download cd /Pfad zum Verzeichnis des Programms 7-Zip sparen, da Ihr Betriebssystem Dateien bereits von sich aus ent- packen kann. 3. Anschließend entpacken Sie das Raspbian-Image mit folgendem Konsolenbefehl: 2. Jetzt installieren Sie das Tool Win32 Disk Imager, das Sie auch bei www.chip.de finden unzip Datei.zip und ebenfalls mit dem Programm 7-Zip entpacken können. 4. Legen Sie eine FAT32-formatierte SD-Karte in den Kartenleser ein. 3. Anschließend starten Sie den Win32 Disk Imager.

26 27 2 Schnellstart: Die erste Inbetriebnahme 2.2 Vorbemerkungen zu Linux: Was Linux ist und wie es grundsätzlich funktioniert

5. Mit ls /dev finden Sie heraus, wie die SD-Karte benannt ist, z. B. sdd1 (siehe Abbildung 2.2 Vorbemerkungen zu Linux: Was Linux ist und wie es 2.3). Dies prüfen Sie am leichtesten, indem Sie die Karte herausziehen, dann den grundsätzlich funktioniert Befehl eingeben und dasselbe mit eingesteckter Karte wiederholen. Das Betriebssystem Raspbian Wheezy ist eine Distribution, sprich eine »Unterart« des Betriebssystems Debian. Es gibt viele verschiedene Betriebssysteme auf Linux-Basis, und alle verwenden den Linux-Kernel.

Ohne Karte Mit eingesteckter Karte 2.2.1 Was ist ein Kernel? Abbildung 2.3 Die SD-Karte wurde erkannt. Ein Kernel ist der Kern eines Betriebssystems. Der Kernel organisiert die komplette 6. Mit ls überprüfen Sie wie in Abbildung 2.4, wie das Image heißt. Der in weißer Schrift Hardware eines Systems und sorgt so dafür, dass das System reibungslos und effizient angezeigte Name ist der Name des Images. arbeitet. Nach außen hin arbeitet der Kernel als Dienstleister und bietet Programmen auf dem System Speicherplatz und Zeit zum Ausführen an. Wenn ein Programm ausge- führt wird, erhält es vom Kernel eine bestimmte Priorität und eine bestimmte Menge Prozessorzeit. Wenn das Programm Sonderwünsche hat – z. B. den Wunsch, ein weiteres Abbildung 2.4 Das Image im Download-Ordner Programm ausführen zu dürfen –, dann muss das Programm diesen Wunsch an den Kernel weiterleiten. Er entscheidet anschließend, ob dieser Wunsch erfüllt wird oder nicht. Der Kernel verwaltet außerdem alle Treiber. Treiber werden benötigt, um Peri- Prüfen, ob das korrekte Speichermedium beschrieben wird pheriegeräte, die nicht zum System gehören, nutzen zu können. Für jedes Gerät (sei es Bevor Sie den Schreibvorgang starten, sollten Sie prüfen, ob Sie auch das richtige Spei- eine Maus, eine Tastatur o. Ä.) wird ein Treiber benötigt. Ohne den passenden Treiber chermedium ausgewählt haben. Sobald Sie den Schreibvorgang starten, sind alle Daten kann der Kernel ein Peripheriegerät nicht ansprechen, und es funktioniert nicht. auf dem Speichermedium verloren! Der Kernel selbst ist ebenfalls ein Programm. Dieses Programm wird beim Einschalten 7. Im letzten Schritt spielen Sie das Image auf die Karte auf: aus dem Speicher, der das Betriebssystem enthält, geladen und in den Hauptspeicher (Arbeitsspeicher) kopiert, wo es dann seine Arbeit verrichtet. In unserem Fall ist der sudo dd bs=1M if=[Pfad zum Image.zip] of=[Pfad zur Karte] Speicher mit dem Betriebssystem die SD-Karte. Auf mein Beispiel übertragen, würde der Befehl also so lauten:

dd bs=1M if=2013-07-26-wheezy-raspbian.img of=/dev/sdd1 2.2.2 Linux ist ein Multi-User-System

8. Sobald der Kopiervorgang fertig ist, erscheint die Meldung aus Abbildung 2.5. Danach Linux ist ein sogenanntes Multi-User- oder Mehrbenutzersystem. Bei einem Multi-User- ist die SD-Karte einsatzbereit. System handelt es sich um ein Betriebssystem, das über Mittel verfügt, eine Arbeitsum- gebung für verschiedene Nutzer bereitzustellen. Diese Arbeitsumgebungen sind von- einander getrennt, und jeder User hat nur auf seine eigene Arbeitsumgebung Zugriff. Die User können dabei entweder gleichzeitig oder nacheinander an demselben System arbeiten. Abbildung 2.5 Der Kopiervorgang ist beendet.

Der Schreibvorgang kann je nach Kartenleser und Betriebssystem eine gewisse Zeit in 2.2.3 Zugriffsrechte auf dem Raspberry Pi: Was darf ich, und was darf ich nicht? Anspruch nehmen. Nutzen wir die Zeit, um das Betriebssystem etwas näher kennenzu- Um zu gewährleisten, dass nur der jeweilige Besitzer Zugriff auf seine Dateien erhält lernen. und nicht jemand anders, verfügt das Betriebssystem über eine ganze Reihe von Sicher-

28 29 2 Schnellstart: Die erste Inbetriebnahme 2.2 Vorbemerkungen zu Linux: Was Linux ist und wie es grundsätzlich funktioniert

heitsmaßnahmen. So können bestimmte Aufgaben nur mittels eines sogenannten ̈ für den Besitzer der Datei root- oder auch Administrator-Accounts ausgeführt werden. (»Account« wird im Deut- ̈ für den Zugriff durch die Gruppe des Eigentümers schen in diesem Zusammenhang mit »Benutzerkonto« übersetzt.) Dieser root-Account ̈ öffentliche Berechtigungen verfügt über alle Rechte und darf dementsprechend auch auf alles zugreifen. Insgesamt besitzt jede Datei also neun Bits, die den Zugriff regeln. (Es sind noch weitere Ich bin »root«, … Bits vorhanden, aber die sind für unsere Zwecke uninteressant.) Ist zum Beispiel für den Besitzer einer Datei Test.txt das w-Bit nicht gesetzt, kann der Besitzer der Datei nicht in … ich darf das: Dieser in der Linux-Community gängige Slogan macht mit einem Augen- die Datei schreiben. Es erscheint dann die Meldung aus Abbildung 2.6. zwinkern die Bedeutung von »root« begreiflich. Dieser Benutzer bzw. »User« darf auf- grund seiner uneingeschränkten Macht auf dem betreffenden System einfach alles – und wird deshalb oft als Superuser bezeichnet. Diese uneingeschränkte Macht hat allerdings zwei Seiten: Sind Sie auf Ihrem System als root angemeldet, dann können Sie alles machen – im Notfall also auch Schaden anrich- ten! Gehen Sie mit der Anmeldung als root also möglichst sorgsam um, und verwenden Abbildung 2.6 Zugriff verweigert Sie diesen Benutzer nur, wenn Sie die entsprechenden Berechtigungen zwingend benö- tigen. Anders liegt der Fall, wenn das w-Bit für den Besitzer gesetzt ist, aber nicht für alle ande- ren. Dann darf nur der Besitzer in die Datei schreiben. Das ist in Abbildung 2.7 zu sehen. Auf diesen Punkt werde ich im weiteren Verlauf des Buches immer wieder einmal auf- merksam machen.

Ein normaler Benutzer (oder »User«) hingegen hat nur Zugriff auf sein Verzeichnis. Alles, was in der Hierarchie höher angeordnet ist als sein Verzeichnis, darf er nicht Abbildung 2.7 Zugriff gewährt betreten. Jeder Benutzer kann außerdem verschiedenen Gruppen zugeordnet werden, und diesen Gruppen kann dann der Zugriff auf bestimmte Dateien verwehrt oder Der User root ist natürlich von all diesen Regeln ausgenommen. Wer als User root unter- gestattet werden. Zusammengefasst bedeutet dies, dass das Betriebssystem drei ver- wegs ist, darf alles auf dem System machen, was er möchte. schiedene Zugriffsarten berücksichtigen muss: Fehlende Zugriffsrechte ̈ den Zugriff über den Besitzer Wenn nach Absetzen eines Kommandos die Meldung Permission denied erscheint ̈ den Zugriff über die Gruppe oder nichts in eine Datei geschrieben wurde, handelt es sich in den meisten Fällen um ̈ den Zugriff über einen User, der weder der Gruppe angehört fehlende Zugriffsrechte! noch der Besitzer ist, auch öffentlicher Zugriff genannt

Jede Datei besitzt deshalb für jede Zugriffsart drei verschiedene Bits, die festlegen, wer Natürlich können Sie die Rechte auch wie in Abbildung 2.8 anzeigen lassen. wie auf die Datei zugreifen darf.

2.2.4 Die Zugriffsbits

Jede Datei verfügt über ein Bit, das den lesenden Zugriff steuert (r), ein Bit für den Abbildung 2.8 Anzeigen der Zugriffsrechte einer Datei schreibenden Zugriff (w) und ein Bit zum Ausführen der Datei (x). Diese drei Bits sind in dreifacher Ausführung vorhanden: Die genaue Erklärung des Befehls erfolgt später, ich greife nur beim Thema »Rechte« etwas vor. Ab dem zweiten Zeichen von links werden die Rechte dargestellt, und zwar

30 31 2 Schnellstart: Die erste Inbetriebnahme 2.3 Die Verzeichnisstruktur

immer in einem Dreierblock für jede Zugriffsart: Besitzer, Gruppe, öffentlich. In dem Bei- Abbildung 2.10 zeigt den kompletten Verzeichnisbaum eines Linux-Betriebssystems. spiel oben ist also folgender Fall abgebildet: Jeder dieser Ordner in dem Verzeichnisbaum hat eine ganz spezielle Aufgabe, die wir uns etwas genauer anschauen wollen. 1. Der Besitzer darf lesen (r) und schreiben (w). 2. Die Gruppe darf lesen (r). 3. Öffentliche Benutzer dürfen lesen (r).

Außerdem wird gezeigt, welchem Benutzer und welcher Gruppe die Datei gehört. In die- sem Fall gehört die Datei dem Benutzer pi und der Gruppe pi. In dem Programm File- Zilla werden die Rechte sehr ausführlich dargestellt, wie Abbildung 2.9 zeigt.

Abbildung 2.10 Der komplette Verzeichnisbaum

̈ bin (Kurzform für binaries – Programme): In diesem Verzeichnis liegen alle wichtigen Abbildung 2.9 Die Rechte im Überblick in FileZilla und unverzichtbaren Programme für das Betriebssystem. ̈ boot: Dieses Verzeichnis enthält alle für den Bootvorgang notwendigen Dateien. Dieses Programm werden Sie in Abschnitt 4.7, »Fernzugriff über SSH«, noch genauer Hier ist der Kernel des Betriebssystems gespeichert, und über die Datei config.txt kennenlernen, weil es die Möglichkeit bietet, bequem Dateien zwischen einem können Sie Änderungen an der Taktfrequenz und am HDMI-Anschluss (z. B. automa- Windows-PC und dem Raspberry Pi zu transferieren. tische Monitorerkennung beim Einstecken eines Monitors) vornehmen. ̈ dev (Kurzform für devices – Geräte): Hardwarekomponenten des Prozessors werden fast immer durch Dateien repräsentiert, mit denen diese Komponenten verwendet 2.3 Die Verzeichnisstruktur werden können. All diese Dateien finden Sie im Verzeichnis /dev. ̈ Nun schauen wir uns den Verzeichnisbaum oder die Ordnerstruktur genauer an. Die etc (et cetera – alles Übrige): Manche Programme benötigen Konfigurationsdateien, ganze Verzeichnisstruktur baut auf einem Ausgangsverzeichnis mit dem Namen »/« die bestimmte Einstellungen speichern. Diese Dateien werden im Verzeichnis /etc auf. Dieses Verzeichnis wird auch Root- oder Wurzelverzeichnis genannt. Dieses Ver- abgelegt. In diesem Verzeichnis finden sich z. B. Informationen zur Netzwerkkonfi- zeichnis ist die erste Verzeichnisebene und stellt in der Regel die Bootpartition des guration und für die Display-, die für ein Bild am Monitor zuständig sind. Betriebssystems dar. Alle anderen Verzeichnisse sind Unterverzeichnisse des Root-Ver- ̈ home: Dieses Verzeichnis enthält für jeden Benutzer des Systems ein Unterverzeich- zeichnisses. nis. Dieses Unterverzeichnis bekommt immer denselben Namen wie der Benutzer,

32 33 2 Schnellstart: Die erste Inbetriebnahme 2.3 Die Verzeichnisstruktur

dem es gehört, und es stellt gleichzeitig das Ursprungsverzeichnis des Verzeichnis- ̈ proc (Kurzform für processes – laufende Prozesse): Hier sind alle Schnittstellen zum baums eines Nutzers dar (siehe Abbildung 2.11). Kernel enthalten. Außerdem lassen sich hier verschiedene Dateien auslesen, die Informationen zur CPU und der Kernelversion beinhalten. ̈ root: Dies ist das Homeverzeichnis des Superusers root. Es gibt einen guten Grund, warum das Homeverzeichnis des Superusers an einer anderen Stelle gespeichert ist Abbildung 2.11 Die »home«-Verzeichnisse zweier User als das der anderen User: Wenn das Homeverzeichnis der anderen User aus irgendei- nem Grund nicht mehr verfügbar sein sollte, kann immer noch mit dem Superuser Der User pi zum Beispiel besitzt im Verzeichnis /home ein Unterverzeichnis /pi, und gearbeitet werden. dieses Verzeichnis ist das erste Verzeichnis in seinem Verzeichnisbaum. Er darf also ̈ run: In diesem Verzeichnis werden verschiedene Laufzeitinformationen von Pro- z. B. nicht auf das Verzeichnis /etc zugreifen, da er das Verzeichnis /home/pi nicht grammen gespeichert. nach oben hin verlassen darf. Die einzige Ausnahme ist der User root – für ihn gilt ̈ sbin (Kurzform für system binaries – Systemdateien): Dieses Verzeichnis enthält alle diese Beschränkung nicht. Da das höchste Verzeichnis im Betriebssystem das Ver- für die Systemverwaltung notwendigen Programme. All diese Programme können zeichnis mit dem Pfad / ist, kann der User root natürlich in kein höheres Verzeichnis nur als Superuser ausgeführt werden (z. B. shutdown). als das Wurzelverzeichnis wechseln. ̈ selinux (Kurzform für Security-Enhanced Linux – sicherheitsverbessertes Linux): Die- ̈ lib (Kurzform für libraries – Bibliotheken): Wenn man ein Programm schreibt, kommt ses Verzeichnis ist für den Betriebssystemzusatz »SElinux« vorgesehen, eine Erweite- man irgendwann an den Punkt, wo bestimmte Funktionen nur durch externe Biblio- rung des Linux-Kernels, um Zugriffsrechte und -kontrollen besser verwalten zu theken verfügbar gemacht werden können. Damit das geschriebene Programm dann können. Es beinhaltet die für SElinux notwendigen Module und Dateien. auf anderen Systemen ebenfalls funktioniert, muss die Bibliothek zusammen mit ̈ srv (Kurzform für services – Dienste): Nicht genauer spezifiziert, und deswegen ist dem Programm kopiert werden. Alle diese Bibliotheken finden sich im Verzeichnis dieses Verzeichnis leer. /lib wieder. ̈ sys (Kurzform für system – System): Enthält ebenso wie /proc Kernelschnittstellen. ̈ lost+found: Hier lagert das Betriebssystem Dateien und Dateifragmente aus, die ̈ beim Versuch, ein defektes Dateisystem zu reparieren, übrig geblieben sind. tmp (Kurzform für temporary – temporär): Hier werden temporäre Dateien gespei- chert. Dieses Verzeichnis wird beim Booten geleert. ̈ media: Wenn portable Speichermedien wie externe Festplatten, CD-ROM-Laufwerke ̈ oder USB-Sticks an das System angeschlossen werden, werden sie gemountet, sprich usr (Kurzform für user – Benutzer): Dieses Verzeichnis ist für Systemtools, Bibliothe- für das System verfügbar gemacht, und in diesem Verzeichnis dargestellt. Dies kann ken und installierte Programme bestimmt. dann z. B. so aussehen wie in Abbildung 2.12. ̈ var (Kurzform für variable – variabel): Hier werden variable Inhalte wie Speicher- stände und Logs gespeichert.

Natürlich ist es nicht zwingend notwendig, dass Sie die Bedeutung aller Verzeichnisse

Abbildung 2.12 Ein gemounteter USB-Stick und deren Inhalt bis ins kleinste Detail kennen. Einige Dateien enthalten jedoch grund- legende Systeminformationen, die ab und an doch sehr nützlich sein können. Die wich- ̈ mnt (Kurzform für mount): Dieses Verzeichnis kann dafür genutzt werden, Datenträ- tigsten habe ich nachfolgend aufgelistet: ger manuell zu mounten. ̈ /etc/rc.local ̈ opt (Kurzform für optional): Wenn Programme, die nicht zur Distribution gehören Eine Art Autostart. Diese Datei wird bei jedem Bootvorgang ausgeführt. Alles, was vor und eigene Bibliotheken besitzen, installiert werden sollen, wählt man dafür das Ver- dem exit 0 steht, wird ausgeführt. zeichnis /opt. In Abbildung 2.13 sehen Sie ein kleines Beispiel, wie bei jedem Booten der Text »Hallo« in die Datei /tmp/Test.txt geschrieben wird.

34 35 2 Schnellstart: Die erste Inbetriebnahme 2.4 Welche alternativen Betriebssysteme gibt es?

Sie diese Datei zu Hilfe nehmen. Sie werden in Abschnitt 8.5.1 eine Möglichkeit ken- nenlernen, diese Datei mithilfe eines Programms auszulesen.

Abbildung 2.13 So wird ein Befehl automatisch ausgeführt.

̈ /sys/devices/virtual/thermal/thermal_zone0/temp Hier wird die Temperatur der CPU gespeichert. Dieser Wert kann einfach ausgelesen werden (siehe Abbildung 2.14). Abbildung 2.17 Informationen über den Prozessor

2.4 Welche alternativen Betriebssysteme gibt es? Abbildung 2.14 Die aktuelle Temperatur des SoC Natürlich gibt es nicht nur das Betriebssystem Raspbian Wheezy. Da das ganze Rasp- ̈ /proc/version berry-Pi-Projekt Open Source ist, haben sich im Laufe der Zeit viele verschiedene Betriebssysteme entwickelt, die zum Teil aus der Linux-Community und zum Teil aus Hier finden Sie, wie in Abbildung 2.15 zu sehen, Informationen zum aktuellen Kernel. der Raspberry-Pi-Community stammen. Ein paar dieser Betriebssysteme möchte ich hier kurz vorstellen:

̈ NOOBS (New Out Of Box Software): Dieses Betriebssystem ist für Neueinsteiger Abbildung 2.15 Informationen über den Kernel gedacht, die noch nicht wissen, welches Betriebssystem sie wählen sollen. Es umfasst Raspbian Wheezy, Pidora und zwei Versionen eines Mediacenters. Es besteht außer- ̈ /sys/class/gpio/export dem die Möglichkeit, das Betriebssystem durch Drücken von (ª) während des Boot- Über diese Datei können die Ein- und Ausgänge des Raspberry Pi verfügbar gemacht vorgangs zu wechseln (siehe Abbildung 2.18). werden. Wird z. B. eine 7 in die Datei geschrieben, erscheint ein neuer Ordner namens gpio7 im Verzeichnis /sys/class/gpio (siehe Abbildung 2.16). Darin befinden sich dann alle Dateien, die notwendig sind, um auf den GPIO 7 zuzugreifen.

Abbildung 2.16 Der Ordner für den GPIO 7

̈ /proc/cpuinfo In dieser Datei stehen alle Informationen zur verwendeten CPU (siehe Abbildung 2.17). Wenn in einem Programm z. B. eine Unterscheidung zwischen der alten 256-MB-Ver- sion des Raspberry Pi und der neuen 512-MB-Version gemacht werden soll, können Abbildung 2.18 Die Auswahl des Betriebssystems

36 37 2 Schnellstart: Die erste Inbetriebnahme 2.4 Welche alternativen Betriebssysteme gibt es?

̈ Pidora: Bei Pidora handelt es sich um eine für den Raspberry Pi optimierte Version des Computerbetriebssystems Fedora (siehe Abbildung 2.19).

Abbildung 2.20 Der Homescreen des OSMC-Mediacenters

̈ Ubuntu: Erstmals wird nun auch die beliebte Linux-Desktopvariante Ubuntu in der Version 14.04 (Trusty Tahr) oder Ubuntu MATE in der Version 15.04 für den Raspberry Abbildung 2.19 Der Pidora-Installationsbildschirm Pi 2 angeboten. Einen Downloadlink zum Image sowie eine genaue Installationsan- leitung finden Sie unter https://wiki.ubuntu.com/ARM/RaspberryPi sowie unter ̈ Arch Linux ARM: Dieses Betriebssystem verfügt nur über die notwendigsten Kom- https://ubuntu-mate.org/raspberry-pi/. ponenten. Aus diesem Grund bootet es innerhalb von zehn Sekunden. Es ist aller- dings nicht für Einsteiger geeignet, da keinerlei Zusatzsoftware (wie z. B. eine grafische Oberfläche) vorhanden ist und alles nachträglich kompiliert und installiert werden muss. ̈ OSMC (ehemals Raspbmc), OpenELEC: Diese beiden Betriebssysteme sind dafür gedacht, den Raspberry Pi in ein Mediacenter zu verwandeln (siehe Abbildung 2.20). Sie unterstützen das Einbinden eines NAS (Network Attached Storage), also eines Netzwerkspeichers – z. B. eines Dateiservers – und sind darauf ausgelegt, Filme, Musik und Fotos wiederzugeben. Sie bieten die Möglichkeit, Festplatten und USB- Sticks anzuschließen, um die darauf gespeicherten Medien wiederzugeben. Das Mediacenter OpenELEC werde ich Ihnen in noch genauer vorstellen, in dem ich Ihnen zeige, wie Sie ein Mediacenter auf der Basis von OpenELEC installieren und ein- richten. ̈ RISC OS: RISC OS ist ein schlankes und schnelles Multitasking-Betriebssystem, das ausschließlich auf ARM-Prozessoren läuft. Das Betriebssystem besitzt eine Vielzahl Abbildung 2.21 Ubuntu MATE auf dem Raspberry Pi 2 (Quelle: https://ubuntu-mate.org/ von austauschbaren Modulen, die für Festplattenzugriffe, grafische Oberflächen etc. raspberry-pi/) zuständig sind.

38 39 2 Schnellstart: Die erste Inbetriebnahme 2.5 Jetzt geht’s los! Das System richtig konfigurieren

Weiterführende Lektüre zu Ubuntu Falls Sie sich intensiver mit dem Betriebssystem Ubuntu auf dem Raspberry Pi 2 beschäftigen oder es darüber hinaus auf Ihrem Desktop-PC in Betrieb nehmen möch- ten, dann finden Sie mit dem umfassenden Handbuch zu Ubuntu von Marcus Fischer einen guten Einstieg und viel weiterführende Hilfe. Das Kompendium ist ebenfalls beim Rheinwerk Verlag (ehemals Galileo Press) erhält- lich.

̈ Windows 10: Erstmalig bietet Microsoft sein Betriebssystem in abgespeckter Vari- ante auch für CPUs mit ARM-Architektur an. Dies geschieht im Rahmen des IoT- Gedankens ( of Things – sprichwörtlich für "Alle Dinge sind vernetzt"). Zum aktuellen Zeitpunkt handelt es sich bei Windows 10 für den Raspberry Pi um eine Ent- wicklerversion, die dementsprechend noch nicht komplett ausgereift, aber dennoch benutzbar ist. Jeder, der interessiert ist, kann an dem Entwicklerprogramm teilnehmen. Es wird lediglich ein Raspberry Pi 2, Windows 8 bzw. Windows 10 und ein Account beim Abbildung 2.22 Los geht’s! Der Raspberry Pi in Betrieb Windows Development Center benötigt. Anschließend ist auf http://ms-iot.git- Die LED (ACT) über der roten LED (PWR) blinkt nun, und wenige Momente später hub.io/content/en-US/GetStarted.htm eine gute Anleitung zu finden, wie Sie erscheint das Bild aus Abbildung 2.23 auf dem angeschlossenen Monitor. Windows 10 auf den Raspberry Pi bringen und wie Sie die ersten Programme schreiben.

Die verschiedenen Betriebssysteme – mit Ausnahme von Windows 10 – können Sie direkt von der offiziellen Raspberry-Pi-Website www.raspberrypi.org herunterladen. Über Links gelangen Sie außerdem zu allen genannten Distributionen (inkl. Windows 10 IOT CORE) auf den Drittanbieter-Websites, so dass www.raspberrypi.org eine gute erste Anlaufstelle für Sie darstellt.

2.5 Jetzt geht’s los! Das System richtig konfigurieren

Jetzt, da Sie im Groben wissen, wie das Betriebssystem funktioniert und welche anderen Betriebssysteme es noch gibt, können wir uns das Betriebssystem Raspbian Wheezy endlich live auf dem Raspberry Pi anschauen. Abbildung 2.23 Das Hauptfenster des Menüs »raspi-config«

Hierfür schieben Sie die SD-Karte mit dem Betriebssystem in den Raspberry Pi und ste- Dieses Menü erscheint immer, wenn das Betriebssystem Raspbian Wheezy zum ersten cken den Micro-USB-Stecker des Netzteils ein. Jetzt leuchtet die rote LED auf und signa- Mal von der SD-Karte gestartet wird. Es soll dabei helfen, den Raspberry Pi für die erste lisiert, dass Spannung am Raspberry Pi anliegt. Wenig später sollten auch die gelbe und Benutzung zu konfigurieren, und deswegen gehen wir das Menü Schritt für Schritt die grüne LED der LAN-Verbindung leuchten (siehe Abbildung 2.22). durch.

40 41 2 Schnellstart: Die erste Inbetriebnahme 2.5 Jetzt geht’s los! Das System richtig konfigurieren

2.5.1 Das Menü »raspi-config« In Kapitel 4, »Wichtige Konsolenbefehle im Griff«, werden Sie eine Möglichkeit kennen- lernen, eine Partition zu erstellen und so den ungenutzten Speicherplatz in eine Parti- Das raspi-config-Menü hilft Neueinsteigern bei der erstmaligen Konfiguration des klei- tion umzuwandeln. So wird der freie Speicher nicht verschwendet. Darum können Sie nen Computers. Dieses Menü können Sie später immer wieder durch die Konsolenein- diesen Schritt bei Bedarf auslassen. gabe sudo raspi-config aufrufen.

Einfach konfigurieren 2.5.3 Change User Password Das Menü raspi-config stellt eine leichte und übersichtliche Möglichkeit dar, verschie- Im nächsten Schritt ändern wir das Default-Passwort. Auf dem Raspberry Pi ist nach der dene Einstellungen am Raspberry Pi zu ändern, ohne dass viel Erfahrung mit dem Installation ein User pi eingerichtet, dem das Passwort »raspberry« zugewiesen ist. Die- Betriebssystem nötig ist. ses Passwort ändern Sie nun in ein beliebiges anderes.

Achtung bei der Anmeldung: Amerikanische Tastenbelegung 2.5.2 Expand Filesystem Im Moment ist die Tastatur noch auf ein amerikanisches Layout eingestellt. Daher sind Den Menüpunkt Expand Filesystem führen Sie als Erstes aus. Bestätigen Sie die Ein- z. B. die Tasten (Y) und (Z) vertauscht. Das bedeutet konkret, dass Sie bis zur Umstel- gabe einfach mit einem Druck auf die (¢)-Taste. Jetzt beginnt der Raspberry Pi damit, lung der Tastatur auf das deutsche Tastaturlayout (siehe Abschnitt 2.5.5, »Internationa- das Root-Filesystem – also das Dateisystem mit dem Betriebssystem, das sich auf der lisation Options«) als Passwort »raspberrz« eintippen müssen. SD-Karte befindet – auf die gesamte SD-Kartengröße auszubreiten. Durch die Raspbian- Wheezy-Installation werden ansonsten immer nur 2 GB der Karte genutzt, egal wie groß Sobald Sie den Menüpunkt ausgewählt haben, gelangen Sie, wie in Abbildung 2.25 die Karte ist. gezeigt, zurück zur Konsole, wo Sie das neue Passwort eingeben.

Abbildung 2.25 Bitte ein neues Passwort eingeben.

Konsole, Terminal, Kommandos und Prompt Die Konsole ist, wie Sie vermutlich bereits bemerkt haben, ein Bildschirm im Textmodus, in dem Sie mithilfe von Kommandos unter anderem das System steuern, Dateien ändern oder Ausgaben des Systems verfolgen können. Die Konsole gibt es auch in Form eines Fensters in einer grafischen Benutzeroberfläche. Dann wird sie als Terminal bezeichnet. Kommandos wie z. B. sudo startx geben Sie an der Eingabeaufforderung, dem Prompt, ein. Damit Sie die Befehle als solche erkennen, werden sie wie üblich auch Abbildung 2.24 Das Dateisystem wird an die Größe der SD-Karte angepasst. in diesem Buch in einer eigenen Schriftart als Kommando gekennzeichnet.

Nachdem der Vorgang (siehe Abbildung 2.24) abgeschlossen ist, bestätigen Sie mit Wenn Sie das Passwort erfolgreich geändert haben, erscheint das Fenster aus Abbildung einem Tastendruck auf (¢) und gelangen wieder zum Menü zurück. Einen Reboot 2.26, das Sie mit der Taste (¢) schließen. ersparen wir uns erst einmal, da wir noch andere Einstellungen ändern werden.

42 43 2 Schnellstart: Die erste Inbetriebnahme 2.5 Jetzt geht’s los! Das System richtig konfigurieren

2.5.5 Internationalisation Options Unter dem Punkt Internationalisation Options sind alle länderspezifischen Ein- stellungen aufgeführt. Durch Drücken der (¢)-Taste öffnen Sie ein Untermenü, das Sie in Abbildung 2.28 sehen.

Abbildung 2.26 Änderung erfolgreich

2.5.4 Enable Boot to Desktop/Scratch In dem Menüpunkt Enable Boot to Desktop/Scratch können Sie zwischen ver- schiedenen Boot-Optionen wählen (siehe Abbildung 2.27).

Abbildung 2.28 Das Untermenü im Überblick

Mit dem ersten Unterpunkt, Change Locale, legen Sie den verwendeten Zeichensatz fest. Dafür öffnen Sie das Menü und wählen die in Abbildung 2.29 markierte Option de_ DE.UTF-8 UTF-8 mit der Leertaste aus.

Abbildung 2.27 Soll der Desktop automatisch gestartet werden?

Der erste Menüpunkt sorgt dafür, dass nach dem Booten eine Konsole geöffnet wird. Dies ist die Standardeinstellung. Wenn Sie nach dem Booten direkt auf den Desktop gelangen wollen, so müssen Sie den zweiten Punkt aktivieren. Dadurch müssen Sie den Desktop nicht von Hand starten und ersparen sich das Arbeiten mit der Konsole. Diese Option ist nur sinnvoll, wenn Sie den Raspberry Pi mit einem Monitor ausgestattet haben. Sie werden in Abschnitt 4.7, »Fernzugriff über SSH«, noch eine Möglichkeit ken- nenlernen, ohne Monitor auf dem Raspberry Pi zu arbeiten (was auch als headless bezeichnet wird); darum brauchen wir diese Option nicht zwingend. Der letzte Punkt Abbildung 2.29 Die Auswahl des richtigen Zeichensatzes aktiviert zusätzlich zum Desktop noch die Programmierumgebung Scratch. Diese Pro- grammierumgebung stelle ich Ihnen in Kapitel 3, »Den Desktop kennenlernen«, noch Die Eingabe in diesem und in dem nächsten Fenster bestätigen Sie mit (¢). Danach etwas genauer vor. gelangen Sie wieder zum Hauptbildschirm, wo Sie erneut das Menü Internationali-

44 45 2 Schnellstart: Die erste Inbetriebnahme 2.5 Jetzt geht’s los! Das System richtig konfigurieren

sation Options auswählen, um die Zeitzone einzustellen. Hierfür rufen Sie Change können Sie einfach die vorgegebene Auswahl übernehmen. Jetzt verfügt der Raspberry Timezone auf, wählen dann Europe und anschließend Berlin (siehe Abbildung 2.30). Pi über das Layout, das auf jeder deutschen Tastatur zu sehen ist.

Abbildung 2.32 Auswahl der richtigen Sprache

Abbildung 2.30 Einstellen der Zeitzone 2.5.6 Enable Camera Enable Camera Im letzten Schritt passen Sie das Tastaturlayout an. Hierfür wechseln Sie erneut in das Der Menüpunkt dient dazu, ein angeschlossenes Raspberry-Pi-Kame- Menü Internationalisation Options und wählen Change Keyboard Layout aus. ramodul zu aktivieren. Im Moment benötigen wir ihn aber noch nicht. Wir kommen in Jetzt müssen Sie einen Tastaturtyp auswählen. Entscheiden Sie sich für die markierte Kapitel 7, »Augen auf! Die Raspberry-Pi-Kamera einsetzen«, noch einmal auf diesen Auswahl Generic 105-Key (Intl) PC (siehe Abbildung 2.31), und bestätigen Sie die Ein- Punkt zurück. gabe durch Drücken von (¢). 2.5.7 Add to Rastrack Mit dem Menüpunkt Add to Rastrack können Sie den Raspberry Pi in eine Daten- bank eintragen, wodurch Sie sehen, wer alles in der Nähe einen Raspberry Pi besitzt. Auch dieser Punkt ist für uns nicht sonderlich wichtig.

2.5.8 Overclock Durch den Menüpunkt Overclock können Sie den Raspberry Pi ganz einfach übertak- ten. Dadurch sind Taktfrequenzen bis 1 GHz möglich, die auch offiziell freigegeben sind. Das Übertakten erhöht die Verarbeitungsgeschwindigkeit des Prozessors. Dies beschleunigt das Betriebssystem und sämtliche Anwendungen, sorgt aber dafür, dass Abbildung 2.31 Auswahl der richtigen Tastatur der Prozessor viel wärmer als im normalen Betrieb wird. Falls der Prozessor zu heiß wird (z. B. weil er zusätzlich in einer warmen Umgebung betrie- Danach rufen Sie erst Other und anschließend German auf. Im nächsten Schritt aus ben wird), kann er kaputtgehen. Daher ist es sinnvoll, mithilfe von Wärmeleitpaste einen Abbildung 2.32 wählen Sie erneut German aus. Bei den nächsten drei Menüfenstern Kühlkörper auf dem Prozessor zu befestigen, wenn Sie den Prozessor übertakten.

46 47 2 Schnellstart: Die erste Inbetriebnahme 2.5 Jetzt geht’s los! Das System richtig konfigurieren

Um den Raspberry Pi zu übertakten, wählen Sie diesen Menüpunkt aus und bestätigen Der dritte Punkt verändert die RAM-Zuweisung von CPU (Hauptprozessor – Central die Warnung mit Ok. Anschließend wählen Sie die gewünschte Taktfrequenz (siehe Processing Unit) und GPU (Grafikprozessor – Graphic Processing Unit). Er legt also fest, Abbildung 2.33). Nach einem Reboot steht diese dem Raspberry Pi zur Verfügung. wie viel Arbeitsspeicher für die Grafikerzeugung reserviert wird. Der Rest ist dann für die CPU reserviert. Für den Einstieg reicht es, wenn Sie den Default-Wert (128 MB) ver- wenden.

Aber warum teilen sich CPU und GPU überhaupt den Speicher? Anders als ein klassi- scher PC verfügt der Raspberry Pi über keine externe Grafikkarte. Deswegen ist es not- wendig, die Grafikeinheit mit dem Prozessor in ein Gehäuse zu integrieren. Die Konsequenz daraus ist, dass sich beide Prozessoren einen Arbeitsspeicher teilen müs- sen – anders als bei einem klassischen Computer mit separater Grafikkarte, wo die Karte ihren eigenen Arbeitsspeicher besitzt. Wenn Sie später ausschließlich mit der Konsole arbeiten und den Raspberry Pi nur zum Steuern oder für ähnliche Zwecke verwenden, Abbildung 2.33 Wie schnell darf es denn bitte sein? können Sie die Zuweisung einfach durch Ändern des Wertes anpassen (siehe Abbildung 2.35). Auch hier wirkt die Neuzuweisung des Arbeitsspeichers erst nach einem Reboot. 2.5.9 Advanced Options Der Menüpunkt Advanced Options bietet ein paar erweiterte Konfigurationsmög- lichkeiten für den Raspberry Pi. Mit dem ersten Punkt können Sie einen Overscan akti- vieren. Wenn der Overscan aktiviert worden ist, wird ein etwas größeres Bild erzeugt, das nicht komplett auf die sichtbare Fläche des Monitors passt. Dadurch stehen die unscharfen Ränder über und werden vom Nutzer nicht wahrgenommen. Diese Technik wird vor allem bei analogen Röhrenmonitoren benutzt, wo die Röhren eine gewisse Toleranz aufweisen. Für moderne Flachbildschirme, bei denen jede Bildzelle einzeln angesprochen werden kann und somit keine unscharfen Ränder mehr entstehen, ist diese Maßnahme unnötig und muss nicht aktiviert werden.

Mit dem zweiten Punkt können Sie den Hostnamen, sprich den Namen des Raspberry Pi, verändern. Hierfür können Sie jeden beliebigen Namen wählen, der keine Sonderzeichen Abbildung 2.35 Der Grafikspeicher wird angepasst. enthält. Der neue Name steht nach einem Reboot zur Verfügung (siehe Abbildung 2.34). Der vierte Punkt aktiviert oder deaktiviert den SSH-Server auf dem Raspberry Pi. SSH ist ein Protokoll, das uns erlaubt, per Netzwerk über ein SSH-Terminal, wie z. B. PuTTY für Windows, auf den Raspberry Pi zuzugreifen, ohne dass an dem Raspberry Pi ein Monitor o. Ä. angeschlossen sein muss. SSH bietet ebenfalls die Möglichkeit, Dateien per Netz- werk auf den Raspberry Pi zu kopieren oder umgekehrt Dateien von dem Raspberry Pi auf einen anderen Computer zu schieben. Hierfür wird z. B. das Programm FileZilla ver- wendet.

Bei einem frisch installierten Image ist der SSH-Server automatisch aktiviert, und dabei belassen wir es auch (siehe Abbildung 2.36). Der Vorteil von SSH ist, dass SSH eine ver-

Abbildung 2.34 Einmal einen neuen Namen bitte!

48 49 2 Schnellstart: Die erste Inbetriebnahme 2.5 Jetzt geht’s los! Das System richtig konfigurieren

schlüsselte Verbindung ist. So laufen Sie nicht Gefahr, dass Fremde in Ihr Netzwerk ein- Mit den Punkten sechs bis acht aktivieren Sie verschiedene Schnittstellen im Raspberry dringen, weil Sie eine ungesicherte Verbindung verwenden! Pi. Diese Punkte sind noch nicht wichtig. Wir werden in Kapitel 9, »Kleine Praxispro- jekte mit dem Raspberry Pi und Python«, auf sie zurückkommen.

Über Punkt neun können Sie angeben, wie der Raspberry Pi den Sound ausgeben soll.

Abbildung 2.37 Es stehen drei Einstellungsmöglichkeiten für den Sound zur Wahl. Abbildung 2.36 SSH ja oder nein? Wenn Sie z. B. möchten, dass der Raspberry Pi den Sound nur über HDMI ausgibt, so Über den fünften Punkt wird der Support des sogenannten Device Tree aktiviert, der es können Sie das in diesem Menü mit dem dritten Punkt (siehe Abbildung 2.37, 3) einstel- dem Benutzer erlaubt, einfacher zusätzliche Hardware in das Betriebssystem zu integ- len. Der zweite Punkt legt die Sound-Ausgabe fest auf den Kopfhöreranschluss 2. Ich rieren (z. B. Treiber für eigene Schaltungen). lasse die Einstellung auf Auto 1, damit ich etwas flexibler bin. Wenn Sie diese Option Der Device Tree ist eine Datei, die die Hardware beschreibt, auf der das Linux-Betriebs- auswählen, dann ist der Raspberry Pi in der Lage, den Ton über den Kopfhöreranschluss system arbeiten soll. Diese Eigenschaft eines Linux-Betriebssystems macht es erst mög- oder über HDMI auszugeben. Damit reagiert Ihr Raspberry Pi dann flexibel auf das lich, dass Linux auf vielen unterschiedlichen Hardwareplattformen funktioniert, ohne Gerät, das Sie gerade angeschlossen haben und nutzen möchten. für jede Plattform ein neues Betriebssystem erzeugen zu müssen. Der zehnte und letzte Punkt führt ein Update des Tools raspi-config durch. Dieses Vielmehr wird ein »Standard«-Linux-System gebaut, das die ganzen notwendigen Update lassen wir wie in Abbildung 2.38 einmal durchlaufen, um die Version auf einen Informationen (CPU-Art, Schnittstellen etc.) aus dem Device Tree extrahiert. aktuellen Stand zu bringen.

Der kompilierte Device Tree des Raspberry Pi ist im /boot-Verzeichnis zu finden und heißt bcm2709-rpi-2-b.dtb (dtb – device tree blob).

Weitere Informationen über den Device Tree Wenn Sie weitere Informationen über das Konzept des Device Tree haben möchten und sich nicht scheuen, einen englischen Text zu lesen, dann können Sie die Internetseite http://devicetree.org/Device_Tree_Usage besuchen. Dort finden Sie eine ausführliche Anleitung, wie sich ein Device Tree zusammensetzt. Abbildung 2.38 Der Update-Vorgang wird ausgeführt.

50 51 2 Schnellstart: Die erste Inbetriebnahme

Damit sind die Einstellungen mithilfe des Tools abgeschlossen. Mit der Auswahl von Finish beenden Sie das Tool, und eine anschließende Frage nach einem Reboot (siehe Abbildung 2.39) bestätigen Sie mit Yes.

Abbildung 2.39 Einmal neu starten bitte.

Der Reboot wird etwas länger dauern, da der Raspberry Pi das Dateisystem noch auf die gesamte SD-Karte ausweitet. Sobald der Vorgang abgeschlossen ist, erscheint der Bild- schirm aus Abbildung 2.40.

Abbildung 2.40 Der Anmeldebildschirm nach dem ersten Reboot

52 Kapitel 4 Wichtige Konsolenbefehle im Griff

Jetzt, da Sie wissen, wie Sie den Desktop aufrufen und was Sie dort alles finden, beschäftigen wir uns mit der Konsole – dem Herzstück eines Linux-Systems.

Nachdem Sie die Desktop-Umgebung kennengelernt haben, schenken wir der Konsole ein bisschen mehr Aufmerksamkeit. Wenn Sie bisher stets eine grafische Benutzerober- fläche benutzt haben und an diese gewöhnt sind, werden Sie mit der Umstellung auf eine textbasierte Bedienung am Anfang vielleicht ein paar Probleme haben.

Sobald Sie sich aber etwas mit der Konsole vertraut gemacht haben, werden Sie feststel- len, dass dadurch die Übersicht über die ablaufenden Prozesse deutlich besser ist als bei einer grafischen Oberfläche. Hinter einer grafischen Oberfläche können viele Abläufe versteckt werden, aber wenn Sie über eine Konsole direkt mit dem Kernel »reden«, bleibt Ihren Augen nicht viel verborgen, und Sie wissen immer genau, was das System gerade tut.

Bevor Sie anfangen können, mit der Konsole zu arbeiten, müssen Sie erst einmal dort hingelangen. Wenn Sie den Raspberry Pi booten, landen Sie wenige Momente später bei einem Login-Bildschirm. Melden Sie sich dort an, können Sie direkt mit der Konsole weiterarbeiten.

Aber was tun, wenn Sie bereits auf dem Desktop sind? Dann haben Sie zwei Möglichkei- ten, zurück zur Konsole zu kommen:

̈ Beenden Sie den Display Manager (wie Sie das machen, lesen Sie in Abschnitt 3.1, »Wo ist der Desktop überhaupt?«). ̈ Öffnen Sie das Programm LXTerminal.

Bei beiden Methoden erscheint anschließend der Bildschirm aus Abbildung 4.1 (hier jetzt mit LXTerminal).

Übrigens: Die Konsole, die direkt nach dem Booten erscheint, unterscheidet sich nicht vom LXTerminal, darum ist es egal, welche Konsole Sie verwenden.

71 4 Wichtige Konsolenbefehle im Griff 4.1 Anlegen eines neuen Benutzerkontos und Ändern des Passwortes

4.1 Anlegen eines neuen Benutzerkontos und Ändern des Passwortes

Als Erstes beschäftigen wir uns damit, wie Sie einen neuen Benutzer anlegen und wie Sie anschließend sein Passwort ändern. Wie Sie inzwischen wissen, existieren bereits zwei Benutzer auf dem Raspberry Pi: der Benutzer pi und der Systemadministrator root.

Abbildung 4.1 Ein neues Konsolenfenster Aber wofür benötigen Sie überhaupt mehrere Nutzer? In erster Linie sind mehrere Benutzer sinnvoll, wenn der Computer von mehreren Anwendern benutzt wird. Hintergrundfarbe der Konsole ändern Dadurch erreichen Sie, dass jeder Benutzer nur auf seine eigenen Daten zugreifen darf. Auf dem Raspberry Pi haben die Benutzerkonten noch eine weitere Funktion: Zur besseren Lesbarkeit kann die Hintergrundfarbe der Konsole eingestellt werden. Ich habe mich für einen hellgelben Hintergrund mit dunkler Schrift entschieden. Dazu kli- Bestimmte Dienste legen einen neuen Benutzer an, über den sie dann arbeiten. Bei- cken Sie einfach im Reiter der Konsole auf Edit Ⴇ Preferences. In dem Menü, das sich spiele sind der Webserver Apache oder lighttpd. Diese beiden Programme arbeiten mit dann öffnet, können Sie unter Background die Hintergrundfarbe anpassen. dem User www-data. Der Grund, wieso manche Dienste neue Benutzer anlegen, ist der- selbe wie bei normalen Benutzern: So wird sichergestellt, dass nur der Dienst selbst auf die Daten zugreifen darf; zusätzlich können für jeden Benutzer die Zugriffsrechte indi- viduell gesetzt werden.

So wird erreicht, dass Dienste nur auf die eigenen Dateien zugreifen dürfen, und es wird verhindert, dass fremde Programme unerlaubt Dateien lesen. Außerdem werden auf diese Weise Sicherheitslücken in den Anwendungen nicht direkt eine Gefahr für das Betriebssystem, weil sich ein unerlaubter Zugriff nicht auf das komplette Betriebssys- tem ausbreiten kann. In der Datei /etc/passwd sind alle registrierten Benutzer aufgelis- tet und einsehbar (siehe Abbildung 4.3).

Abbildung 4.2 Zum Ändern der Farbe geben Sie einfach verschiedene Werte für »Red«, »Green« und »Blue« ein. Anschließend bestätigen Sie Ihre Eingabe mit einem Klick auf »OK«. Abbildung 4.3 Alle Benutzer im Überblick

72 73 4 Wichtige Konsolenbefehle im Griff 4.1 Anlegen eines neuen Benutzerkontos und Ändern des Passwortes

In dieser Datei stehen auch noch einige Zusatzinformationen über die Benutzerkonten, Anschließend müssen Sie die Eingabe wiederholen. Dies dient der Sicherheit, da auf z. B. ob die Benutzer berechtigt sind, eine Shell (Kommandozeile) zu öffnen und darin zu diese Weise Schreibfehler während der Passworteingabe vermieden werden können. arbeiten.

Wie legen Sie nun aber einen neuen Benutzernamen an? Einen neuen Benutzer können Groß- und Kleinschreibung beachten Sie nur über den Systemadministrator root anlegen. Im Moment sind Sie aber als Benut- Linux unterscheidet – im Gegensatz zu Windows – zwischen Groß- und Kleinschrei- zer pi unterwegs, wie Sie in der Konsole erkennen (siehe Abbildung 4.4). bung bei den Benutzernamen!

Wenn das Passwort erfolgreich geändert wurde, erscheint die Meldung aus Abbil- dung 4.6.

Abbildung 4.4 Der aktuelle Benutzer und der Hostname

Dabei gibt der Name vor dem @ den aktuellen Benutzernamen an und der Name dahin- ter den Namen des Raspberry Pi, wie Sie ihn in Kapitel 2, »Schnellstart: Die erste Inbe- triebnahme«, über das Menü Hostname vergeben haben. Auf Abbildung 4.4 bezogen Abbildung 4.6 Das Passwort wurde erfolgreich geändert. heißt dies, dass der aktuelle Benutzer pi ist und der Raspberry Pi den Namen Rasp- berryPi hat. Für den Benutzer root sollten Sie ein Passwort mit Sonderzeichen, Zahlen und Buchsta- ben wählen, um die maximale Sicherheit zu gewährleisten. Wer die Kontrolle über die- Um zum root-Account zu wechseln, geben Sie Folgendes in die Konsole ein: sen Benutzer erlangt, hat die Kontrolle über das System! sudo su Jetzt können Sie damit beginnen, ein neues Benutzerkonto anzulegen. Bei der Namens- gebung müssen Sie allerdings ein paar Regeln einhalten: Der Befehl su (switchuser) ermöglicht das Wechseln zu einem anderen Benutzer. Wenn nach dem Befehl su kein Benutzer angegeben wird, wechseln Sie automatisch zum ̈ Der Name darf ausschließlich aus Kleinbuchstaben bestehen; Benutzer root (siehe Abbildung 4.5). ̈ Als weitere Zeichen können auch die Zahlen 0 bis 9, der Bindestrich (-) oder der Unterstrich (_) enthalten sein. ̈ Am Ende des Namens dürfen Sie ein $ einfügen. ̈ Jeder Name darf nur einmal vorhanden sein. Abbildung 4.5 Der Wechsel war erfolgreich. Als Beispiel erstellen wir den Benutzer neueruser. Dieses Benutzerkonto dient nur zur Demonstration. Es soll später keinen wirklichen Zweck erfüllen, und wir werden es Bevor Sie weitermachen, legen Sie ein Passwort für dieses Konto fest. Um das Passwort daher am Ende des Abschnitts wieder löschen. Um das Benutzerkonto und das dazuge- des aktuellen Benutzers zu ändern, geben Sie den Befehl hörige Homeverzeichnis zu erstellen, geben Sie den folgenden Befehl in die Konsole ein: passwd adduser neueruser

in die Konsole ein. Normalerweise erscheint als Nächstes eine Abfrage nach dem aktuel- Im nächsten Schritt werden Sie aufgefordert, ein Passwort einzugeben, und danach wer- len Passwort. Da der Benutzer root aber bisher noch über kein Passwort verfügt, entfällt den Sie nach ein paar Benutzerinformationen gefragt, die allerdings nicht so wichtig diese. Wenn Sie in der Abfrage das aktuelle Passwort erfolgreich eingegeben haben sind und die Sie ignorieren können. Überspringen Sie sie also nach und nach, indem Sie (sofern eins vorhanden ist), werden Sie aufgefordert, ein neues Passwort einzugeben. (¢) drücken, und bestätigen Sie am Ende mit (Y). Sobald Sie damit fertig sind, erhalten

74 75 4 Wichtige Konsolenbefehle im Griff 4.1 Anlegen eines neuen Benutzerkontos und Ändern des Passwortes

Sie eine Bestätigung vom Betriebssystem, dass das Benutzerkonto angelegt worden ist Anschließend versuchen Sie, mit dem Befehl (siehe Abbildung 4.7). echo "Hallo" >> /home/pi/Desktop/Hallo.txt

den Text »Hallo« auf dem Desktop in eine Datei Hallo.txt des Benutzers pi zu schreiben. Keine Angst, den Befehl echo werde ich in Abschnitt 4.5, »Wie bearbeite ich Dateien?«, genauer erklären. Es erscheint nun die Meldung aus Abbildung 4.8.

Abbildung 4.8 Da fehlen wohl die Schreibrechte …

Wie ist diese Meldung zu deuten? Mit dem Befehl haben Sie versucht, einen Text in eine Datei auf dem Desktop eines anderen Benutzers zu schreiben. Da der Benutzer neuer- user und der Benutzer pi, auf dessen Desktop Sie schreiben wollten, in unterschiedli- Abbildung 4.7 Ein neuer Benutzer wurde angelegt. chen Gruppen sind, besitzt der User neueruser keine Rechte, auf dessen Desktop zu schreiben. Wir wollen aber nicht, dass der Benutzer solch eingeschränkte Rechte hat. In dem Moment, als der Benutzer angelegt wurde, sind drei Dinge passiert: Deswegen weisen wir den Benutzer einer Gruppe zu. Als Erstes müssen wir wieder zum ̈ Der Benutzer neueruser wurde erstellt. Benutzer root wechseln: ̈ Die Hauptgruppe neueruser des Benutzers wurde angelegt. su root ̈ Das Homeverzeichnis /home/neueruser wurde erzeugt und eingerichtet. In der Datei /etc/group sind alle bereits vorhandenen Gruppen aufgelistet. Den Inhalt Dies hat den Zweck, dass alle Dateien, die im Homeverzeichnis des Benutzers neuer- dieser Datei können Sie mit dem Befehl user gespeichert werden, eindeutig diesem Benutzer zugewiesen werden können. Dadurch wird gewährleistet, dass nur der Benutzer neueruser auf seine Dateien zugrei- nano /etc/group fen darf, während er selbst auf keine anderen Dateien zugreifen darf, weil er in keiner weiteren Gruppe ist, die Zugriff auf andere Dateien hat. Schauen wir uns dazu ein klei- öffnen und sich anzeigen lassen (siehe Abbildung 4.9). nes Beispiel an. Da Sie den Benutzer neueruser nun angelegt haben, wechseln Sie auf diesen Benutzer:

su neueruser

Ein Passwort brauchen Sie nicht einzugeben, da der User root ohne Passwort wechseln darf. Hierbei sollten Sie beachten, dass Sie beim Wechseln des Benutzers durch den Befehl su mit dem neuen Benutzer im selben Verzeichnis bleiben wie mit dem alten Benutzer! Dies ist unter Umständen problematisch, da der neue Benutzer sich dann in einem Verzeichnis aufhalten könnte, für das er keine Rechte besitzt. (Das sehen Sie deutlich in Abbildung 4.8: Der Benutzer neueruser befindet sich im Homeverzeichnis des Benutzers pi.) Abbildung 4.9 Alle Gruppen in der Übersicht

76 77 4 Wichtige Konsolenbefehle im Griff 4.2 Wie ist das Dateisystem aufgebaut?

Mit der Tastenkombination (Strg) + (X) schließen Sie die Datei anschließend wieder. Anschließend versuchen wir erneut, die Textdatei zu beschreiben:

Der Einfachheit halber fügen wir den Benutzer neueruser derselben Gruppe wie den echo "Hallo" >> /home/pi/Desktop/Hallo.txt Benutzer pi hinzu. Dadurch haben beide Benutzer auf dieselben Dateien Zugriffsrechte. Um einen Benutzer einer Gruppe zuzuweisen, verwenden Sie den Befehl usermod. Das Wenn alles erfolgreich war, sollte das Ergebnis so wie in Abbildung 4.10 aussehen. folgende Beispiel fügt den Benutzer neueruser zusätzlich der Gruppe pi hinzu:

usermod –a –G pi neueruser

Dabei sind die Parameter -a und -G die Optionen, um den Benutzer einer Gruppe (hier pi) hinzuzufügen, ohne ihn dabei aus den anderen Gruppen zu entfernen. Für diese Abbildung 4.10 Alles hat geklappt. Funktion müssen Sie die Parameter -a und –G immer zusammen angeben! Der Parame- ter –G teilt dem Betriebssystem mit, dass der Benutzer zusätzlich zu seiner Initialgruppe Lassen Sie mich kurz zusammenfassen, was Sie eben gelernt haben: einer Liste von Gruppen zugewiesen werden soll. In dem obigen Beispiel besteht die ̈ Mit dem Befehl adduser legen Sie einen neuen Benutzer an. Liste von Gruppen nur aus der Gruppe pi. Vergessen Sie dabei den Parameter –a, wird ̈ Der Befehl passwd dient zum Ändern des Passworts. der Benutzer anschließend aus allen anderen Gruppen entfernt! ̈ Mittels su wechseln Sie zwischen verschiedenen Benutzern. Jetzt müssen Sie noch das Homeverzeichnis des Benutzers pi für Gruppenmitglieder ̈ Mit dem Befehl usermod -a -G fügen Sie einen Benutzer einer Gruppe hinzu. beschreibbar machen. Dies geschieht mit dem folgenden Befehl: ̈ Der Befehl chmod ändert die Zugriffsrechte eines Verzeichnisses oder einer Datei. chmod –R g+w /home/pi Wer den Benutzer neueruser nicht weiterverwenden will, kann diesen mithilfe von Mithilfe des Befehls chmod werden die Zugriffsrechte des angegebenen Verzeichnisses deluser neueruser ganz einfach wieder löschen. Damit Sie diesen Befehl benutzen kön- oder der angegebenen Datei (in diesem Beispiel /home/pi) geändert. Das -R ist ein nen, müssen Sie aber als Benutzer root angemeldet sein. Befehlsparameter und gibt an, dass auch alle Unterverzeichnisse einbezogen werden sollen, weil sonst nur der Ordner /home/pi neue Schreibrechte bekommt, aber nicht der Ordner /home/pi/Desktop. Mit dem g wird dabei signalisiert, dass es sich um die Grup- 4.2 Wie ist das Dateisystem aufgebaut? penzugriffsrechte handelt, und das +w besagt, dass die Berechtigung zum Schreiben (w) In Kapitel 2, »Schnellstart: Die erste Inbetriebnahme«, haben wir uns bereits mit dem hinzugefügt werden soll. Mit dem Parameter –w würden die Schreibrechte wieder ent- Verzeichnisbaum des Betriebssystems beschäftigt, und Sie wissen nun, wie das fernt. Betriebssystem in etwa aufgebaut ist. In diesem Abschnitt beschreibe ich die Art und Aber warum haben wir das nicht beim ersten Versuch für alle Benutzer gemacht? Der Weise, wie das Betriebssystem die Daten ablegt, etwas genauer. Zudem werden wir uns Grund ist ganz einfach: Wenn wir bei dem Verzeichnis das Schreibbit für die öffentliche das Thema Speichererweiterung per USB-Stick/USB-Festplatte und die Formatierung Berechtigung setzen, können wir nicht mehr kontrollieren, wer alles in das Verzeichnis dieser Speichermedien ansehen. schreibt. Aus diesem Grund weisen wir nur der Gruppe eine Schreibberechtigung zu, da Aber wie genau speichert ein Computer eigentlich Daten? Alle Daten, die ein Computer ihr ja nicht jeder Benutzer angehört. speichern und/oder verarbeiten soll, werden in sogenannten Bits gespeichert. Ein Bit Schauen wir mal, ob die Änderungen das Problem gelöst haben. Hierfür wechseln wir kann dabei entweder gesetzt sein (1) oder nicht gesetzt sein (0). Alle Informationen in wieder zum Benutzer neueruser: einem Computer werden also in Bits umgewandelt. Ein Bit können Sie sich vereinfacht wie einen Schalter vorstellen: Ist der Schalter umgelegt, ist das Bit gesetzt. Jeder der su neueruser Schalter steht dann für eine bestimmte Information.

78 79 4 Wichtige Konsolenbefehle im Griff 4.2 Wie ist das Dateisystem aufgebaut?

Natürlich ist es etwas unhandlich, zu sagen: »Meine Festplatte besitzt 8.388.608 Bits Nach diesem groben Überblick über das Speichern der Daten auf der SD-Karte schauen Speicherkapazität.« Aus diesem Grund werden die Bits in Pakete »verpackt«: 8 Bits erge- wir uns das Ganze nun genauer an. Dafür öffnen Sie ein Konsolenfenster und melden ben 1 Byte, 1024 Bytes ergeben 1 Kilobyte (kB) etc. In Tabelle 4.1 sehen Sie eine kleine Auf- sich als Benutzer root an. Jetzt schauen wir uns mit dem Befehl df die Speicherbelegung listung der Paketgrößen: ein wenig genauer an:

df –h Name Größe

1 Byte 8 Bit Der Parameter –h (»h« – human) sorgt dafür, dass die Speicherbelegung in einem für den Menschen lesbaren Format ausgegeben wird (siehe Abbildung 4.11). 1 Kilobyte (kB) 1024 Byte

1Megabyte (MB) 1024 Kilobyte

1 Gigabyte (GB) 1024 Megabyte

1 Terabyte (TB) 1024 Gigabyte

1 Petabyte (PB) 1024 Terabyte Abbildung 4.11 Der Aufbau des Dateisystems des Raspberry Pi Tabelle 4.1 Eine kurze Übersicht der Bytegrößen

Aber was sehen wir jetzt genau? Dieser Befehl gibt die komplette Speicherverteilung im Jetzt sind natürlich nicht alle Daten wild auf dem Speichermedium verteilt, vielmehr Dateisystem wieder. Außerdem gibt er ein paar nützliche Informationen über den sind sie alle schön geordnet abgespeichert, sodass der Computer sie möglichst schnell belegten und den freien Speicherplatz aller Speichermedien aus. findet. Diese Ordnung der Daten nennt sich Dateisystem. Ein Computer kann viele ver- schiedene Dateisysteme verwenden, die alle unterschiedliche Vor- und Nachteile Die erste Spalte gibt den Speicher an, die zweite die Gesamtgröße des Speichers, die haben. Diese hier aufzuzählen und zu beschreiben, würde den Rahmen des Buches Spalten drei bis fünf liefern ein paar Informationen über die Speicherbelegung, und die sprengen. Für die Benutzung des Raspberry Pi reicht es zu wissen, dass das Dateisystem letzte Spalte besagt, an welchem Punkt der Speicher gemountet oder auch eingehängt auf der SD-Karte ein ext-Dateisystem ist. Dieses Dateisystem unterscheidet sich in zwei ist. Schauen wir uns dies anhand der ersten Zeile genauer an: wichtigen Punkten vom NTFS-Dateisystem eines Windows-Computers: ̈ In der ersten Spalte, Filesystem, sehen Sie, dass es sich bei dem Dateisystem um das ̈ Ein NTFS-Dateisystem ist nicht in der Lage, die Rechteverwaltung eines Linux-Sys- rootfs handelt, das beim Booten als Erstes geladen wird. Dieses Dateisystem enthält tems zu unterstützen. das Betriebssystem und befindet sich immer auf der ersten Partition des Datenträ- gers (Partition 0). Etwas Ähnliches findet sich auch auf jedem Windows-Rechner – ̈ Der Aufbau der Dateisysteme ist unterschiedlich. Ein NTFS-Dateisystem verwendet dort ist es die Partition :\, die das Betriebssystem enthält. Laufwerksbuchstaben wie z. B. C:\, die einen bestimmten Bereich im Speicherme- ̈ Die zweite Spalte, Size, gibt die Gesamtgröße des Dateisystems an. In dem Beispiel dium darstellen. Ein ext-Dateisystem verwendet einen durchgehenden Verzeichnis- beträgt die Größe 7,1 GB, was in etwa die Größe der SD-Karte ist. Dies ist auch logisch, baum, wie Sie ihn bereits in Abschnitt 2.3 kennengelernt haben. da beim Aufspielen des Images nur zwei Partitionen angelegt werden: einmal das Das Schöne an einem Linux-Betriebssystem ist, dass es so gut wie jeden Dateisystemtyp rootfs und dann die Bootpartition. Da die Bootpartition immer eine Größe von 56 MB unterstützt. So können Sie problemlos ein Speichermedium mit dem Windows-Datei- besitzt, wird der komplette restliche Speicher dem rootfs zugeschrieben. system NTFS an ein Linux-System anschließen und nutzen. Andersherum ist dies leider ̈ Die Spalten drei bis fünf zeigen die Auslastung des Dateisystems, wobei die Spalte nicht so einfach möglich. drei Used angibt, wie viel des Gesamtspeicherplatzes bereits genutzt wird. In Spalte vier, Avail, erfahren Sie den verbleibenden Speicherplatz, und in Spalte fünf, Use%, lesen Sie den belegten Speicher als Prozentzahl ab. Auf die oben gezeigte SD-Karte

80 81 4 Wichtige Konsolenbefehle im Griff 4.2 Wie ist das Dateisystem aufgebaut?

übertragen, bedeutet dies, dass 3,5 GB belegt und 3,4 GB frei sind. Das ergibt eine Spei- Dasselbe finden wir bei der Ausgabe des Befehls df –h wieder, allerdings erscheint dort cherbelegung von 51 %. die Anzeige aus Abbildung 4.13. ̈ Die letzte Spalte, Mounted on, zeigt den Mountpunkt des Dateisystems an. Damit unter einem Linux-System ein Speichermedium wie ein USB-Stick, eine SD-Karte oder eine Festplatte genutzt werden kann, muss dieses gemountet werden. Das Abbildung 4.13 Um was für einen Datenträger handelt es sich? Mounten ist ein Vorgang, bei dem der Datenträger dem Betriebssystem verfügbar gemacht wird. Das heißt, an einem bestimmten Punkt bzw. in einem bestimmten Mithilfe des eben Gelernten sind Sie in der Lage, diese Zeile zu übersetzen. Versuchen Pfad im Dateisystem wird ein Link auf diesen Speicher angelegt. So gelangen Sie Sie es einmal. Welche Informationen können Sie aus dieser Zeile herauslesen? Die durch diesen Link auf das Speichermedium. Wir werden uns im Laufe dieses Ab- Lösung dazu werde ich Ihnen im Folgenden präsentieren. schnitts noch mit dem Einbinden eines USB-Sticks an den Raspberry Pi beschäftigen. Am Namen mmcblk erkennen Sie, dass es sich bei dem Gerät um eine Speicherkarte Dort werde ich das Thema Mounten noch etwas genauer erklären. handeln muss. Die 0 weist darauf hin, dass es sich um die erste Speicherkarte im System Natürlich möchte man nicht alle Daten im rootfs speichern. Aus diesem Grund erstellen handelt, und das p1 steht für die zweite Partition auf dem Datenträger. Diese Partition wir jetzt eine neue Partition auf einem externen Datenträger. hat eine Größe von 56 MB, wovon 9,5 MB oder 17 % belegt sind. Bei dieser Partition han- Aber vorab ein paar Worte zu den Partitionsnamen unter Linux. Jeder Datenträger delt es sich um die Bootpartition, die auch auf einem Windows-Rechner erkannt wird, bekommt unter Linux einen Namen. Speicherkarten werden meist mit mmcblk oder wenn die SD-Karte in den Kartenleser geschoben wird. Diese Partition enthält alle mmc, USB-Sticks mit sda und Festplatten mit hd gekennzeichnet. Wird ein Datenträger Dateien, die für das Starten des Betriebssystems notwendig sind. angeschlossen, wird er im Verzeichnis /dev aufgelistet und anschließend mit dem Zurück zu unserem Vorhaben, eine neue Partition zu erstellen: Da Sie nun wissen, wie Zusatzbuchstaben a versehen (Speicherkarten mit der Zahl 0). Alle weiteren Speicher Speichermedien unter Linux benannt werden, sind Sie in der Lage, unser Vorhaben in gleichen Typs werden fortlaufend benannt. Anschließend folgt eine Zahl (bzw. ein p[x] die Tat umzusetzen. Verwenden wir als externen Datenträger einen USB-Stick. Diesen bei Speicherkarten) für die verschiedenen Partitionen auf dem Speicher. Bei einer Parti- stecken Sie in einen der beiden USB-Ports. Anschließend schauen Sie nach, wie der USB- tion handelt es sich um einen Teilbereich des Gesamtspeichers. Die Größe einer Parti- Stick benannt wurde. Hierfür geben Sie ls /dev in die Konsole ein und suchen nach tion können Sie festlegen, sodass zwei Partitionen nicht immer gleich groß sein einem Gerät namens sda oder so ähnlich (wie Sie es oben in Abbildung 4.12 erkennen). müssen. So ist es z. B. theoretisch möglich, eine 20-GB-Festplatte mit drei Partitionen Da Sie den Namen des Sticks nun kennen, können Sie auf ihm eine neue Partition erstel- auszustatten, wovon eine Partition 15 GB, die andere 2 GB und die dritte 3 GB groß ist. len. Um eine neue Partition anzulegen, verwenden Sie das Tool fdisk, das Sie für die Par- (Natürlich sind solch kleine Festplatten heute gar nicht mehr zu bekommen.) titionierung des USB-Sticks folgendermaßen aufrufen:

Schauen wir uns dies mithilfe der Abbildung 4.12 an. Hier habe ich zwei USB-Sticks, die fdisk /dev/sda ich vorher an einem Windows-Rechner formatiert habe, an die beiden USB-Ports mei- nes Raspberry Pi gesteckt. Der erste Stick wurde mit sda und der zweite Stick mit sdb Nach dem Aufruf fragt das Tool nach dem nächsten Schritt (siehe Abbildung 4.14). bezeichnet. Da jeder Stick eine Partition besitzt, wird diese Partition mit einer 1 gekenn- zeichnet. Es erscheinen im Verzeichnis /dev also einmal die kompletten USB-Sticks (sda und sdb) und einmal die Partitionen auf den USB-Sticks (sda1 und sdb1).

Abbildung 4.14 Was soll gemacht werden?

Falls auf dem Stick bereits eine Partition vorhanden sein sollte, sprich, wenn ein Gerät namens sda1 vorhanden ist, löschen wir sie erst einmal, da sonst wahrscheinlich keine neue Partition erstellt werden kann. Eine Partition löschen Sie, indem Sie als Befehl erst Abbildung 4.12 Die beiden USB-Sticks im Verzeichnis »/dev« ein d und dann die Partitionsnummer, also die 1, eingeben (siehe Abbildung 4.15).

82 83 4 Wichtige Konsolenbefehle im Griff 4.2 Wie ist das Dateisystem aufgebaut?

betragen, so müssen Sie dies in der folgenden Berechnung berücksichtigen. Wenn nun eine 1 GB große Partition erstellt werden soll, benötigen Sie also wie viele Sektoren?

1 GB = 1.024 MB = 1.024 × 1.024 kB = 1.024 × 1.024 × 1.024 Byte = 1.073.741.824 Byte 1.073.741.824 Byte / 512 Byte Sektorgröße = 2.097.152 Sektoren

Diesen Wert geben Sie nun als Endsektor ein. Anschließend müssen die Informationen geschrieben werden. Hierfür geben Sie einfach den Befehl w in die Konsole ein (siehe Abbildung 4.17). Abbildung 4.15 Die Partition wird gelöscht.

Gefahr von Datenverlust Wenn die Partition gelöscht wird, werden alle gespeicherten Daten mit gelöscht!

Sie schließen das Löschen ab, indem Sie w eingeben. Anschließend beginnen Sie mit dem Anlegen einer Partition. Hierfür rufen Sie das Tool fdisk erneut auf. Um eine neue Partition anzulegen, geben Sie ein n ein und signalisieren anschließend mit p, dass eine primäre Partition angelegt werden soll. Abbildung 4.16 zeigt dies.

Abbildung 4.17 Die neue Partition wurde angelegt.

Jetzt ist die Partition zwar erstellt, aber sie verfügt noch über kein Dateisystem. Deswe- gen muss sie noch formatiert werden. Es empfiehlt sich, für den Datenträger dasselbe Abbildung 4.16 Eine neue Partition wird angelegt. Dateisystem wie auf der SD-Karte zu verwenden, also ext3. Um den USB-Stick zu forma- tieren, geben Sie folgenden Befehl ein:

Geben Sie jetzt eine Partitionsnummer ein. Da in diesem Beispiel noch keine Partition mkfs -t ext3 /dev/sda1 vorhanden ist, wähle ich Partition 1 aus. Alternativ können Sie auch mit einem Druck auf (¢) den Default-Wert, also den Standardwert, verwenden. Der nächste Schritt Der Parameter –t (»t« – type) gibt dabei das Dateisystem an, das auf den angegebenen besteht in der Definition des Startsektors der Partition. Speicher, hier /dev/sda1, geschrieben werden soll. Die Formatierung dauert nicht allzu Ein Speicher ist in viele kleine und gleich große Teilbereiche aufgeteilt, die sich Sektor lange, und am Ende erscheint der Text aus Abbildung 4.18. Jetzt können Sie den USB- nennen. Für den Startsektor verwenden Sie den Default-Wert. Danach bestimmen Sie Stick nutzen. Dafür müssen Sie ihn mounten. Zum Mounten eines Speichermediums den Endsektor. Über die Angaben der Start- und Endsektoren bestimmen Sie die Größe dient der Befehl mount. Als Parameter geben Sie den Datenträger an und den Zielort, an der Partition. den er gemountet werden soll:

Unter Linux lässt sich die Sektorgröße wie folgt auslesen: mount /dev/sda1 /mnt

cat /sys/block/mmcblk0/queue/hw_sector_size Nun wird der Stick in das Verzeichnis /mnt gemountet. Aber was heißt das jetzt genau? Beim Mountvorgang wird der USB-Stick mit dem Verzeichnis /mnt verlinkt, was bedeu- Dieser Wert wird in den meisten Fällen 512 betragen, sprich, ein Sektor ist 512 Byte groß. tet, dass das Verzeichnis /mnt den genauen Inhalt des USB-Sticks beinhaltet. Allerdings Dies ist durch die Verwendung einer SD-Karte gegeben. Sollte der Wert jedoch nicht 512

84 85 4 Wichtige Konsolenbefehle im Griff 4.2 Wie ist das Dateisystem aufgebaut?

werden die Dateien nur symbolisch angezeigt und beinhalten lediglich eine Weiterfüh- Jetzt warten Sie, bis das Betriebssystem den Stick entmountet hat. Sobald das Betriebs- rung auf die Originaldateien auf dem USB-Stick. Das Verzeichnis /mnt dient als eine Art system damit fertig ist, erscheint der Konsolenpromt wieder und Sie können den Stick Weiterleitung auf den USB-Stick. gefahrlos abziehen.

Falls Sie das Dateisystem zu Beginn nicht über das Menü raspi-config ausgedehnt und damit den ersten Schritt übersprungen haben, so können Sie auf dieselbe Weise den restlichen Platz auf der SD-Karte in einer Partition unterbringen. Hierfür müssen Sie allerdings erst den Endsektor der letzten Partition herausfinden. Dies geschieht mit dem Befehl:

fdisk -l /dev/mmcblk0

Der Parameter –l (»l« – list) sorgt dafür, dass die Partitionstabellen des angegebenen Datenträgers angezeigt werden. Die Ausgabe sieht dann so aus wie in Abbildung 4.20.

Abbildung 4.18 Die Formatierung ist abgeschlossen. Abbildung 4.20 Der Endsektor der zweiten Partition Nachdem wir den Stick gemountet haben, lassen wir uns die Speicherbelegung wie in Abbildung 4.19 anzeigen. Die markierte Sektorgröße + 1 ergibt dann den Startsektor der neuen Partition (siehe Abbildung 4.21).

Abbildung 4.19 Die Partition ist einsatzbereit.

Bevor Sie den USB-Stick entfernen, ist es ratsam, den Mountpunkt zu entfernen, um keine Fehler im Dateisystem des USB-Sticks zu erzeugen. Denn wenn das Betriebssys- tem gerade noch damit beschäftigt sein sollte, Daten auf den Stick zu schreiben, dann kann es passieren, dass diese Daten nicht korrekt abgespeichert beziehungsweise beschädigt werden. Um den Stick zu entmounten, wird der Befehl umount verwendet: Abbildung 4.21 Auf der SD-Karte wird eine neue Partition erstellt. umount /mnt

86 87 4 Wichtige Konsolenbefehle im Griff 4.3 Neue Software über die Konsole installieren

Jetzt müssen Sie die Partition noch formatieren. Dies geschieht auf die gleiche Weise 4.3 Neue Software über die Konsole installieren wie bei dem USB-Stick, nur dass Sie als Gerät jetzt /dev/mmcblk0p3 angeben anstelle von /dev/sda1. Je nach Größe der Partition dauert dieser Vorgang natürlich etwas länger als Früher oder später gelangt jeder Benutzer an einen Punkt, an dem er neue Software bei dem USB-Stick. benötigt, um weiterarbeiten zu können, z. B. einen Webserver. Sie sind in Kapitel 3, »Den Desktop kennenlernen«, zwar bereits dem Raspberry-Pi-Store begegnet, aber die- Natürlich wäre es ziemlich unklug, wenn jede Partition bei einem Neustart des Rechners ser ist mit einer grafischen Oberfläche verknüpft, was eine Benutzung in der Konsole neu gemountet werden soll. Deswegen automatisieren wir diesen Vorgang, indem wir nicht möglich macht. Zudem stellt der Raspberry-Pi-Store nur Software zur Verfügung, mit dem Befehl nano /etc/fstab die Datei /etc/fstab öffnen, die für das automatische die für den Raspberry Pi entwickelt wurde. Was also tun, wenn Sie eine allgemeine Mounten von Datenträgern zuständig ist. Anschließend passen Sie die Datei so an wie Linux-Software benötigen? in Abbildung 4.22. Für diesen Anwendungsfall gibt es im Debian-Betriebssystem, von dem das Betriebssys- tem Raspbian Wheezy abstammt, ein Tool namens Advanced Packaging Tool oder kurz APT. Mithilfe dieses Tools ist es möglich, neue Software, in Form sogenannter Pakete, aus dem Internet herunterzuladen und zu installieren. All dies geschieht vollautoma- tisch und ohne das Zutun einer grafischen Oberfläche. Abbildung 4.22 So sieht die Änderung aus. Wenn Sie sich in Kapitel 3 das Startmenü genauer angeschaut haben, dann werden Sie Other Aptitude Den Mountpunkt /mnt können Sie natürlich beliebig wählen. Nach einem Reboot steht festgestellt haben, dass es unter einen Programmeintrag namens Package Manager (text) die Partition dann zur Verfügung und taucht bei der Übersicht durch den Befehl df –h gibt (siehe Abbildung 4.23). auf.

Ich fasse abschließend noch einmal zusammen, was Sie in diesem Abschnitt gelernt haben:

̈ Mit dem Befehl df –h lässt sich die Speicherbelegung aller Datenträger anzeigen. ̈ Massenspeicher werden im Verzeichnis /dev aufgeführt, und zwar mit einem fort- laufenden Buchstaben für jedes Gerät gleichen Typs. Jedes Gerät erscheint als Kom- plettgerät, zusätzlich erscheint jede Partition des Gerätes und wird fortlaufend nummeriert. ̈ Mit dem Befehl fdisk lassen sich Partitionen auf einem beliebigen Datenträger erstellen und löschen. Abbildung 4.23 Die grafische Version des Tools APT ̈ Mit dem Befehl mkfs formatieren Sie Datenträger. ̈ Der Speicher eines Datenträgers wird in Sektoren einer bestimmten Größe unterteilt. Die Benutzung des Tools auf der grafischen Oberfläche ist ziemlich selbsterklärend, Eine bestimmte Anzahl an Sektoren definiert eine Partition mit einer bestimmten wenn Sie die Benutzung der konsolenbasierten Version verstanden haben. Am Ende des Größe. Eine Partition ist dabei eine Unterteilung des Gesamtspeichers in einen defi- Abschnitts werde ich aber trotzdem noch einmal kurz auf die grafische Version einge- nierten Teilbereich. hen, um den Abschnitt abzurunden. ̈ Massenspeicher werden mit dem Befehl mount an einem bestimmten Punkt einge- Das Tool APT bietet nicht nur die Möglichkeit, Pakete zu installieren, sondern mit die- bunden und verfügbar gemacht. sem Tool können Sie ein Paket auch wieder deinstallieren sowie Updates installieren. Da dieses Tool Software installiert, benötigt es root-Rechte. Öffnen Sie als Erstes ein Konsolenfenster, und melden Sie sich dann wieder als Benutzer root an.

88 89 4 Wichtige Konsolenbefehle im Griff 4.3 Neue Software über die Konsole installieren

Wir beginnen mit der Installation eines kleinen Tools, das immer wieder nützlich ist, Namen ein »vi« enthalten. Dabei lautet der Name, den ich für die Installation benötige, um Textdateien o. Ä., die von einem Windows-Rechner stammen, in ein Format umzu- einfach »«. Sie sehen, dass Sie viel schneller zum Ziel kommen, wenn Sie eine Such- wandeln, das ein Linux-Rechner lesen kann. Dieses Programm heißt dos2unix. maschine wie Google verwenden und nach etwas wie »Linux Editor vi installieren« Rufen Sie das Tool APT mit folgendem Befehl auf: suchen. Für unsere Installation lautet der Name ganz einfach dos2unix. Der komplette Befehl sieht dann so aus: apt-get apt-get install dos2unix Als Nächstes erwartet das Tool einen Parameter, der ihm sagt, was es tun soll. APT ist sehr mächtig, und falls Sie einmal nicht weiter wissen, können Sie sich die möglichen Nachdem Sie die Taste (¢) gedrückt haben, erscheint das Konsolenbild aus Abbil- Befehle durch die Eingabe von apt-get in der Konsole anzeigen lassen (siehe Abbil- dung 4.25. dung 4.24).

Abbildung 4.25 Das Paket »dos2unix« wird installiert. Abbildung 4.24 Befehlsübersicht des Tools APT Bei vielen Programmen fragt das Betriebssystem zusätzlich nach, ob Sie das Programm In der Übersicht suchen Sie nun den Parameter für die Installation eines neuen Paketes wirklich installieren wollen. Dabei handelt es sich um eine einfache Ja/Nein-Abfrage, die heraus. Um ein neues Paket zu installieren, benötigen Sie den Parameter install, sodass Sie durch Drücken von (Y) bestätigen. Wenige Augenblicke später ist das Paket fertig der bisherige Aufruf heruntergeladen und installiert, wie Sie in Abbildung 4.26 sehen.

apt-get install

lautet. Jetzt weiß das Tool aber noch nicht, was installiert werden soll. Also übergeben Sie dem Tool einen Namen. Da der Name für das Tool nicht automatisch auch der Pro- grammname ist, müssen Sie ihn suchen. Eine Möglichkeit ist der Befehl:

apt-cache search

Die Liste ist dann aber mehr oder weniger lang, und es ist nicht sonderlich effektiv, in einer langen Liste nach dem richtigen Namen zu suchen. Ein kurzes Beispiel: Wenn ich den Editor vi installieren möchte, kann ich als Programmnamen »vi« eingeben. Das Ergebnis ist eine etwa 20 bis 30 Seiten lange Liste mit allen Programmen, die in ihrem Abbildung 4.26 Das Paket ist fertig installiert.

90 91 4 Wichtige Konsolenbefehle im Griff 4.3 Neue Software über die Konsole installieren

Sollte einmal während der Installation etwas schiefgehen, sehen Sie dies direkt an der apt-get upgrade Konsolenausgabe, weil eine Fehlermeldung ausgegeben wird. Beispielsweise sieht es so aus wie in Abbildung 4.27, wenn ich durch Drücken von (Strg) + (C) die Installation den Aktualisierungsvorgang aller Pakete starten. abgebrochen habe.

Abbildung 4.27 Die Installation wurde abgebrochen.

Jetzt kann es natürlich passieren, dass im Laufe der Zeit eine neue Version des Paketes erscheint. Auch hier unterstützt Sie das Tool APT, indem es eine Möglichkeit bietet, alle Pakete ganz einfach zu aktualisieren. Bevor Sie aber die Pakete an sich aktualisieren, ist es ratsam, erst die unter /etc/apt/sources.list gespeicherte Quelle zu aktualisieren. Dadurch erhält das System die aktuellsten Informationen über die verfügbaren Pakete. Um die Paketliste zu aktualisieren, geben Sie folgenden Befehl in die Konsole ein:

apt-get update Abbildung 4.29 Der Updatevorgang wird gestartet.

Jetzt beginnt das Betriebssystem damit, die Paketquellen neu einzulesen (siehe Abbil- Bevor die eigentliche Aktualisierung beginnt, listet das Tool wie in Abbildung 4.30 alle dung 4.28). veralteten Pakete auf 1, zeigt an, wie viel zusätzlicher Speicherplatz für die Aktualisie- rung benötigt wird 2, und fragt abschließend, ob der Aktualisierungsvorgang wirklich durchgeführt werden soll 3. Diese Frage bestätigen Sie durch Drücken von (Y), wodurch der ganze Vorgang fortgesetzt wird.

Abbildung 4.28 Die Paketquellen werden neu eingelesen.

Wenn die Aktualisierung erfolgreich war, steht am Ende Reading package list… Done, und Abbildung 4.30 Der Updatevorgang wird fortgesetzt. Sie können mit dem Befehl

92 93 4 Wichtige Konsolenbefehle im Griff 4.3 Neue Software über die Konsole installieren

Jetzt beginnt das Tool damit, alle notwendigen Pakete herunterzuladen und zu installie- ren. Den Verlauf der Installation, den Abbildung 4.31 beispielhaft zeigt, können Sie dabei über die Konsole verfolgen. Am Ende der Installation gelangen Sie zur Konsoleneingabe zurück.

Abbildung 4.32 Wirklich löschen?

Nachdem Sie diese Frage mit einem Druck auf (Y) bestätigt haben, beginnt das Betriebs- system mit dem Löschen der Dateien (siehe Abbildung 4.33).

Abbildung 4.31 Die Pakete werden heruntergeladen und installiert.

Jetzt kann es vorkommen, dass Sie aus Versehen das falsche Paket installiert haben. Aber was tun Sie in diesem Fall? Suchen Sie sich womöglich die Dateien des Paketes Abbildung 4.33 Die Dateien werden gelöscht. zusammen und löschen Sie diese von Hand? Nein, es geht viel einfacher: Das Tool APT stellt für solche Fälle einen Befehl bereit, mit dem Sie ein ausgewähltes Paket wieder Neben der Konsolenversion gibt es eine grafische Variante des Tools APT. Dieses Pro- löschen können. Geben Sie dazu einfach den Befehl gramm finden Sie auf dem Desktop im Startmenü unter Other. Nachdem Sie das Pro- gramm geöffnet haben, benötigt es eine kurze Zeit, um aktuelle Informationen über apt-get remove installierte und nicht installierte Pakete zu sammeln. Wenn es diese Informationen zusammengesucht hat, sieht der Startbildschirm in etwa so aus wie in Abbildung 4.34. in die Konsole ein. Um das Programm dos2unix, das wir eben installiert haben, nun wie- der zu deinstallieren, lautet der Befehl also:

apt-get remove dos2unix

Es empfiehlt sich aber, dieses Programm zu behalten, da es z. B. sehr sinnvoll ist, wenn Sie Konsolenskripte für den Raspberry Pi an einem Windows-Rechner schreiben möchten (eine kleine Einführung dazu gebe ich Ihnen in Kapitel 7, »Augen auf! Die Raspberry-Pi-Kamera einsetzen«). Einige Augenblicke später fragt das Betriebssystem, ob die zu dem Programm gehörenden Pakete wirklich entfernt werden sollen (siehe Abbildung 4.32). Abbildung 4.34 Das Startmenü des Paketmanagers

94 95 4 Wichtige Konsolenbefehle im Griff 4.3 Neue Software über die Konsole installieren

Die Navigation durch das Menü ist sehr übersichtlich und oben in der Kopfzeile zusam- mengefasst. Durch das Drücken auf (¢) öffnen Sie das angewählte Untermenü, z. B. Not Installed Packages. Um es wieder zu schließen, wählen Sie es erneut aus und drücken wieder auf (¢).

Gehen wir erneut die Installation des Programms dos2unix durch, nur benutzen wir diesmal den Paketmanager statt der Konsole. Als Erstes gehen Sie mit dem Mauscursor oben in der Leiste auf Search und anschließend auf find (siehe Abbildung 4.35).

Abbildung 4.37 Die Installation des Programms über den Paketmanager

Sobald das Programm installiert wurde, verfärbt sich die Schrift grün, und beim Wech- sel in das Fenster des Paketmanagers erscheint eine grüne Zeile, die Sie in der folgenden Abbildung 4.38 sehen.

Abbildung 4.35 Das Suchmenü

Anschließend öffnet sich ein Suchfenster, wie es in Abbildung 4.36 zu sehen ist. Dort Abbildung 4.38 Die Installation wurde abgeschlossen. geben Sie den Suchbegriff »dos2unix« ein.

Wenn Sie die Zeile des Programms nun auswählen, können Sie durch Drücken der Taste (U) einen Updatevorgang für das Programm starten. Natürlich benötigen Sie dafür root- Rechte, und Sie werden gefragt, ob Sie dem Paketmanager diese Rechte erteilen, sodass er sich als Benutzer root anmelden darf (siehe Abbildung 4.39).

Abbildung 4.36 Eingabe des zu suchenden Programms Abbildung 4.39 Darf der Paketmanager das Paket aktualisieren?

Unser gesuchtes Programm befindet sich gleich an erster Stelle. Mit einem Klick auf Ok Wählen Sie Become root, wird nach dem Passwort für den Benutzer root gefragt. beenden Sie das Suchfenster. Danach wählen Sie, falls das noch nicht geschehen ist, das Sobald Sie dieses richtig eingegeben haben, beginnt der Updatevorgang (siehe Abbil- Programm dos2unix aus. Anschließend installieren Sie das Paket über Package Ⴇ dung 4.40). Install (siehe Abbildung 4.37).

96 97 4 Wichtige Konsolenbefehle im Griff 4.4 Der Editor »nano« – Wie nutze ich ihn?

̈ Mit dem Befehl apt-get remove entfernen Sie ein bestimmtes Paket. ̈ Zusätzlich zu der konsolenbasierten Installationsmethode über den Befehl apt-get install gibt es auf dem Desktop im Startmenü unter Others den Aptitude Package Manager für eine grafikgestützte Installation von Programmen.

4.4 Der Editor »nano« – Wie nutze ich ihn?

In diesem Abschnitt beschäftigen wir uns mit einem der wichtigsten Programme, die Sie benötigen, um Dateien innerhalb der Konsole zu bearbeiten. Es handelt sich um den Abbildung 4.40 Das Update wird durchgeführt. Editor nano. Der Editor ist beim Aufspielen eines Raspbian-Wheezy-Images bereits vor- installiert, sodass Sie direkt mit ihm arbeiten können. Alles in allem ist er sehr über- Um das Programm wieder zu entfernen, öffnen Sie einfach wieder das Menü Package, sichtlich gehalten. Er verfügt über Standard-Textbearbeitungsfunktionen und ist in der wählen aber diesmal nicht Install, sondern Remove (siehe Abbildung 4.41). Lage, verschiedene Programmiersprachen wie C, Python und Java zu erkennen und her- vorzuheben. In Abbildung 4.42 sehen Sie ein Beispiel dafür, wie ein Python-Programm im Editor nano abgebildet wird.

Abbildung 4.41 Das Programm wird wieder gelöscht.

Mit der Taste (Q) schließen Sie den Paketmanager am Ende der Arbeit. Damit wären die wichtigsten Punkte im Umgang mit dem Paketmanager erklärt, und ich kann das neu Gelernte wieder kurz zusammenfassen:

̈ Das Tool APT dient dazu, Pakete, die alle wichtigen Dateien für ein bestimmtes Pro- gramm enthalten (ähnlich einer CD-ROM), herunterzuladen, zu entpacken und zu Abbildung 4.42 Der Editor »nano« im Einsatz installieren. ̈ Ein Paket installieren Sie mit dem Befehl apt-get install . Auf dem Bild erkennen Sie sehr gut, dass verschiedene Teile des Textes eingefärbt wer- ̈ Um ein Update aller Pakete durchzuführen, nutzen Sie erst den Befehl apt-get update den, damit sie leicht zu unterscheiden sind. Am unteren Rand des Fensters erkennen Sie zum Aktualisieren der Paketlisten und dann den Befehl apt-get upgrade zum Aktuali- eine Leiste mit Tastenkombinationen, die wir uns genauer anschauen und die wir aus- sieren der Programme. probieren werden. Jede Funktion können Sie aufrufen, indem Sie (Strg) und den ent- sprechenden Buchstaben drücken.

98 99 Kapitel 5 Der Raspberry macht Musik – als MP3-Player

Inzwischen haben Sie schon allerhand Dinge über den Raspberry Pi erfahren. Jetzt ist es an der Zeit, das gesammelte Wissen anzuwenden: Richten Sie sich einen MP3-Player ein!

In diesem Kapitel lernen Sie, wie Sie einen MP3-Player auf dem Raspberry Pi installieren. Dadurch verleihen Sie dem Raspberry Pi die Möglichkeit, Musik wiederzugeben, und Sie können ihn z. B. als kleine Radiostation für einen Internetradiosender oder als Abspiel- gerät für Ihre Lieblingsmusik nutzen. Dabei können Sie den Raspberry Pi bequem aus der Ferne, z. B. über den eigenen Computer oder ein Tablet, bedienen und mit der gewünschten Musik versorgen.

Die Audio-Ausgabe können Sie dabei auf viele verschiedene Weisen realisieren. Ich ver- wende den HDMI-Anschluss, um den Sound über meinen Monitor wiedergeben zu kön- nen. Natürlich können Sie aber auch den analogen Audio-Ausgang des Raspberry Pi benutzen, wenn Sie lieber normale Lautsprecher an den Raspberry Pi anschließen wol- len. Eine weitere Möglichkeit besteht darin, die Wolfson Pi Audio Card zu verwenden. Hierbei handelt es sich um eine besondere Soundkarte speziell für den Raspberry Pi. Sie ist z. B. für etwa 36 EUR bei www.amazon.de erhältlich.

Die Audio-Ausgabe erfolgt über ein Programm, das sich Player (MPD) nennt. Dieses Programm agiert im Hintergrund und stellt eine Musikbibliothek bereit. Die Bedienung des MPDs kann auf viele verschiedene Weisen mit sogenannten Music Player Clients (MPCs) erfolgen. MPCs gibt es für alle möglichen Plattformen, wie Android, Windows und iOS. Eine gute Übersicht über alle Clients finden Sie unter www.mpd.wikia.com/wiki/Clients. Dort gibt es auch eine Kategorie Windows, wo Windows-Nutzer einen herunterladen können. Ich arbeite mit dem Client Auremo, der sich für Windows Vista, Windows 7 und Windows 8 eignet. Für den Down- load des Clients öffnen Sie den genannten Link und folgen in der Liste unter Windows dem Link zu Auremo. Dort finden Sie wie in Abbildung 5.1 den Download.

131 5 Der Raspberry macht Musik – als MP3-Player 5.1 Installation und Konfiguration des Music Player Daemon (MPD)

Abbildung 5.3 Diese Meldung ist beim ersten Start normal. Abbildung 5.1 Hier finden Sie den Client zum Download.

Im nächsten Schritt konfigurieren Sie die Soundausgabe. Da die Soundausgabe bei Sobald Sie auf den Link klicken, kommen Sie auf eine Seite von Google Code, wo Sie die jedem Neustart neu konfiguriert werden muss, schreiben wir diese Befehle in die Datei aktuellste Version herunterladen können. In Abbildung 5.2 ist es die Auremo-0.6.1- /etc/rc.local. Diese Datei wird bei jedem Neustart automatisch ausgeführt und ist somit installer.exe. die ideale Möglichkeit, Starteinstellungen beim Booten zu laden. Als Erstes öffnen Sie also die Datei mit folgendem Befehl:

nano /etc/rc.local

Alles, was Sie zwischen dem fi und dem exit 0 eingeben (siehe Abbildung 5.4), wird beim Startvorgang ausgeführt. Um die Soundausgabe zu konfigurieren, fügen Sie fol- gende Zeile ein:

amixer cset numid=3 1 Abbildung 5.2 Laden Sie diese Datei herunter.

Kernelmodule laden Nach dem Download wird der Client noch installiert, und damit sind die Arbeiten am Es kann sein, dass bei älteren Versionen von Raspbian Wheezy das Kernelmodul für die Computer abgeschlossen. Jetzt ist es Zeit, sich dem Raspberry Pi zu widmen. Soundausgabe nicht automatisch geladen wird. In diesem Fall müssen Sie mithilfe des Konsolenbefehls 5.1 Installation und Konfiguration des Music Player Daemon (MPD) modprobe snd_bcm2835 das Modul nachträglich laden. Mit dem Befehl Jetzt installieren Sie die notwendige Software auf dem Raspberry Pi. Um den MPD zu modprobe Kernelmodul installieren, öffnen Sie eine Konsole als Benutzer root und geben folgenden Befehl ein: können zusätzliche Kernelmodule (unter Windows nennt man sie auch »Treiber«) gela- apt-get install mpd mpc den werden.

Am Ende der Installation erscheint die Meldung aus Abbildung 5.3. Diese Meldung Diese von Hand geladenen Module müssen nach jedem Neustart neu geladen werden. braucht Sie aber erst einmal nicht weiter zu beunruhigen, denn sie erscheint nur, weil Dies kann manuell vom Benutzer oder automatisiert mithilfe eines Skripts gemacht werden. Im Idealfall wird für diese Zwecke die Datei /etc/modules verwendet. Ich ver- Sie den MPD noch nicht konfiguriert haben. wende hier die Datei /etc/rc.local, damit Sie eine einfache Möglichkeit kennenlernen, um automatisch nach dem Booten Konsolenbefehle ausführen zu können.

132 133 5 Der Raspberry macht Musik – als MP3-Player 5.1 Installation und Konfiguration des Music Player Daemon (MPD)

chend berücksichtigen müssen. Diese (bzw. diesen) Ordner speichern Sie unter dem Wenn Sie wissen möchten, ob ein bestimmtes Kernelmodul geladen ist, so können Sie Pfad /home/pi/Desktop ab: den Befehl lsmod verwenden. Nach Eingabe des Befehls listet das Betriebssystem Ihnen alle aktivierten Module auf. mkdir /home/pi/Desktop/Musik mkdir /home/pi/Desktop/Musik/ Mit der Zeile amixer cset numid=3 n legen Sie das Interface fest, über das der Sound ausge- geben werden soll. Anstelle des Buchstabens n setzen Sie Folgendes ein: Im nächsten Schritt öffnen Sie die Konfigurationsdatei des MPD:

̈ 0 = auto nano /etc/mpd.conf ̈ 1 = analog In dieser Datei stellen Sie als Erstes den Pfad der Musik und der ein. Dafür pas- ̈ 2 = HDMI sen Sie music_directory 1 und playlist_directory 2 wie in Abbildung 5.5 an. Die Zeile amixer cset numid=3 1 müssen Sie nur hinzufügen, wenn als Soundausgabe- quelle nicht der HDMI-Anschluss genutzt werden soll.

Audio-Ausgabe: HDMI oder analog Sobald ein HDMI-Kabel eingesteckt ist, deaktiviert der Raspberry Pi automatisch den analogen Audio-Ausgang. Die Audio-Ausgabe kann also entweder über HDMI oder über die analoge Verbindung erfolgen, aber nicht über beide gleichzeitig! Abbildung 5.5 Hier tragen Sie die Pfade der Ordner für die Musik ein. Die fertig bearbeitete Datei sieht am Ende z. B. so aus wie in Abbildung 5.4, hier mit Soundausgabe über HDMI. Als Zweites aktivieren Sie den Netzwerkzugriff, indem Sie den Punkt bind_to_address "localhost" auskommentieren. Diese Einstellung sagt dem Programm, dass es nur auf dem installierten Rechner, dem sogenannten localhost, angesprochen werden darf. Da das Programm aber auch von jedem anderen Gerät (Computer, Tablet etc.) gesteuert werden soll, müssen Sie diesen Punkt auskommentieren, wodurch er unwirksam wird. Um die Zeile auszukommentieren, genügt es, wenn Sie, wie in Abbildung 5.6 gezeigt, ein # vor die jeweilige Zeile setzen.

Abbildung 5.4 Die fertig bearbeitete Datei mit automatischem Laden des Soundmoduls

Mit einem Druck auf (Strg) + (X) speichern Sie die Datei und starten anschließend den Abbildung 5.6 Der Netzwerkzugriff wird aktiviert. Raspberry Pi mit reboot neu. Nach dem Reboot melden Sie sich dann erneut als Benut- zer root an und erstellen zwei Ordner für die Musik. Der erste Ordner dient als allgemei- Im letzten Schritt konfigurieren Sie die Soundausgabequellen. In Abbildung 5.7 und ner Musikordner, der zweite soll dann die fertigen Playlists enthalten. Abbildung 5.8 sehen Sie zwei Screenshots, in denen ich einmal die Soundquelle HDMI Natürlich müssen Sie keine zwei Ordner anlegen. Sie können die folgenden Schritte und einmal die oben genannte USB-Soundkarte als Soundquelle einstelle. Es können auch mit nur einem Ordner durchführen, was Sie dann im weiteren Verlauf entspre- natürlich auch beide Quellen gleichzeitig verwendet werden!

134 135 5 Der Raspberry macht Musik – als MP3-Player 5.1 Installation und Konfiguration des Music Player Daemon (MPD)

Das Programm wurde nach der Installation automatisch im Hintergrund gestartet, aber damit die Änderungen in der Konfigurationsdatei wirksam werden, müssen Sie das Pro- gramm einmal neu starten:

/etc/init.d/mpd restart

Danach sehen Sie in der Konsole wie in Abbildung 5.9 eine Bestätigung.

Abbildung 5.7 So sieht die Soundausgabe über HDMI aus …

Abbildung 5.9 Wenn zweimal ein grünes »ok« erscheint, hat alles geklappt.

Zeit für den ersten Test mit Musik: Dazu öffnen Sie FileZilla und stellen eine Verbindung zu Ihrem Raspberry Pi her. Anschließend wählen Sie auf der rechten Seite – sprich in der Abbildung 5.8 … und so über die oben genannte USB-Soundkarte. Ordnerstruktur des Raspberry Pi – das Verzeichnis /home/pi/Desktop/Playlists aus (siehe Abbildung 5.10). In dieses Verzeichnis kopieren Sie nun per Drag & Drop ein Lied. Die Ausgabequelle können Sie dann bequem beim Client auswählen. Sobald Sie alle Ein- tragungen abgeschlossen haben, speichern Sie die Datei mit (Strg) + (X). Jetzt haben Sie es fast geschafft! Mit der Zeile

chmod g+w /home/pi/Desktop/Musik/Playlist

gewähren Sie dem MPD noch die notwendigen Rechte, und mit dem Befehl

chgrp audio /home/pi/Desktop/Musik/

ändern Sie die Gruppenzugehörigkeit des Ordners /home/pi/Desktop/Musik und fügen ihn der Gruppe audio hinzu. Abbildung 5.10 Das Lied wurde erfolgreich kopiert.

Soundkarte ansteuern: Nur für Mitglieder Jetzt starten Sie das PC-Programm, und es öffnet sich direkt das Fenster aus Abbildung Nur Programme, die der Gruppe audio angehören, dürfen Töne über die Soundkarte 5.11, in das Sie die IP-Adresse des Raspberry Pi eintragen, die Sie in Abschnitt 4.4, »Der bzw. über die Soundschnittstelle ausgeben. Da das Programm MPD bereits der Gruppe Editor »nano« – Wie nutze ich ihn?«, vergeben haben. angehört, müssen alle Ordner, auf die das Programm zugreifen will, auch Mitglied der Falls Sie die IP-Adresse nicht mehr genau wissen, können Sie sich diese Adresse mit dem Gruppe audio sein, weil das Programm sonst nicht über die Berechtigungen verfügt, Befehl ifconfig eth0 anzeigen lassen. Unter dem Punkt inet addr sehen Sie dann die diese Dateien zu öffnen! aktuelle IP-Adresse des Raspberry Pi. Mit einem Klick auf OK bestätigen Sie die Eingabe. Falls Sie dann noch nicht mit Ihrem Raspberry Pi verbunden sein sollten, klicken Sie

136 137 5 Der Raspberry macht Musik – als MP3-Player 5.2 Eine externe Festplatte als Musikspeicher nutzen

oben in der Leiste auf Connection und anschließend auf Connect. Ihre Musik finden Mit einem Doppelklick kopieren Sie das Lied in die nebenstehende Playlist, die Sie Sie dann unter anderem unter Filesystem (siehe Abbildung 5.12). dann durch einen Klick auf Play abspielen (siehe Abbildung 5.13). Sie müssen jeden Song, den Sie abspielen wollen, erst in eine Playlist kopieren. Ein direktes Abspielen ist nicht möglich!

Abbildung 5.13 Die Playlist wird abgespielt – der Player funktioniert. Abbildung 5.11 Hier geben Sie die Verbindungsdaten Ihres Raspberry Pi ein.

5.2 Eine externe Festplatte als Musikspeicher nutzen

Natürlich ist es nicht sonderlich praktisch, die Musik nur auf so umständliche Weise über FileZilla auf den Raspberry Pi zu kopieren. Aus diesem Grund werden wir den Ord- ner nun im Netzwerk freigeben. So können Sie über jeden Rechner, der im Netzwerk angemeldet ist, ganz einfach Musik auf den Raspberry Pi kopieren.

Für die Netzwerkfreigabe verwenden wir das Programm Samba, das es uns ermöglicht, eine Netzwerkfreigabe von Windows-Laufwerken zu emulieren. Das Programm instal- lieren Sie wie folgt:

apt-get install samba samba-common-bin

Nach der Installation schließen Sie einen USB-Stick oder eine USB-Festplatte an den Rasp- Abbildung 5.12 Hier wird Ihre Musik angezeigt. berry Pi an und erstellen eine ext3-Partition auf dem Speichermedium, wie auf Abbil- dung 5.14 zu sehen. Die Vorgehensweise haben Sie bereits in Abschnitt 4.2, »Wie ist das

138 139 5 Der Raspberry macht Musik – als MP3-Player 5.2 Eine externe Festplatte als Musikspeicher nutzen

Dateisystem aufgebaut?«, kennengelernt. Darum ist diese Aufgabe schon beinahe ein Kinderspiel.

Abbildung 5.16 Der Datenträger wurde erfolgreich gemountet.

Jetzt können Sie sich der Konfiguration von Samba zuwenden. Zuerst müssen Sie die Arbeitsgruppe im Netzwerk herausfinden. Unter Windows 7 öffnen Sie das Startmenü Ihres Computers und anschließend die Systemsteuerung.

Wenn Sie Windows 8/8.1 nutzen, verwenden Sie auf dem Desktop die Tastenkombina- Abbildung 5.14 Eine neue Partition auf einem USB-Stick für den Music Player tion (é) + (E). Im sich öffnenden Fenster klicken Sie am oberen, linken Fensterrand auf das Menü Computer. Von dort aus können Sie direkt zur Systemsteuerung 1 wech- Dieses Mal aber integrieren Sie den Datenträger in die Datei /etc/fstab; so wird der seln. In Windows 10 gelangen Sie über einen Rechtsklick auf den Startbutton und die Datenträger bei jedem Neustart des Systems automatisch gemountet, und Sie müssen Auswahl Systemsteuerung dorthin. sich nicht mehr darum kümmern. Nach der Erstellung des Datenträgers rufen Sie die Sobald Sie die Systemsteuerung geöffnet haben, klicken Sie auf System 2 (siehe Ab- Datei auf: bildung 5.17). nano /etc/fstab

In die Datei /etc/fstab tragen Sie jetzt den Speicher ein, der gemountet werden soll (/dev/sda1), sowie den Mountpunkt (/home/pi/Desktop/Musik), das Dateisystem (ext3), die Mountoptionen (rw für Schreiben und Lesen) und zwei Parameter, die angeben, ob die Partition gesichert oder überprüft werden soll (die beiden letzten Zahlen 0 und 0, siehe Abbildung 5.15).

Abbildung 5.15 Die fertigen Eintragungen in der Datei

Mit (Strg) + (X) übernehmen Sie die Änderung. Starten Sie anschließend den Raspberry Pi mit reboot neu. Nach dem Reboot können Sie mit dem Befehl df –h überprüfen, ob der Datenträger gemountet wurde (siehe Abbildung 5.16).

Abbildung 5.17 Hier finden Sie die Informationen zu Ihrem Computer.

140 141 5 Der Raspberry macht Musik – als MP3-Player 5.2 Eine externe Festplatte als Musikspeicher nutzen

Sobald Sie auf System geklickt haben, erscheint ein neues Fenster, in dem alle mögli- chen Informationen über Ihren Computer angezeigt werden. Die Information, die wir suchen, nennt sich Arbeitsgruppe (siehe Abbildung 5.18).

Abbildung 5.21 Ein Ordner wurde freigegeben.

Der Ausdruck zwischen [ ] ist der Freigabename (den Sie nachher noch benötigen wer- den), unter comment können Sie einen zusätzlichen Kommentar zu der Freigabe ausge- ben, und mit path geben Sie den kompletten Pfad des freizugebenden Ordners an. Die letzten beiden Parameter legen fest, dass keine Gäste auf das Laufwerk Zugriff haben Abbildung 5.18 Die Arbeitsgruppe im Netzwerk und dass Daten auf dem Laufwerk abgelegt werden dürfen. Speichern Sie die Datei, und schließen Sie den Editor ((Strg) + (X) und mit (Y) bestätigen). Diese Information merken Sie sich und öffnen auf dem Raspberry Pi die Konfigurati- onsdatei für Samba: Jetzt müssen Sie noch einen Benutzer festlegen, der später auf das Laufwerk zugreifen darf. Der Einfachheit halber nehmen Sie für unser Beispiel dazu den Benutzer pi, den Sie nano /etc/samba/smb.conf mit dem Befehl smbpasswd –a pi als Samba-User festlegen. Danach müssen Sie noch ein Passwort vergeben (siehe Abbildung 5.22). In dieser Datei ändern Sie als Erstes den Punkt workgroup so ab wie in Abbildung 5.19.

Abbildung 5.22 Vergeben Sie ein neues Samba-Passwort.

Abbildung 5.19 Tragen Sie die Arbeitsgruppe ein. Wichtiger Hinweis zu Samba-Benutzern

Den Punkt security unter Authentication ändern Sie so wie in Abbildung 5.20. Bei den Benutzern für Samba müssen Sie darauf achten, dass diese bereits im System registriert sind. Sie können also keinen Samba-User xyz anlegen, wenn es im Betriebs- system keinen »normalen« Benutzer namens xyz gibt. Es ist außerdem von Vorteil, wenn das Samba-Passwort eines Benutzers anders lautet als dessen Passwort für das Linux-System. So kann im Falle eines Passwortdiebstahls kein Unfug mit dem Account des Benutzers getrieben werden, da der Dieb nur das Samba-Passwort besitzt.

Da das Verzeichnis /home/pi/Desktop/Musik nun als Mountpoint für den USB-Speicher Abbildung 5.20 Setzen Sie die Zugriffsrechte. dient, müssen Sie das Verzeichnis Playlists neu erstellen, damit sich das Verzeichnis Playlists auch auf dem Stick befindet. Zugleich ändern Sie die Besitzer des Verzeichnis- Am Ende der Datei müssen Sie jetzt noch wie in Abbildung 5.21 die Ordner nennen, die ses so um, dass der angemeldete Benutzer nachher auch in die freigegebenen Verzeich- Sie freigeben wollen. nisse schreiben darf.

142 143 5 Der Raspberry macht Musik – als MP3-Player 5.2 Eine externe Festplatte als Musikspeicher nutzen

Sie geben also Folgendes in die Konsole ein: Anschließend erscheint ein Assistent, der Ihnen bei der Netzwerkfreigabe zur Seite steht. Klicken Sie erst einmal auf Weiter und dann auf den Punkt Eine benutzerdefi- mkdir /home/pi/Desktop/Musik/Playlist nierte Netzwerkadresse auswählen (siehe Abbildung 5.25). chown –R pi:pi /home/pi/Desktop/Musik chown –R pi:pi /home/pi/Desktop/Musik/Playlist

Jetzt ist der Benutzer pi im Besitz der Verzeichnisse für die Musik (siehe Abbildung 5.23).

Abbildung 5.23 Die Rechte wurden neu vergeben. Abbildung 5.25 Wählen Sie diesen Menüpunkt aus.

Mit dem Befehl /etc/init.d/samba restart starten Sie Samba zum Schluss neu. Sobald Mit einem Klick auf Weiter wechseln Sie zur nächsten Seite, auf der Sie die IP-Adresse der Neustart geglückt ist (dies erkennen Sie daran, dass in der Konsole zweimal ein Ihres Raspberry Pi eingeben (siehe Abbildung 5.26). Die Eingabe bestätigen Sie dann mit grünes OK erscheint), öffnen Sie an Ihrem Computer den Computer, führen im Explorer einem erneuten Klick auf Weiter. einen Rechtsklick aus und wählen wie in Abbildung 5.24 Netzwerkadresse hinzufü- gen aus.

Abbildung 5.26 Die IP-Adresse Ihres Raspberry und der Name der vorher erstellten Samba-Freigabe

Wählen Sie einen Namen für die Freigabe (meiner lautet ganz schlicht »MPD«), der nachher zur Anzeige im Computer (bzw. im Arbeitsplatz) dient. Mit einem erneuten Klick auf Weiter und dann auf Fertigstellen beenden Sie den Assistenten und schlie- ßen die Freigabe ab.

Abbildung 5.24 Eine neue Netzwerkfreigabe wird erstellt. Abbildung 5.27 Hier müssen sich neue Benutzer anmelden.

144 145 5 Der Raspberry macht Musik – als MP3-Player

Jetzt öffnet sich umgehend das Fenster aus Abbildung 5.27, in dem Sie den vorhin ange- legten Benutzernamen und das Passwort eingeben. Wer es bequem haben möchte, setzt noch einen Haken bei Anmeldedaten speichern. Falls Sie das Passwort speichern, müssen Sie sich nicht immer neu anmelden, wenn Sie auf den Speicher zugreifen wol- len. Aber bedenken Sie: Wenn Sie den Haken setzen, dann kann jeder Benutzer, der den Account mit der Ordnerfreigabe benutzt, ebenfalls auf den Ordner zugreifen! Überlegen Sie sich deswegen genau, ob Sie das Passwort speichern möchten.

Wenn Sie auf OK geklickt und alles richtig gemacht haben, erscheint der Ordner auf dem Raspberry Pi so wie in Abbildung 5.28.

Abbildung 5.28 Geschafft! Der Ordner ist freigegeben und einsatzbereit.

Jetzt können Sie ganz bequem Musik in den Ordner ziehen und abspielen. Zusammen mit einem WLAN-Stick und ein paar Boxen mit HDMI-Anschluss wird daraus eine rich- tig schöne Musikanlage, die sich z. B. mit einem Android Smartphone/Tablet und der App MPDroid fernsteuern lässt. Auch das Hinzufügen eines Radiostreams aus dem Internet ist möglich. Hierzu klicken Sie im Programm Auremo auf Streams, klicken mit der rechten Maustaste in das linke Fenster, wählen den Punkt Add Stream by URL, geben eine URL ein und ziehen den Stream in die Playlist.

146 Auf einen Blick

Auf einen Blick

1 Gestatten: Raspberry Pi! ...... 13

2 Schnellstart: Die erste Inbetriebnahme ...... 25

3 Den Desktop kennenlernen ...... 53

4 Wichtige Konsolenbefehle im Griff ...... 71

5 Der Raspberry macht Musik – als MP3-Player ...... 131

6 Full HD mit dem Raspberry Pi – ein Mediacenter mit OpenELEC ...... 147

7 Augen auf! Die Raspberry-Pi-Kamera einsetzen ...... 177

8 Programmieren mit dem Raspberry Pi? Zeit für Python ...... 207

9 Kleine Praxisprojekte mit dem Raspberry Pi und Python ...... 257 Inhalt

Inhalt

Geleitwort ...... 11

1 1 Gestatten: Raspberry Pi! 13

1.1 Die Hardware: Was steckt eigentlich im Raspberry Pi? ...... 13 1.2 Out of the Box? Worauf Sie beim Kauf weiterer Komponenten für den Start achten müssen ...... 19 1.2.1 Die Wahl der richtigen Speicherkarte ...... 19 1.2.2 Welches Netzteil soll ich nehmen? ...... 20 1.2.3 Ein passendes Kabel für den Anschluss an einen Monitor ...... 22 1.2.4 Was brauche ich sonst noch? ...... 23 1.3 Anschließen und loslegen ...... 24

2 2 Schnellstart: Die erste Inbetriebnahme 25

2.1 Installieren des Betriebssystems Raspbian Wheezy ...... 25 2.1.1 Die Installation auf einem Windows-Computer ...... 26 2.1.2 Die Installation auf einem Mac ...... 27 2.1.3 Die Installation unter Linux ...... 27 2.2 Vorbemerkungen zu Linux: Was Linux ist und wie es grundsätzlich funktioniert ...... 29 2.2.1 Was ist ein Kernel? ...... 29 2.2.2 Linux ist ein Multi-User-System ...... 29 2.2.3 Zugriffsrechte auf dem Raspberry Pi: Was darf ich, und was darf ich nicht? ...... 29 2.2.4 Die Zugriffsbits ...... 30 2.3 Die Verzeichnisstruktur ...... 32 2.4 Welche alternativen Betriebssysteme gibt es? ...... 37 2.5 Jetzt geht’s los! Das System richtig konfigurieren ...... 40 2.5.1 Das Menü »raspi-config« ...... 42 2.5.2 Expand Filesystem ...... 42

5 Inhalt Inhalt

2.5.3 Change User Password ...... 43 5 5 Der Raspberry macht Musik – als MP3-Player 131 2.5.4 Enable Boot to Desktop/Scratch ...... 44 2.5.5 ...... 45 Internationalisation Options 5.1 Installation und Konfiguration des Music Player Daemon (MPD) ...... 132 2.5.6 Enable Camera ...... 47 5.2 Eine externe Festplatte als Musikspeicher nutzen ...... 139 2.5.7 Add to Rastrack ...... 47 2.5.8 Overclock ...... 47 2.5.9 Advanced Options ...... 48 147 6 Full HD mit dem Raspberry Pi – ein Mediacenter mit OpenELEC 147

3 3 Den Desktop kennenlernen 53 6.1 Installation und Einrichten des Mediacenters ...... 147

3.1 Wo ist der Desktop überhaupt? ...... 53 6.2 OpenELEC richtig konfigurieren ...... 153 3.2 Was hinter den Symbolen auf dem Desktop steckt – 6.3 Das Mediacenter im Einsatz ...... 162 die Standardprogramme ...... 54 6.4 Eine Fernbedienung für das Mediacenter ...... 168 3.3 Mehr Programme – der Raspberry Pi Store ...... 61 6.5 Zusammenfassung ...... 175 3.4 Jetzt funkt’s – der Raspberry Pi bekommt WLAN ...... 66 3.4.1 Die Wahl des richtigen WLAN-Sticks ...... 66 3.4.2 Hinzufügen eines WLAN-Netzes ...... 66 7 7 Augen auf! Die Raspberry-Pi-Kamera einsetzen 177

7.1 Installation der Kamera ...... 178

4 4 Wichtige Konsolenbefehle im Griff 71 7.2 Die Kamera im Einsatz ...... 181 7.2.1 Das Programm »raspistill« ...... 181 4.1 ...... 73 Anlegen eines neuen Benutzerkontos und Ändern des Passwortes 7.2.2 Das Programm »raspivid« ...... 183 4.2 Wie ist das Dateisystem aufgebaut? ...... 79 7.2.3 Die Kamera-Einstellungen ...... 185 4.3 Neue Software über die Konsole installieren ...... 89 7.3 Mein eigener Video-Stream mit der Raspberry-Pi-Kamera ...... 189 4.4 Der Editor »nano« – Wie nutze ich ihn? ...... 99 7.4 Shell-Programmierung und die Erstellung eines Zeitraffer-Videos ...... 193 7.4.1 Was ist ein Shell-Skript? ...... 194 4.5 Wie bearbeite ich Dateien? ...... 108 7.4.2 Automatisierte Bildaufnahme mithilfe eines Skripts ...... 195 4.6 ...... 115 Der Befehl »sudo« 7.4.3 Das Video – so wird es gemacht ...... 202 4.7 ...... 121 Fernzugriff über SSH 7.5 Warum funktioniert meine Kamera nicht? Fehlerquellen aufspüren ...... 206 4.7.1 Die Konsole aus der Ferne bedienen – das Programm PuTTY ...... 121 4.7.2 Das Programm FileZilla – so übertragen Sie Dateien auf Ihren Raspberry Pi ...... 125 4.7.3 Einrichten einer VNC-Verbindung ...... 128

6 7 Inhalt Inhalt

8 9.4.3 Schaltung und Programm erweitern – einen Taster integrieren ...... 284 8 Programmieren mit dem Raspberry Pi? Zeit für Python 207 9.4.4 Helligkeit einer LED steuern, kurz: dimmen ...... 291 8.1 Was ist Python, und wie benutze ich es? ...... 207 9.5 Der UART – die einfachste Kommunikationsschnittstelle, die es gibt ...... 294 9.5.1 ...... 294 8.2 Variablen und Strings ...... 209 Grundlagen zur UART-Schnittstelle 9.5.2 ...... 297 8.2.1 Variablen als Wertespeicher ...... 210 Zuerst ein paar kleine Vorbereitungen 9.5.3 ...... 298 8.2.2 Die Ausgabe von Variablen mithilfe von Strings ...... 216 Daten vom Raspberry Pi an einen PC senden 9.5.4 Daten von anderen Geräten an den Raspberry Pi senden ...... 307 8.3 Listen und Dictionarys ...... 220 9.6 ...... 317 8.3.1 Das Speichern mehrerer Werte in Listen ...... 220 Der I²C-Bus, oder: Als der Raspberry Pi die erste eigene Uhr bekam 9.6.1 ...... 317 8.3.2 Was sind Dictionarys? – Eine kurze Einführung ...... 222 Hintergrundwissen zum Projekt 9.6.2 Der I²C-Bus im Detail ...... 317 8.4 Einfache Schleifen und Abfragen ...... 224 9.6.3 Die Funktionsweise des Uhrenmoduls ...... 320 8.4.1 Richtig oder falsch? So funktioniert die »if-else«-Verzweigung ...... 225 9.6.4 Das Python-Programm zum Auslesen der Uhr erstellen ...... 328 8.4.2 Bitte wiederholen – die »while«-Schleife ...... 231 9.7 ...... 336 8.4.3 Die »for«-Schleife als Zähler ...... 236 »picamera« – das Modul für die Raspberry-Pi-Kamera 9.7.1 Ein Foto oder Video aufnehmen ...... 336 8.5 Dateizugriff leichtgemacht ...... 242 9.7.2 Kamera-Einstellungen ...... 338 8.5.1 Auslesen einer Datei – so finden Sie Ihre 9.7.3 Das Programm zur Steuerung des Auslösers schreiben ...... 340 Raspberry-Pi-Version heraus ...... 243 9.8 ...... 344 8.5.2 Schreiben in eine Datei – so übergeben Sie Werte aus Kein Ende – sondern erst der Anfang: Projektvorschläge 9.8.1 ...... 345 einer Datei ...... 249 Leicht 9.8.2 Mittel ...... 346 9.8.3 Schwer ...... 346 9.8.4 ...... 347 9 Ein letzter Hinweis 9 Kleine Praxisprojekte mit dem Raspberry Pi und Python 257

9.1 Eine Grundausstattung zum Basteln – was benötige ich alles? ...... 257 ...... 349 9.1.1 Das Steckbrett und Drahtbrücken ...... 258 Anhang – wichtige Ressourcen fürs Weitermachen 9.1.2 Raspberry-Pi-Adapter und Flachbandkabel ...... 258 Index ...... 351 9.1.3 Drahtwiderstände, Transistoren, LEDs, Taster, Relais, Dioden ...... 260 9.1.4 Ein USB-Seriell-Wandler ...... 261 9.1.5 Das Echtzeituhrmodul (DS1307) ...... 262 9.2 Wenn der Standard nicht ausreicht – so verwenden Sie weitere Python-Module ...... 263 9.3 Schnittstelle in die Außenwelt – die GPIOs des Raspberry Pi im Überblick ...... 271 9.4 Die ersten Gehversuche mit einer LED – so bedienen Sie die GPIOs ...... 274 9.4.1 Wichtiger Exkurs: Grundlagen zum elektrischen Stromkreis ...... 275 9.4.2 Eine LED leuchten lassen: Versuchsaufbau ohne Schnickschnack ...... 276

8 9 Index

Index

.py ...... 208 Adapterkabel .txt ...... 208 Klinke auf FBAS ...... 22 / (Verzeichnis) ...... 32 Add to Rastrack ...... 47 /bin ...... 33 adduser ...... 75 /boot ...... 33 Administrator-Account ...... 30 /dev ...... 33, 82 Adressvergabe /dev/ttyAMA0 ...... 303 automatische ...... 23 /etc ...... 33 Advanced Options ...... 48 /etc/apt/sources.list ...... 92 Advanced Packaging Tool Ǟ APT /etc/fstab ...... 88, 140 Ampere ...... 275 /etc/group ...... 77 Analog-digital-Umsetzer ...... 317 /etc/network/interfaces ...... 100 and ...... 228 /etc/passwd ...... 73 Android ...... 193 /etc/rc.local ...... 35 Android-App /home ...... 33 Kore ...... 169 /lib ...... 34 Yatse the XBMC Remote ...... 169 /lost+found ...... 34 Anmeldebildschirm ...... 52 /media ...... 34 Anode ...... 311 /mnt ...... 34, 85 Apache ...... 73 /opt ...... 34 App Store ...... 59 append() ...... 221 /proc ...... 35 APT ...... 89 /proc/cpuinfo ...... 36, 243 grafische Version ...... 95 /proc/version ...... 36, 242 GUI-Variante ...... 89 /root ...... 35 Paket deinstallieren ...... 89 /run ...... 35 Paket installieren ...... 89 /sbin ...... 35 Paketmanager ...... 96 /selinux ...... 35 Update installieren ...... 89 /srv ...... 35 apt-cache search ...... 90 /sys ...... 35 apt-get ...... 90 /sys/class/gpio/export ...... 36 apt-get install ...... 90 /tmp ...... 35 apt-get remove ...... 94 /usr ...... 35 apt-get update ...... 92 /var ...... 35 apt-get upgrade ...... 93 \n ...... 254 Aptitude Package Manager ...... 89 % (Modulo) ...... 225 Arbeitsgruppe ...... 141 2to3 ...... 208 Arch Linux ARM ...... 38 40-Pol-Stiftleiste ...... 15 Architektur 7-Zip ...... 26 ARM ...... 14 x64 ...... 14 x86 ...... 14 A Arkuskosinus ...... 271 Arkussinus ...... 271 Abfrage ...... 224 ARM ...... 14 if-else ...... 225 ARM-Architektur ...... 14 Accessories ...... 60

351 Index Index

Asynchroner Bus ...... 296 Besitzer ...... 29 channel ...... 289 Datenleitung ...... 317 audio (Gruppe) ...... 136 Betriebsspannung ...... 278 chmod ...... 78 Datentyp Audio-Anschluss ...... 14 Betriebssystem Client ...... 125 sequenzieller ...... 220 Audio-Ausgabe ...... 131 Arch Linux ARM ...... 38 close() ...... 244 Datenübertragung über analogen Ausgang ...... 131, 134 auf Raspberry Pi installieren ...... 25 COM-Port ...... 262 parallele ...... 273 über HDMI ...... 134 Debian ...... 89 Composite Video ...... 14 serielle ...... 273 Audio-Ausgang ...... 131 Download ...... 40 cp ...... 111 Debian ...... 29, 89 Ǟ Auremo ...... 131 Fedora ...... 38 CPU ...... 14 deluser Benutzer löschen Ausgabe installieren ...... 25 Temperatur ...... 36, 109 Desktop ...... 53 in Datei speichern ...... 109 Kernel ...... 29 CSI ...... 179 Fernzugriff ...... 100, 121, 128 in Datei umleiten ...... 113 konfigurieren ...... 40 Filemanager ...... 54 Ausgabestring ...... 212 Linux ...... 25 Startmenü ...... 54 Autostart ...... 35 NOOBS ...... 37 D Taskleiste ...... 54 OpenELEC ...... 38 Webbrowser ...... 54 Desktop-PC ...... 14 OSMC ...... 38 Datei Desktop-Session B Pidora ...... 38 ausführen ...... 30 beenden ...... 53 Raspbian Wheezy ...... 25 auslesen ...... 106 starten ...... 53 Basteln Raspbmc ...... 38 bearbeiten ...... 108 Device Tree ...... 50 Grundausstattung ...... 257 RISC OS ...... 38 beschreiben ...... 249 df ...... 81 Baudrate ...... 296 Windows 10 ...... 40 kopieren ...... 111 df -h ...... 88 Bauelement Betriebssysteme lesen ...... 242 DHCP ...... 23 aktives ...... 279 Ubuntu ...... 39 lesender Zugriff ...... 30 dhcp (Methode) ...... 101 passives ...... 279 Bipolar-Transistor ...... 309 löschen ...... 113 BC337-NPN-Transistor ...... 260 öffnen ...... 242 DHCP-Server ...... 100 Pin-Belegung ...... 312 Diashow ...... 163 BCD-Format ...... 320, 322 Bit ...... 30, 79 schreiben ...... 242 Bedienung schreiben in ...... 109 Dictionary ...... 220 Bluetooth-Modul ...... 314 Ausgabe ...... 224 textbasierte ...... 71 schreibender Zugriff ...... 30 Board ...... 14 Einführung ...... 222 Befehl ...... 71 Schreibmodi ...... 243 Bogenmaß ...... 270 erstellen ...... 223 Benutzer Transfer ...... 121 Boolean ...... 209 erweitern ...... 223 aktueller ...... 74 übertragen ...... 125 Booten ...... 25 Schlüssel-Wert-Paare entfernen ...... 224 aus einer Gruppe entfernen ...... 119 verketten ...... 113 Bootpartition ...... 32, 81 Dimmen ...... 291 einer Gruppe zuweisen ...... 78 Zugriffsbit ...... 30 bouncetime ...... 290 Diode ...... 260, 261 löschen ...... 79 Dateibearbeitung Broadcom ...... 14 Grundlagen ...... 309 neu anlegen ...... 75 Befehle ...... 109 Browser ...... 59 dir ...... 110 normaler ...... 30 Dateiserver ...... 38 BSD-Name ...... 27 Display Manager Passwort ändern ...... 74 Bus Dateisystem beenden ...... 71 pi ...... 32 asynchroner ...... 296 Aufbau ...... 79, 80 Display-Interface ...... 15 root ...... 30 synchroner ...... 296 Auslastung ...... 81 Display-Server ...... 53 root-Passwort ...... 75 Byte ...... 80 Definition ...... 80 beenden ...... 53 Überblick ...... 73 ext ...... 80 starten ...... 53 von Dienst angelegter ...... 73 Fehler im ...... 86 Distribution ...... 29 wechseln ...... 74 C Gesamtgröße ...... 81 dos2unix ...... 90 zu Gruppe hinzufügen ...... 120 Mountpunkt ...... 82 Drahtbrücke ...... 258 Zugriffsrecht ...... 73 C ...... 208 NTFS ...... 80 Drahtwiderstand ...... 260 Benutzerkonto ...... 30 C (Programmiersprache) ...... 99 rootfs ...... 81 DS1307 ...... 262 anlegen ...... 73 Camera Standard Interface Ǟ CSI Dateizugriff ...... 242 DS1307 RTC Datenblatt ...... 319 Passwort ändern ...... 73 cat ...... 113 Daten Duty Cycle Ǟ Tastgrad Benutzeroberfläche cd ...... 110 empfangen ...... 192 DVB-T-Stick ...... 176 grafische ...... 71 Change User Password ...... 43 Datenblatt ...... 277 DVI-Anschluss ...... 22

352 353 Index Index

E Film Hardware entpacken (Windows) ...... 26 streamen ...... 147 40-Pol-Stiftleiste ...... 15 Raspbian Wheezy ...... 25 echo ...... 79 Flachbandkabel ...... 258 anschließen ...... 24 Inbetriebnahme ...... 25 echo (Befehl) ...... 109 Flachbildschirm ...... 48 ARM-Architektur ...... 14 Induktionsgesetz ...... 309 Echtzeituhrmodul ...... 262 Flag ...... 304 benötigte Zusatzkomponenten ...... 19, 23 Induktive Last ...... 309 Editor Fließkommazahl ...... 209 Board ...... 14 inet ...... 101 nano ...... 99 float (Zahl) ...... 215 Composite Video ...... 14 Infrarotfernbedienung ...... 176 vi ...... 90 for-Schleife ...... 199, 236 CPU ...... 14 Installieren EEPROM ...... 317 Aufbau ...... 236 des Raspberry Pi ...... 13 von Paketen (via APT) ...... 89 Elektrisches Potenzial ...... 275 Fotos Ǟ Kamera Display-Interface ...... 15 Integer ...... 209, 214 Ǟ elif ...... 226 Freilaufdiode ...... 309 Ethernet-Anschluss ...... 14 Integrated Circuit IC Integrated Development Environment Ǟ IDE Empfangsleitung (Rx) ...... 294 from ...... 269 geeignete Speicherkarte ...... 19 interfaces (Datei) ...... 100 Enable Boot to Desktop/Scratch ...... 44 FTP ...... 125 GPIO-Pins ...... 15 Inter-Integrated Circuit Ǟ I²C-Bus Enable Camera ...... 47 Full HD ...... 147 HDMI-Anschluss ...... 14 End of File Ǟ EOF Kamera-Interface ...... 14 Internationalisation Options ...... 45 Internet of Things ...... 40 End of Line Ǟ EOL Micro-SD-Karteneinschub ...... 15 Internetbrowser ...... 59 Endsektor ...... 84 Micro-USB-Buchse ...... 15 G Internetradio ...... 131 Entprellen ...... 289 Monitoranschluss ...... 22 Internetverbindung ...... 23 Entwicklungsumgebung ...... 57 Games ...... 59 Netzteil ...... 20 Interrupt ...... 286, 288 EOF ...... 245 Ganzzahl ...... 209 Raspberry-Pi-Kamera ...... 177 Interrupt-Event ...... 289 EOL ...... 244 lange ...... 209 Stromverbrauch ...... 16 invertieren ...... 232 Epiphany ...... 59 Gateway ...... 100 Stromversorgung ...... 15 IO.BCM ...... 282 General Purpose Input/Output Ǟ GPIO USB-Anschluss ...... 14 Equalizer ...... 163 IO.BOARD ...... 282 Gleichheit (==) ...... 226 Hardwareschnittstelle ...... 342 eth0 ...... 101 IO.BOTH ...... 289 Gleitkommazahl ...... 214 sichern ...... 342 Ethernet-Anschluss ...... 14 IO.FALLING ...... 289 Gleitpunktzahl ...... 214 hd ...... 82 Ethernet-Kabel ...... 19 IO.RISING ...... 289 HDMI-Anschluss ...... 14 Ethernet-Port ...... 16 GPIO ...... 15, 16, 271, 273 IoT Ǟ Internet of Things HDMI-Kabel ...... 19 Ethernet-Schnittstelle ...... 101 Ein- und Ausgänge verfügbar machen ...... 36 IP-Adresse ...... 23 headless system ...... 44, 125 exit() ...... 209 Layout festlegen ...... 282 dynamische ...... 100 Help ...... 60 Expand Filesystem ...... 42 Status einlesen ...... 289 feste ...... 100 help(\modules\) ...... 265 ext3-Partition ...... 139 GPU ...... 49 ipconfig ...... 103 Hexadezimalzahl ...... 325 ext-Dateisystem ...... 80 Grafikeinheit ...... 14 isdigit() ...... 227 umwandeln ...... 326 Grafikkarte ISO ...... 186 externe ...... 49 High-Pegel ...... 296 isopen() ...... 304 F Grafikprozessor Ǟ GPU Hilfe ...... 60 iteritems() ...... 240 größer (>) ...... 226 Hostname ...... 48, 74 iterkeys() ...... 240 false ...... 209 größer gleich (>=) ...... 226 itervalues() ...... 240 FBAS Ǟ Composite Video Gruppe ...... 30 fdisk ...... 83 pi ...... 32 I Fedora ...... 38 sudo ...... 119 I²C-Bus ...... 317 J Fernbedienung ...... 168 vorhandene ...... 77 IC ...... 285 Java ...... 99, 208 Fernseher Gruppenzugriffsrecht ...... 78 IDE ...... 57, 208 streamen auf ...... 147 GUI ...... 53, 71 if-Abfrage ...... 196, 225 Fernsehprogramm ...... 176 iface ...... 101 Fernzugriff ...... 100, 121, 129 K if-else-Abfrage ...... 225 File Transfer Protocol Ǟ FTP H Image Kamera ...... 177 Filemanager ...... 54 Download ...... 25 aktivieren ...... 180 FileZilla ...... 32, 49, 121, 125 Halbleiter ...... 278 entpacken (Linux) ...... 27 Bild drehen ...... 189 Ansehen/Bearbeiten-Funktion ...... 128 Halbleiterbauelement ...... 278 entpacken (Mac OS) ...... 27 Fehlerquellen ...... 206

354 355 Index Index

Foto ...... 181, 195 Hintergrundfarbe ändern ...... 72 Logout ...... 53 Music Player Client ...... 131 Fotoeffekte ...... 189 Software installieren ...... 89 lower() ...... 234, 315 Auremo ...... 131 Fotogröße ...... 182 Sonderzeichen ...... 198 ls ...... 110 Music Player Daemon ...... 131 Fotoqualität ...... 182 starten ...... 71 Luftdrucksensor ...... 317 installieren ...... 132 Helligkeit ...... 187 Windows ...... 103 LXTerminal ...... 71 konfigurieren ...... 132 Installation ...... 178 Konsolenbefehl ...... 71 Musik Kontrast ...... 186 Kontrollstruktur streamen ...... 147 Lichtempfindlichkeit ...... 186 Abfrage ...... 224 M von externer Festplatte ...... 139 Nachtaufnahme ...... 177 for-Schleife ...... 236 Musikplayer ...... 163 Schärfe ...... 186 Schleife ...... 224 Magnetschalter ...... 261 Video ...... 181, 183 while-Schleife ...... 231 Mapping ...... 220 Video-Größe ...... 184 Kore ...... 169 Mathematica ...... 59 N Video-Stream ...... 189 Kosinus ...... 269 Maus ...... 14 Vorschau auf Desktop ...... 188 Kühlkörper ...... 47 Mediacenter ...... 38 nano ...... 99 Zeitauslöser ...... 183 einrichten ...... 150 beenden ...... 107 Zeitraffer ...... 193, 204 Fernbedienung ...... 168 Datei auslesen ...... 106 Kamera-Interface ...... 14 L installieren ...... 147 Datei speichern ...... 107 Kameramodul ...... 47 OpenELEC ...... 147 Zeile kopieren ...... 106 Kartenleser ...... 83 Lagesensor ...... 317 Mehrbenutzersystem ...... 29, 156 nano (Befehl) ...... 100 Kathode ...... 311 LAN-Schnittstelle ...... 101 Methode ...... 221 NAS ...... 38 Kernel ...... 29 Last aufrufen ...... 221 Netcat ...... 189 Kernelversion ...... 36 induktive ...... 309 Element hinzufügen ...... 221 network (Verzeichnis) ...... 100 Ǟ Key ...... 220 Laufwerksbuchstabe ...... 80 isdigit() ...... 227 Network Attached Storage NAS kill \ ...... 191 Laufzeit ...... 220 Micro-SD-Karteneinschub ...... 15 Netzteil ...... 20 Kilobyte ...... 80 LCD-Adapter ...... 316 Micro-USB-Buchse ...... 15 Netzwerk ...... 14 kleiner (<) ...... 226 LED ...... 182, 206, 261 Mikrocontroller ...... 13 lokales ...... 100 kleiner gleich (<=) ...... 226 Betriebsspannung ...... 261 Minecraft ...... 59 Netzwerk- und Freigabecenter ...... 102 Kleinsignalrelais ...... 261 Helligkeit steuern ...... 291 Minecraft Pi ...... 59 Netzwerkanbindung ...... 153 Minuspol ...... 280 MIT App Inventor ...... 314 drahtlose ...... 66 Kommando ...... 43 mit Taster steuern ...... 284 mkdir ...... 112 Netzwerkfreigabe Kommandozeile ...... 74 Wahl der richtigen Farbe ...... 261 mkfs ...... 85 für Musik ...... 139 Kommunikationsprotokoll Leistungsaufnahme mmc ...... 82 Netzwerkkonfiguration ...... 56 SSH ...... 122 maximale ...... 16 mmcblk ...... 82 Netzwerkspeicher ...... 38 Ǟ Komplexe Zahl ...... 209 Leiter Modulo-Operator ...... 225 New Out Of Box Software NOOBS Konfiguration elektrischer ...... 275 Monitor ...... 188 Nicht (logischer Operator) ...... 228 Add to Rastrack ...... 47 len() ...... 252 DVI-Anschluss ...... 22 NOOBS ...... 37 Advanced Options ...... 48 lighttpd ...... 73 HDMI-Anschluss ...... 22 not ...... 228 Change User Password ...... 43 Linux ...... 25, 29 VGA-Anschluss ...... 22 NTFS-Dateisystem ...... 80 Enable Boot to Desktop ...... 44 Distribution ...... 29 mount ...... 85 Enable Camera ...... 47 Einführung ...... 29 Mounten ...... 82 Expand Filesystem ...... 42 Kernel ...... 29 automatisch ...... 88 O Internationalisation Options ...... 45 Multi-User-System ...... 29 Mountpunkt ...... 82 Zugriffsrechte ...... 29 entfernen ...... 86 Objekt ...... 221 Overclock ...... 47 Oder (logischer Operator) ...... 228 raspi-config ...... 42 Linux-Anfängerhandbuch ...... 195 Mountvorgang ...... 85 Liste ...... 220 MP3-Player ...... 131 Öffentlicher Zugriff ...... 30 Konsole ...... 43 Ohmsches Gesetz ...... 277 Ausgabe speichern ...... 109 definieren ...... 220 MPDroid ...... 146 Element ändern ...... 222 Multimeter ...... 322 open-Anweisung ...... 243 Befehl ...... 71 OpenELEC ...... 38 Fernzugriff ...... 121 Element entfernen ...... 222 Multi-User-System ...... 29

356 357 Index Index

Add-on ...... 165 Ordner pi Python ...... 57, 99, 207 Add-on installieren ...... 165 anlegen ...... 112 Benutzer ...... 32 eigenes Modul schreiben ...... 264 Audio-Ausgabe konfigurieren ...... 161 Inhalt ausgeben ...... 110 Benutzereinstellungen ändern ...... 117 Einrückung mit -Taste ...... 226 Bedienung ...... 153 Ordnerstruktur ...... 32 Gruppe ...... 32 Grundlagen ...... 207 Benutzerprofile verwalten ...... 156 OSMC ...... 38 Pi NoIR ...... 177 if-Abfrage ...... 225 Bildschirm kalibrieren ...... 160 Overclock ...... 47 picamera ...... 336 Kompatibilität ...... 208 Bluetooth-Verbindung ...... 157 Overscan ...... 48 Auslöser programmieren ...... 340 Liste aller aktiven Module ...... 265 Dateimanager ...... 156 Bild drehen ...... 340 Mac-System ...... 208 Datenträger öffnen ...... 162 Bildformate ...... 337 Module laden ...... 263 Diashow ...... 163 P Kamera-Einstellungen ...... 338 Programm ausführen ...... 213 einrichten ...... 150 Lichtschranke ...... 344 Unterprogramm ...... 288 Energiesparoption ...... 159 Paket ...... 89 Ultraschallsensor ...... 344 Windows-System ...... 208 Equalizer ...... 163 aktualisieren ...... 92 picamera (Modul) ...... 340 Python 2.7 ...... 208 Fernbedienung ...... 168 löschen ...... 94 Pidora ...... 38 Python 3 ...... 208 Gerätename ...... 151 Paketmanager ...... 96 Pipe-Operator ...... 191 Python Games ...... 59 grafische Benutzeroberfläche ...... 153 Parallelschaltung ...... 300 Plattformunabhängig ...... 208 Python-Interpreter ...... 13, 207 HDMI ...... 161 Parameter ...... 190, 197 Playlist ...... 135 Python-Konsole ...... 208, 265 installieren ...... 147 Paritätsbit ...... 296 Pollen ...... 286, 287 Python-Modul ...... 264 Internetverbindung ...... 152 Paritätsprüfung ...... 296 Port importieren ...... 269 Kodi ...... 153 Partition Definition ...... 124 installieren ...... 265 konfigurieren ...... 153 anlegen ...... 84 SSH ...... 122 math ...... 264 länderspezifische Einstellungen ...... 159 automatisch einbinden ...... 88 Potenz ...... 269 neu benennen ...... 282 Mediacenter ...... 147 Bootpartition ...... 81 print ...... 211 opencv ...... 264 Menüeintrag »Einstellungen« ...... 158 Dateisystem erstellen ...... 85 Programmiersprache ...... 208 os ...... 264 Menüeintrag OpenELEC ...... 157 Endsektor ...... 84 C ...... 208 RPi.GPIO ...... 264 Musikplayer ...... 163 Endsektor bestimmen ...... 87 Java ...... 208 serial ...... 264 Netzwerkverbindung ...... 157 erste ...... 81 objektorientierte ...... 221 smbus ...... 264 Profile ...... 156 formatieren ...... 85 plattformunabhängige ...... 208 time ...... 264 Samba-Server ...... 152 löschen ...... 83 Python ...... 57, 207 verwenden ...... 268 Skin anpassen ...... 159 neu erstellen ...... 82 Scratch ...... 57 Python-Programm ...... 99 Soundeinstellungen ...... 159 primäre ...... 84 Protokoll Sprache einstellen ...... 150 Startsektor ...... 84 FTP ...... 125 SSH-Server ...... 152 Startsektor bestimmen ...... 87 inet ...... 101 R Systemeinstellungen ...... 154 Partitionierung ...... 83 Prozessor ...... 47 Videoeinstellungen ...... 159 Partitionsname ...... 82 ARM Cortex-A7 ...... 16 Radiostream ...... 146 Video-Hardware konfigurieren ...... 159 Partitionsnummer ...... 84 ARM1176JZF-S ...... 16 RAM ...... 217 Ǟ Zeitzone ...... 159 passwd Passwort ändern Prozessorarchitektur RAM-Zuweisung ...... 49 Ǟ Open-Source-Projekt ...... 13 Passwort ARM ...... 14 Random-Access Memory RAM Operator ändern ...... 43, 74 Lizenz für die ...... 14 Raspberry Pi ...... 13 != ...... 226 Standard ...... 43 Prozessortakt ...... 16 anschließen ...... 24 < ...... 226 PDF-Reader ...... 60 Pull-down-Widerstand ...... 285 benötigte Zusatzkomponenten ...... 19, 23 <= ...... 226 Peripheriegerät ...... 14 Pull-up-Widerstand ...... 286 booten ...... 25 == ...... 226 Permission denied ...... 31 Pulsweitenmodulation Ǟ PWM Camera Standard Interface (CSI) ...... 179 > ...... 226 Pfadangabe PuTTY ...... 49, 121, 180 Einführung ...... 13 >= ...... 226 absolute ...... 111 PWM ...... 291 geeignete Speicherkarte ...... 19 logischer ...... 228 relative ...... 111 pySerial ...... 303 geeignetes Steckernetzteil ...... 19 or ...... 228 Physikalische Stromrichtung ...... 275 Pythagoras Grundidee ...... 13 Satz des ...... 270 Hardware ...... 13

358 359 Index Index

Herkunft des Namens ...... 13 Reihenschaltung ...... 299 Schaltplan ...... 277 Soundausgabequelle ...... 135 herunterfahren ...... 56 Relais ...... 261 Schaltung Spannungsquelle ...... 275 Inbetriebnahme ...... 25 Grundlagen ...... 309 integrierte ...... 285 Spannungsteiler ...... 299 Kamera ...... 177 Remote-Desktop-Verbindung ...... 128 Schleife ...... 224, 227 Speicherbelegung Kameramodul anschließen ...... 179 Reset-Taster ...... 15 Schlüssel ...... 220 anzeigen ...... 81 mit Bloothooth steuern ...... 314 RISC OS ...... 38 Schnittstelle ...... 14 Speichererweiterung Modell 2 B ...... 14 rm ...... 113 Ethernet ...... 101 per USB-Festplatte ...... 79 Modell B+ ...... 16 Roboter ...... 193 lo ...... 101 Speicherkarte ...... 19 Monitoranschluss ...... 22 Röhrenmonitor ...... 48 serielle ...... 261 Class 10 ...... 19 MP3 ...... 131 Root Schreibmodus ...... 243, 244 Class 4 ...... 20 Open-Source-Projekt ...... 13 Verzeichnis ...... 32 SCL ...... 317, 322 Speicherkartenlesegerät ...... 20 Pi NoIR ...... 177 root ...... 30, 74 Scratch ...... 57 Speichermedium Praxisprojekte ...... 257 Passwort ...... 75 Entwicklungsumgebung ...... 57 formatieren ...... 79 Prozessor ...... 16 root-Account ...... 30 SDA ...... 317, 322 Speicherplatz Prozessortakt ...... 16 Wechseln zum ...... 74 sda ...... 82 belegter ...... 81 Python-Interpreter ...... 13 rootfs ...... 81 sdb ...... 82 freier ...... 81 Raspberry-Pi-Adapter ...... 258 root-Recht ...... 89 SD-Karte verbleibender ...... 81 Raspbian Wheezy ...... 25 root-Rechte erlangen Ǟ sudo BSD-Name ...... 27 SPI-Bus ...... 273 Schnellstart ...... 25 Router ...... 23, 67, 100 Secure Shell Ǟ SSH Spiele ...... 59 Systeminformationen auslesen ...... 242 DHCP ...... 23 Sektor ...... 84 Spielesammlung Temperatur loggen ...... 249 RPi.GPIO ...... 281 Sendeleitung (Tx) ...... 294 Python Games ...... 60 Uhr installieren ...... 317 Modul installieren ...... 282 Sequenzieller Datentyp ...... 220 Spracheingabe ...... 175 Version 2 ...... 13 RS232 ...... 294 Serial Clock Ǟ SCL Spule ...... 309 Version A ...... 242 RS232-Anschluss ...... 262 Serial Data Ǟ SDA SSH ...... 49, 121 Version B ...... 242 RS422 ...... 295 Serielle Schnittstelle ...... 261 Fernzugriff über ...... 121 Versionen im Überblick ...... 16 RS485 ...... 295 Daten empfangen ...... 305 Standardport ...... 122 Raspberry Pi Foundation ...... 15, 16, 59 RS485-Bus ...... 294 Server ...... 125 SSH-Server ...... 49 Raspberry Pi Store ...... 59, 61 RTC ...... 263, 317 Service Set Identifier Ǟ SSID OpenELEC ...... 152 Anwendung installieren ...... 62 i2ctools ...... 319, 327 Shell ...... 74 SSH-Terminal ...... 49 Benutzerkonto einrichten ...... 62 Registermap ...... 327 Shell-Programmierung ...... 193 SSID ...... 68 Raspberry Pi T-Cobbler ...... 259 Stromversorgung ...... 327 Shell-Skript ...... 194 Standardgateway ...... 102 Raspberry-Pi-Kamera RW-Bit ...... 329 automatisierte Bildaufnahme ...... 195 Standardprogramme ...... 54 mit picamera bedienen ...... 336 Siliziumdiode ...... 260, 309 Startmenü ...... 54, 55 Raspbian Wheezy Sinus ...... 269 Accessories ...... 60 Desktop ...... 53 S Skript Ǟ Shell-Skript Games ...... 59 Installation unter Linux ...... 27 Slave ...... 294 Help ...... 60 Installation unter Mac OS ...... 27 Samba ...... 139 Smartphone ...... 193 Preferences ...... 55 Installation unter Windows ...... 26 Benutzer ...... 143 SMD ...... 322 Programming ...... 57 installieren ...... 25 Benutzer festlegen ...... 143 SMD-Widerstand ...... 322 Run ...... 55 konfigurieren ...... 40 Config-File ...... 142 SoC ...... 13, 282 Shutdown ...... 55, 56 Raspbmc ...... 38 Freigabe ...... 145 CPU ...... 14 Startsektor ...... 84 raspi-config ...... 42, 180 Freigabename ...... 143 Grafikeinheit ...... 14 startx ...... 53 Update von ...... 51 Konfiguration ...... 141 Schnittstellen ...... 14 static (Methode) ...... 101 raspistill ...... 181, 185 neu starten ...... 144 Software Statusvariable ...... 304 raspivid ...... 181, 183, 185, 190 Passwort vergeben ...... 143 installieren (via Konsole) ...... 89 Steckbrett ...... 258 Real Time Clock Ǟ RTC Zugriffsrechte setzen ...... 142 installieren via APT ...... 89 Steckbrücke ...... 15 Rechteverwaltung ...... 80 Samba-Server Paket ...... 89 Steckernetzteil ...... 19 Registermap ...... 319 OpenELEC ...... 152 Sonic Pi ...... 58 Steckkontakt ...... 262

360 361 Index Index

Steuerzeichen ...... 254 integrieren ...... 284 USB-Seriell-Wandler ...... 261 Verzeichnisstruktur ...... 32 Stiftleiste ...... 15 Pollen ...... 286 USB-Stick ...... 79 VGA-Anschluss ...... 22 Stoppbit ...... 296 Tastgrad ...... 291 entfernen ...... 86 vi ...... 90 Stream ...... 189 Technische Stromrichtung ...... 275 USB-Tastatur ...... 19 Video Streaming ...... 147 Terminal ...... 43 User ...... 30 YouTube ...... 165 Ǟ String ...... 209 Textbearbeitung ...... 99 usermod Ǟ Benutzer einer Gruppe zuweisen Video LAN Client VLC Ǟ einlesen ...... 217 Textdatei Video Kamera Umwandlung in Gleitpunktzahl ...... 270 Konvertieren mit dos2unix ...... 90 Video/Audio-Ausgang verbinden ...... 212 Texteditor ...... 60 V analoger ...... 17 zerlegen ...... 218 Textmodus ...... 43 Video-Signal strip() ...... 245 Tight VNC Viewer ...... 129 Value ...... 220 analoges ...... 22 TightVNC ...... 121 digitales ...... 22 Stromkreis Variable ...... 209 tightvncserver ...... 129 Video-Stream ...... 189 elektrischer ...... 275 Ausgabe ...... 216 Transistor ...... 260, 292 vim ...... 91 Stromrichtung boolesche ...... 209 bedrahteter ...... 307 visudo ...... 116 physikalische ...... 275 deklarieren ...... 210 Grundlagen ...... 307 VLC ...... 190, 192 technische ...... 275 Zuweisung ...... 210 Pin-Belegung ...... 308, 312 VNC-Client ...... 129 Stromstärke ...... 275 Variablentyp ...... 209 Treiber ...... 29 Variablenwert VNC-Server ...... 128 Stromverbrauch ...... 16 true ...... 209 VNC-Verbindung ...... 128 Stromversorgung ...... 15 ausgeben ...... 212 ttyAMA0 ...... 304 Vcc-Pin ...... 322 Volt ...... 275 su ...... 74 ttyUSB0 ...... 303 Verbindung su root ...... 74 Tupel ...... 339 verschlüsselte ...... 50 Subnetzmaske ...... 102 W sudo ...... 115 Verkabelung ...... 179 sudo pkill x ...... 54 U Versorgungsspannung ...... 278 Wahrheitswert ...... 209 sudoers Verzeichnis ...... 85 Wärmeleitpaste ...... 47 Datei bearbeiten ...... 116 UART ...... 273, 294 bin ...... 33 Watterott electronic ...... 20, 350 Superuser ...... 30 schließen ...... 304 boot ...... 33 Webbrowser ...... 54 Surface Mounted Device Ǟ SMD Übertragungsprotokoll ...... 295 dev ...... 33 Weiterleitung ...... 86 switch user Ǟ su UART.open() ...... 304 etc ...... 33 Werte ...... 220 Synchroner Bus ...... 296 UART-Schnittstelle home ...... 33 verknüpfte ...... 222 System on a Chip Ǟ SoC Zugriff auf ...... 303 kopieren ...... 111 Wertespeicher ...... 210 Systemadministrator ...... 74 Übertakten ...... 47 lib ...... 34 which ...... 117 Systemsteuerung ...... 55 Uhr löschen ...... 114 which mount ...... 118 auslesen ...... 328 lost+found ...... 34 while-Schleife ...... 231 Systemuhr einrichten ...... 335 media ...... 34 Aufbau ...... 231 T Uhr installieren Ǟ Raspberry Pi mnt ...... 34 Widerstand umount ...... 86 opt ...... 34 berechnen ...... 277 tail ...... 111 Und (logischer Operator) ...... 228 proc ...... 35 Win32 Disk Imager ...... 26, 148 Taktleitung ...... 317 Ungleichheit (!=) ...... 226 root ...... 32, 35 Windows Taktsignal ...... 296 UnRarX ...... 27 run ...... 35 Netzwerkadresse hinzufügen ...... 144 Taschenrechner ...... 60 Unterprogramm sbin ...... 35 Windows 10 ...... 40 Taskleiste ...... 54 erstellen ...... 331 selinux ...... 35 Windows Movie Maker ...... 202 Tastatur ...... 14 update() ...... 223 srv ...... 35 Winkel ...... 270 Tastaturlayout upper() ...... 234 sys ...... 35 WLAN amerikanisches ...... 43 USB-Anschluss ...... 14 tmp ...... 35 einrichten ...... 66 deutsches ...... 46 USB-Festplatte ...... 79 usr ...... 35 geeigneten Stick wählen ...... 66 Taster ...... 260 USB-Maus ...... 19 var ...... 35 Netz hinzufügen ...... 66 abfragen ...... 286 USB-Port wechseln ...... 114 WLAN-Stick entprellen ...... 289 Anzahl je Modell ...... 16 Verzeichnisbaum ...... 32, 80 geeignetes Modell wählen ...... 66

362 363 Index

Wolfram ...... 59 Zahlensystem write(Variable) ...... 304 dezimales ...... 320 Wurzelfunktion ...... 269 duales ...... 320 Wurzelverzeichnis ...... 32 umrechnen ...... 328 Zähler for-Schleife ...... 236 X Zeichensatz ...... 45 Zeilenwechsel ...... 254 x64-Architektur ...... 14 Zeitstempel ...... 342 x86-Architektur ...... 14 Zeitzone ...... 46 Zeroconf ...... 169 Zugriff Y Benutzer ...... 30 Yatse the XBMC Remote ...... 169 Besitzer ...... 30 YouTube ...... 161 Gruppe ...... 30 YouTube-Video ...... 165 lesender ...... 30 öffentlicher ...... 30 unerlaubter ...... 73 Z verweigert ...... 31 Zugriffsbit ...... 30 Zahl Zugriffsrecht ...... 29, 73 Fließkommazahl ...... 209 ändern ...... 78 ganze ...... 209 anzeigen ...... 31 komplexe ...... 209 fehlendes ...... 31 lange Ganzzahl ...... 209 Zusatzhardware ...... 23 Zusatzprogramme ...... 60 Zweidrahtschnittstelle ...... 294

364 Know-howWissen, wie’s für geht. Kreative.

Daniel Kampert arbeitet im Bereich Entwicklung der Firma Jenoptik Robot GmbH. Der begeisterte Bastler entwickelt be- ruflich wie privat elektronische Schaltungen. Er programmiert für diverse Plattformen wie Raspberry Pi, Atmel AVR und wei- tere. In seinem Blog unter www.kampis-elektroecke.de schreibt er regelmäßig Anleitungen zu Bastelthemen.

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Gerne dürfen Sie diese Leseprobe empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Daniel Kampert Die vorliegende Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Raspberry Pi – Der praktische Einstieg Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag. 364 Seiten, broschiert, in Farbe, 3. Auflage 2015 19,90 Euro, ISBN 978-3-8362-3902-8 Teilen Sie Ihre Leseerfahrung mit uns! www.rheinwerk-verlag.de/3984