Raspberry Pi einrichten

In dieser Anleitung zeigen wir, wie man Raspbian auf dem Raspberry Pi installiert und die wichtigsten Einstellungen nach der Installation. Auch auf die Hardware wird dabei eingegangen, zum Beispiel die Wahl eines passenden Netzteils.

Lesezeit: 18 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen
Von
  • Felix Pfeifer
Inhaltsverzeichnis

Die Einrichtung eines neuen Raspberry Pi – eigentlich eine leichte Aufgabe – hält einige Stolperstellen parat, die selbst erfahrene Systemadministratoren zum Schwitzen bringen. In diesem Artikel zeigen wir worauf es ankommt und wie man das Standardbetriebssystem Raspbian auf dem Pi installiert.

Auch für Bastelarbeiten am Raspberry Pi sollte man nicht auf ein passendes Gehäuse verzichten, denn ein versehentlich herbeigeführter Kurzschluss, zum Beispiel durch einen unter den Pi gerutschten Schraubenzieher, kann im besten Falle einen Absturz des Betriebssystems zur Folge haben, aber auch zu irreparablen Schäden am Pi führen. Für den Raspberry Pi gibt es eine große Anzahl von Gehäusen verschiedener Anbieter. Einige Gehäuse sind gegen Spritzwasser geschützt, andere sind auf Industrieanwendungen spezialisiert, oder können neben dem Pi auch noch Shields unterbringen. Maker sollten darauf achten, wie gut die GPIO-Pins erreichbar sind, wenn der Raspberry Pi im Gehäuse sitzt.

Für einen stabilen Betrieb des Raspberry Pi ist ein passendes Netzteil Vorraussetzung. Auch wenn Spannung und Anschluss eines Handy-Ladegeräts passen, ist dies in den meisten Fällen die schlechteste Wahl. Für den Raspberry Pi 3 empfiehlt die Raspberry Foundation ein 5-Volt-Netzteil, das mindestens 2 Ampere liefert. Plant man noch einen Monitor, Tastatur und Maus anzuschließen, sollte man jedoch ein größeres Netzteil mit mindestens 2,5 Ampere benutzen. Falls die Spannung einbricht, weil der Raspberry Pi zu viel Strom zieht, kann es zu Ausfällen bei den angeschlossenen Geräten kommen, oder das ganze System stürzt ab und bootet neu. Die älteren Modelle kommen auch mit weniger Strom aus, mit 2 Ampere ist man dann auf der sicheren Seite.

Diese Grafik wird bei zu geringer Stromzufuhr angezeigt.

Wenn der Strom zum Booten des Systems ausreicht, aber der Prozessor beim Ausführen von aufwändigen Anwendungen mehr Strom braucht, als das Netzteil zur Verfügung stellen kann, dann wird dies durch eine quadratische Regenbogengrafik in der oberen rechten Ecke des Bildschirms angezeigt.

Um das Netzteil an den Raspberry Pi anzuschließen wird ein USB-Kabel mit Micro-USB-Stecker benötigt. Auch hier ist auf Qualität zu achten, denn billige Kabel sind oft nicht darauf ausgelegt so hohe Ströme zu führen. Ihr ohmscher Widerstand ist zu hoch, so dass zu viel Spannung über dem Kabel abfällt. Bei einem Strom von 2 Ampere genügt schon 0,5 Ohm, damit 1 Volt über dem Kabel abfällt und der Raspberry Pi nur noch mit 4 Volt versorgt wird.

Die Raspberry Foundation empfiehlt eine Klasse-4-SD-Karte mit 8 GB Speicher. Der Raspberry Pi schafft aber auch den Datendurchsatz einer Klasse-10-Karte. Die neueren Modelle unterstützen nur microSD-Karten-Formate, die man allerdings auch für die älteren Raspberry Pis nutzen kann, da sie in der Regel mit Adapter ausgeliefert werden. Eine Liste mit kompatiblen SD-Karten gibt es hier.

Der Raspberry Pi ist platzsparend nur mit einer HDMI-Buchse ausgestattet und einer Composite-Video-Schnittstelle, die im Kopfhöreranschluss intergriert ist. Mit Hilfe eines Adapters kann man auch ältere Monitore benutzen, die nur über DVI-Eingänge verfügen. Um Composite Video nutzen zu können, benötigt man ebenfalls einen Adapter. Ein Anschluss per VGA-Kabel ist nicht möglich. Auch der Raspberry Pi Zero verfügt über Composite Video, das dort über Pins zugänglich ist. Einen Anschluss oder ein Kabel muss man sich also selbst löten.

Das Betriebssystem des Raspberry Pi wird von der SD-Karte gebootet. Die Raspberry Foundation stellt einige Speicherabbilder (Disk-Images) verschiedener Betriebssysteme zum Download bereit, die leicht auf eine SD-Karte geschrieben werden können. Der Standard ist Raspbian (hier gehts zum Download der aktuellen Version), da es eine schlanke grafische Oberfläche bietet und alle Funktionen des Raspberry Pi unterstützt. Das Schreiben des Disk-Images kann von einem Windows- oder Linux-Rechner aus bewerkstelligt werden.

Linux

Unter Linux kann das Disk-Image mit dem Programm dd auf die SD-Karte geschrieben werden. Um dd zu starten benutzt man ein Terminal und gibt dort folgende Befehlszeilen ein.

Zuerst wechselt man in das Verzeichnis, in dem sich das heruntergeladene Image befindet:

cd Downloads/

Nun entpackt man das Image mit unzip, wobei der Dateiname abweichen kann, falls man eine neuere Version benutzt:

unzip 2016-05-27-raspbian-jessie.zip

Die nächsten Schritte funktionieren auf den meisten Linux-Distributionen nur unter dem Benutzerkonto root. Man kann dazu entweder permanent mit auf dieses Konto ausweichen:

su -

Alternativ stellt man den folgenden Befehlen ein sudo voran. Diese Vorgehensweise wird hier verwendet, falls man keine ausreichenden Rechte für sudo hat, muss man su - benutzen und lässt dann das sudo in jeder Zeile einfach weg.

Bevor man das Image auf die SD-Karte schreibt, muss man die Gerätedatei der Karte ermitteln. Dazu führt man die SD-Karte ein und lässt sich direkt danach die Systemmeldungen ausgeben:

sudo dmesg

Die Ausgabe von dmesg liefert den passenden Namen der Gerätedatei:

sd 8:0:0:0: [sdb] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
sdb: sdb1

In diesem Falle ist es sdb, wobei sdb1 anzeigt, dass eine Partition auf der Karte vorhanden ist. Je nachdem wie viele Speichermedien angeschlossen sind, kann der Name abweichen und sdc, sdd und so weiter lauten. Bei einem internen Kartenleser zum Beispiel bei einem Laptop kann der Name auch mmcblk0 lauten. Der Vollständige Pfad zur Gerätedatei lautet dann entsprechend /dev/sdb, beziehungsweise /dev/sdc, /dev/sdd, oder /dev/mmcblk0.

Mit dieser Information kann das Image nun auf die Karte geschrieben werden:

sudo dd if=2016-05-27-raspbian-jessie.img of=/dev/sdb

Vorsicht: verwendet man hier die falsche Gerätedatei, dann kann eine Festplatte, oder ein anderes Speichermedium mit dem Image überschrieben werden und es kommt zum Verlust von Daten!

Falls zum Beispiel mehrere Festplatten im Rechner eingebaut sind, dann verweist die Datei /dev/sdb in der Regel auf eine Festplatte und nicht auf die SD-Karte.

Windows

Unter Windows wird das Disk-Image mit Hilfe des Programms Win32 Disk Imager auf die SD-Karte geschrieben. Zuerst muss man sich das Programm installieren. Am Ende der Installation wird man gefragt, ob man den Win32 Disk Imager direkt starten möchte. Der erste Start aus der Installation heraus bricht jedoch in der Regel mit einer Fehlermeldung ab. Dies hat jedoch keine weiteren Folgen, man kann die Meldung einfach ignorieren.

Nun navigiert man in das Verzeichnis, in dem das Image liegt und entpackt es. Das Menü zum entpacken erreicht man durch einen Rechtsklick auf die Datei und dort wählt man den Eintrag Alle extrahieren:


Nun öffnet sich ein Fenster, in dem man auf den Button Extrahieren klickt:

Der Vorgang wird eine Weile dauern. Wenn das Image fertig entpackt ist, muss man zuerst die SD-Karte an den Kartenleser einführen und öffnet danach den Win32 Disk Imager. Da das Programm zum Formatieren von Datenträgern besondere Rechte benötigt, wird in einem Fenster noch abgefragt, ob man damit einverstanden ist. Hier bestätigt man mit Ja:

Bevor man das Image auf die SD-Karte schreibt, sollte man sicherstellen, dass das richtige Laufwerk ausgewählt ist, da ansonsten Daten auf einem falsch gewählten Datenträger überschrieben werden. In unserem Falle ist F:\ korrekt. Der Laufwerksbuchstabe kann abweichen, je nachdem wie viele Speichermedien am Rechner angeschlossen sind:

Im nächsten Schritt muss man die Image-Datei in einem Datei-Browser-Fenster auswählen. Dazu klickt man das Ordner-Symbol:

Nun muss man den Button Write klicken und die Sicherheitsabfrage (Are you sure you want to continue?) mit Yes bestätigen. Das Image wird dann auf die SD-Karte übertragen, was eine Weile dauern kann. Der Fortschritt wird angezeigt und am Ende des Schreibvorgangs erscheint ein Fenster mit der Nachricht Write Successful.

Hat man Netzteil, Monitor, Tastatur und Maus angeschlossen, kann die SD-Karte jetzt in den Raspberry Pi eingeführt und das Netzteil angeschalten werden. Die Anzahl der Himbeeren auf dem Bootbildschirm zeigt an, wie viele Prozessorkerne vom System erkannt wurden. Beim Raspberry Pi 1 ist es einer, beim Pi 2 sind es vier und beim Pi 3 werden auch nur vier erkannt, da der ARMv8 Prozessor des Pi 3 nur im ARMv7-Modus arbeitet.

raspi-config

Raspbian wird mit einem Programm zur Konfiguration einiger wichtiger Einstellungen ausgeliefert.Dazu gehören die Änderung des Benutzer-Passworts, Lokalisierung, Aktivierung der Pi-Cam, Hostname, Zuweisung geteilten Speichers für den Grafikcoprozessor, Aktivierung eines SSH-Servers, Boot in die Kommandozeile oder zum Desktop und anderes. Um raspi-config aufzurufen, öffnet man ein Terminal und gibt ein:

sudo raspi-config

Partition vergrößern

Auf der SD-Karte werden beim Schreiben des Images zwei Partitionen angelegt. Eine Boot-Partition, die den Kernel und die wichtigsten Startskripte enthält, sowie eine Root-Partition, die das Linux-Betriebssystem und Platz für Benutzerdaten enthält.

Die Root-Partition ist standardmäßig 2 GB groß. Verwendet man ein aktuelles Raspian-Image, wird die Root-Partition beim ersten Booten automatisch bis zur maximal möglichen Größe erweitert. Bei älteren Versionen bleibt sie 2 GB groß, was nur für die wenigsten Anwendungen ausreicht. Die Partition kann dann mit raspi-config auf die maximal mögliche Größe erweitert werden. Der erste Eintrag des Menüs in raspi-config heißt Expand Filesystem und erledigt die Erweiterung der Partition ohne weiteres Zutun.

Tastatur-Layout

Ein deutsches Layout der Tastatur kann auf dem Desktop-Menü eingestellt werden: Menu / Preferences / Mouse and Keyboard Settings / Keyboard / Keyboard Layout... In dem neu geöffneten Fenster wählt man unter Country den Eintrag Germany aus und unter Variant am besten German (eliminate dead keys).

Swap

Der Raspberry Pi hat je nach Version 512 MB bis 1 GB RAM-Speicher. Für viele Anwendungen ist das ausreichend, aber in einigen Fällen benötigt man mehr Speicher, zum Beispiel für das Kompilieren großer Softwarepakete. Um für solche Aufgaben zusätzlichen Arbeitsspeicher zur Verfügung zu stellen, kann man einen Teil der SD-Karte oder eines USB-Sticks benutzen. Unter Windows wird zu diesem Zweck überlicherweise eine Auslagerungsdatei auf der Festplatte genutzt. Unter Linux nennt man diese Technik Swapping und in der Regel wird dazu eine extra Festplattenpartition eingerichtet. Raspbian ist so konfiguriert, dass dazu eine Swap-Datei auf der SD-Karte genutzt wird, die standardmäßig schon eingerichtet ist und 100 MB Speicherplatz belegt.

Da die Haltbarkeit von SD-Karten im Vergleich zu Festplatten um ein Vielfaches geringer ist, sollte man möglichst sparsam mit Schreibzugriffen umgehen. Eine Swap-Datei oder -Partition auf der SD-Karte ist also keine gute Idee, wenn man viele speicherintensive Anwendungen mit dem Raspberry Pi nutzt. Die Auslastung des Arbeitsspeichers und der Swap-Datei kann mit folgendem Kommando in einem Terminal geprüft werden:

free -h

Mit der Option -h wird die Ausgabe in menschenlesbare Form gebracht, so dass je nach Größe der Speicherzahlen Byte, Kilobyte, Megabyte und so weiter angezeigt werden. In der letzten Zeile der Ausgabe von free wird die Nutzung der Swap-Datei angezeigt:

             total       used       free      shared    buffers     cached
Mem:
925M 204M 721M 7.0M 12M 106M
-/+ buffer/chache: 84M 840M
Swap: 99M 0B 99M

Interessant ist die Spalte used, in der die Ausnutzung der Datei angezeigt wird.

Die geringe Größe von 100 MB der Swap-Datei wird sehr speicherhungrige Anwendungen kaum zufriedenstellen und ist für die meisten Aufgaben überflüssig. Für Echtzeitanwendungen, zum Beispiel im Audio-Bereich, empfiehlt es sich aufgrund der geringen Geschwindigkeit des Swap-Speichers generell auf diesen zu verzichten. Im Folgenden zeigen wir deshalb, wie man die Swap-Datei deaktiviert und eine große Swap-Partition auf einem USB-Stick einrichtet.

Da die meisten Befehle Administratorrechte brauchen und man sich Tipparbeit spart, wenn man nicht jeder Zeile ein sudo voranstellen muss, gibt man zuerst im Terminal ein:

sudo su -

Mit dem nächsten Kommando überprüft man den Status der Swap-Datei:

service dphys-swapfile status

Die dritte Zeile der Ausgabe des Befehls liefert Auskunft darüber, ob die Swap-Datei aktiv ist oder inaktiv. Bevor man die Swap-Datei deaktiviert, muss man sie zunächst abmelden:

swapoff -a

Nun kann die Swap-Datei deaktiviert werden:

service dphys-swapfile stop

Und schließlich kann das Startskript, das die Swap-Datei beim nächsten Booten wieder aktivieren würde, abgeschalten werden:

systemctl disable dphys-swapfile

Das Swapping ist jetzt permanent deaktiviert. Um eine Swap-Partition auf einem USB-Stick anzulegen, zum Beispiel für einen größeren Kompiliervorgang, sind folgende Schritte nötig. Zuerst müssen Partitionen angelegt werden, wenn nicht der gesamte USB-Stick verwendet werden soll. Das kann zum Beispiel mit cfdisk erledigt werden oder einem beliebigen anderen Partitionierungsprogramm. Sofern der Stick das einzige am Raspberry Pi angeschlossene USB-Speichermedium ist, heißt die entsprechende Gerätedatei /dev/sda. Sind mehrere USB-Speichermedien angeschlossen, kann dies abweichen. Um Datenverlust durch unbeabsichtigtes Löschen einer Partition zu verhindern, sollte man sichergehen, dass man die korrekte Gerätedatei benutzt. Der vollständige Befehl lautet:

cfdisk /dev/sda

Da eine Änderung der Partitionsgröße mit cfdisk nicht möglich ist, muss man die gewünschte Größe beim Anlegen der Partition angeben. Um Partitionsgrößen zu ändern muss man deshalb die Partitionen erst löschen und dann neu anlegen. Die Daten auf einer Partition gehen dabei immer verloren.

Ansicht des Partitionslayouts mit cfdisk

Hat man eine Partition angelegt, muss diese noch formatiert werden:

mkswap /dev/sda1

Als letztes muss die Swap-Partition am System angemeldet werden:

swapon /dev/sda1

Hat man die Arbeiten unter dem Benutzerkonto root abgeschlossen, sollte man sich wieder ausloggen und das Standardnutzerkonto verwenden:

exit

Um das Swapping auf dem USB-Stick auszuschalten benutzt man folgenden Befehl:

sudo swapoff /dev/sda1

Um die Swap-Partiotion auf dem USB-Stick permanent einzubinden und schon beim Booten zu aktivieren muss man der Datei /etc/rc.local folgende Zeile hinzufügen:

swapon /dev/sda1

Diese Zeile darf nicht die letzte Zeile der Datei sein, da am Ende der Datei immer exit 0 stehen muss, damit sie beim Booten korrekt ausgeführt werden kann. Zum Editieren der Datei kann man die textbasierten Editoren vi oder nano benutzen oder den grafischen Editor leafpad.

fstab

Möchte man die SD-Karte besonders schonend behandeln, kann man die Schreibzugriffe durch die Konfiguration der Datei /etc/fstab weiter einschränken. Standardmäßig werden unter Linux die Zugriffszeiten einer Datei auch beim Lesen auf dem Dateisystem gespeichert, was immer einen Schreibzugriff darstellt. Dieses Verhalten kann beim Anmelden (mounten) einer Partition durch die Mountoptionen noatime abgestellt werden. Die Datei /etc/fstab ist für die Partition root schon mit der entsprechenden Option versehen:

proc            /proc     proc     defaults          0  0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1

Teilt man seine SD-Karte in weitere Partitionen, oder nutzt einen USB-Stick um ihn unter dem Verzeichnis home zu mounten, sollte man diese Option auch für diese Partitionen verwenden, weil die Speichermedien dadurch weniger belastet werden, was sich ebenfalls in einem kleinen Performance-Schub bemerkbar macht.

Nutzt man den Raspberry Pi als Desktop-Rechner, empfiehlt es sich einen USB-Stick unter dem Verzeichnis /home zu mounten um Schreibzugriffe des Nutzers nicht auf dem gleichen Speichermedium auszuführen, auf dem das System installiert ist. Damit auch die Zugriffsrechte der Dateien korrekt gespeichert werden, muss man den Stick im ext4-Format formatieren:

sudo mkfs.ext4 /dev/sda1

Die Partition kann jetzt eingebunden werden:

mount /dev/sda1 /home

Nun muss das Home-Verzeichnis des Standardnutzers neu angelegt werden und der Besitzer des Verzeichnisses eingestellt werden:

sudo mkdir /home/pi
sudo chown pi:pi

Um die neue Home-Partition permanent einzubinden, trägt man folgende Zeile in die fstab ein:

/dev/sda1 /home auto defaults,noatime 1 2

Ramdisks

Auch auf andere Weise kann die SD-Karte geschont werden. Besonders viele beziehungsweise regelmäßige Schreibzugriffe gibt es in den temporären und Log-Verzeichnissen. Man kann diese Verzeichnisse ebenfalls auf einem USB-Stick unterbringen, oder aber eine Ramdisk erstellen – eine virtuelle Partition dynamischer Größe im RAM-Speicher. Beim Mounten einer Ramdisk, kann die Größe durch die Option size begrenzt werden.

Dieses Vorgehen ist für Verzeichnisse von Log-Dateien nur dann sinnvoll, wenn die Logs nicht dazu genutzt werden, die Ursache für einen Absturz zu finden. Denn wenn sie sich im RAM befinden, sind die Daten nach dem Absturz verloren, auch wenn sie zufällig auf einer Swap-Partition gespeichert wurden.

Die folgenden zusätzlichen Einträge in der fstab binden eine Ramdisk unter /tmp, /var/tmp, /var/log und /var/run ein:

none   /tmp      tmpfs  defaults,noatime,mode=1777  0 0
none /var/tmp tmpfs size=1M,noatime,mode=1777 0 0
none /var/log tmpfs size=1M,noatime,mode=0755 0 0
none /var/run tmpfs size=1M,noatime 0 0

Die Optionen müssen an das jeweilige System angepasst werden. Zum Beispiel genügt 1 MB Speicher unter /tmp für einige Anwendungen nicht aus. Wer sich nicht sicher ist, sollte die vorgegebenen Einstellungen verwenden.

Neben der Möglichkeit ein Image herunterzuladen und mit einem Hilfsprogramm auf die SD-Karte zu schreiben, kann man die vermeintlich einfachere Noobs-Installation benutzen. Diese Methode ist jedoch wesentlich langsamer, braucht mehr Speicher und gibt im Falle von Fehlern keine hilfreichen Meldungen aus. Zum Beispiel wird man bei einer SD-Karte mit zu wenig Speicher aufgrund defekter Sektoren nicht darauf hingewiesen, dass die Ursache einer fehlgeschlagenen Installation an der SD-Karte liegt. (fpf)