Der Raspberry Pi ist ein kleiner sehr vielseitig einsetzbarer Computer, der die Grundlage mehrerer meiner Projekte darstellt (z. B. den netzwerkweiten Werbeblocker, meine Heimautomatisierung oder meine eigene Cloud). Da die Grundinstallation im Prinzip immer die Gleiche ist, habe ich mich dazu entschlossen, diese einmal hier zu dokumentieren, sodass ich in den Tutorials, in denen ich auf die Einrichtung der jeweiligen Software eingehe, einfach auf diesen Artikel verweisen kann.
Das Betriebssystem
Zunächst muss man sich dafür entscheiden, welches Betriebssystem man auf dem Raspberry Pi verwenden möchte. Mittlerweile gibt es eine Vielzahl an verschiedenen Systemen, vom einfachen Raspbian und Raspbian lite über Ubuntu Server und Windows 10 IoT Core bis hin zu zahllosen angepassten (oftmals auf Raspbian basierenden) Systemen, die speziell auf eine bestimmte Software abgestimmt sind bzw. deren Installation vereinfachen, wie z.B. NextCloudPi , wenn man den Pi nur für seine Nextcloud verwenden möchte OpenELEC , wenn der Pi nur als Kodi Mediacenter dienen soll.
Das Betriebssystem der Wahl lädt man sich auf seinen PC herunter. In der Regel liegt es als zip-Datei vor. Diese muss auch nicht weiter entpackt werden, sondern kann so für die Installation verwendet werden.
Für dieses Tutorial verwende ich Raspbian lite, ein sehr einfaches, auf Debian basierendes Betriebssystem ohne grafische Oberfläche. Der Installationsprozess ist aber für alle Systeme sehr ähnlich.
Flashen
Die Installation des Betriebssystems auf einem Raspberry Pi unterscheidet sich ein wenig von der Installation auf einem normalen PC und wird als Flashen bezeichnet. Hierfür bietet sich die Software
balenaEtcher
an, die es für Linux, macOS und Windows gibt. Nachdem man sich balenaEtcher auf seinem PC heruntergeladen und installiert hat, öffnet man das Programm und hat die Möglichkeit, ein Image
auszuwählen. Das Image ist das heruntergeladene Betriebssystem für den Raspberry Pi, das im zip-Format vorliegt. Diese zip-Datei wählt man also aus. Als nächstes muss man die microSD-Karte vom Raspberry Pi, auf der das Betriebssystem installiert werden soll, mit dem PC verbinden und diese im Programm auswählen. Mit dem Klick auf Flash
wird das Betriebssystem auf die ausgewählte Speicherkarte installiert.
Betriebssystem vorkonfigurieren
Bevor man die microSD-Karte nun in den Raspberry Pi steckt, kann man noch ein paar Dinge vorkonfigurieren.
1. ssh-Zugang einrichten
Da ich meine Pis headless, d.h. ohne angeschlossenen Monitor betreibe, aktiviere ich zunächst den Zugriff per secure shell
(ssh), sodass ich von meinem PC aus über das Terminal auf den Pi zugreifen kann. Hierfür genügt es, eine leere Datei mit dem Namen ssh
(ohne Dateiendung) auf die /boot
-Partition der microSD-Karte zu kopieren bzw. die Datei direkt dort zu erstellen.
Damit ist es möglich, sich mit dem folgenden Terminal-Befehl auf dem Pi anzumelden:
$ ssh pi@<ip-adresse-des-pis>
Die IP-Adresse des Raspberry Pis kann man am einfachsten im Menü des WLAN-Routers erkennen. Möchte man die ssh-Verbindung noch etwas bequemer und sicherer gestalten, kann hierfür auch die Verwendung von ssh-Keys einrichten, was ich in einem anderen Tutorial bereits beschrieben habe.
2. WLAN vorkonfigurieren
Bei Bedarf kann bzw. sollte man auch jetzt schon die WLAN-Verbindung vorkonfigurieren, insbesondere bei einem headless betriebenen Pi Zero W, der keinen Ethernetanschluss besitzt.
Damit sich der Raspberry Pi headless mit dem WLAN verbinden kann, muss zunächst eine Datei namens wpa_supplicant.conf
in der boot-Partition erstellt werden, die den folgenden Inhalt haben sollte:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="SSID"
scan_ssid=1
psk="SSID password"
key_mgmt=WPA-PSK
}
Wenn man das eigene WLAN-Passwort nicht gerne im Klartext in der Datei stehen haben möchte, kann man sich auch einen WPA Key mit dem folgenden Terminalbefehl generieren, wobei SSID
durch den Netzwerknamen und SSID password
durch das WLAN-Passwort ersetzt werden müssen.
$ wpa_passphrase 'SSID' 'SSID password'
Als Ergebnis erhält man eine Ausgabe, die man an entsprechender Stelle in die wpa_supplicant.conf
-Datei kopieren kann.
network={
ssid="<SSID>"
#psk="<SSID password>"
psk=<a-very-long-string-of-alpha-numeric-characters-will-be-here>
}
Die Zeile, die mit einer Raute beginnt (#psk=""), sollte aus Sicherheitsgründen entfernt werden, da sie das Passwort im Klartext enthält.
Raspberry Pi starten
Hat man das Betriebssystem erfolgreich auf die microSD-Karte geflasht und den ssh-Zugang (sowie ggf. das WLAN) konfiguriert, kann die microSD-Karte aus dem PC genommen und in den Raspbery Pi eingesetzt werden. Mit dem Anschließen des Stromkabels startet der Pi automatisch. Der erste Boot-Vorgang kann je nach verwendetem Betriebssystem (und Geschwindigkeit der microSD-Karte) etwas dauern. Anschließend sollte ein ssh-Zugang möglich sein.
Die erste Verbindung zum Raspberry Pi
Je nachdem, ob man den Zugriff per ssh-key konfiguriert hat oder nicht, wird dem folgenden Terminalbefehl eine ssh-Verbindung zum Raspberry Pi hergestellt:
$ ssh pi@<ip-adresse-des-pis> # ohne ssh-key
$ ssh Kurzname # mit ssh-key und angepasster .ssh-config
Nun sollte man auf der Shell des Raspberry Pis sein, d.h. man arbeitet nun direkt auf dem Pi.
Passwort ändern
Bei der Installation von Raspbian wird standardmäßig der Benutzer pi
mit dem Passwort raspberry
angelegt. Dieses sollte aus Sicherheitsgründen nach der Erstanmeldung mit dem folgenden Befehl geändert werden:
$ passwd
Auf Aktualisierungen überprüfen
Die Systemimages, die man sich herunterladen kann werden in der Regel nicht täglich aktualisiert, sodass zwischen der Erstellung des Images und dem Zeitpunkt der ersten Verwendung teilweise einige Monate liegen können. Um die Software auf den aktuellen Stand zu bringen und Sicherheitsupdates einzuspielen, wird mit den folgenden beiden Befehlen überprüft, ob Systemaktualisierungen zur Verfügung stehen und diese ggf. installiert:
$ sudo apt update # prüft, ob Updates verfügbar sind
$ sudo apt upgrade # installiert eventuelle Updates
raspi-config anpassen
Die raspi-config
ist ein grafisches Menü, mit dem man den Raspberry Pi noch etwas anpassen kann. Hier finden sich verschiedene Systemeinstellungen, z.B. zum Ändern des Passwortes und der Netzwerkeinstellungen, der Sprach- und Zeitzoneneinstellungen, aber auch Möglichkeiten, die verschiedenen Ein- und Ausgänge vom Pi zu konfigurieren.
Geöffnet wird die raspi-config
mit dem Befehl
$ sudo raspi-config
Ich passe hier die Lokalisierungseinstellungen (Sprache und Zeitzone) an, indem ich mit den Pfeiltasten auf den Menüpunkt Localisation Options
gehe.
Außerdem gehe ich auf den Menüpunkt Advanced Options
und hier auf den Unterpunkt Expand Filesystem
. Der Hintergrund davon ist, dass beispielsweise ein Raspbian lite Image bei der Installation nicht den vollständigen Speicher der microSD-Karte nutzt, sondern nur ca. 2 GB (wenn ich das richtig in Erinnerung habe). Mit der Option Expand Filesystem
wird der vollständige Speicherplatz der microSD-Karte verfügbar gemacht.
Anschließend geht man (mit den Pfeiltasten nach rechts oder der Tabulatortaste) auf Finish
und lässt den Raspberry Pi neu starten.
Energiesparmaßnahmen am Raspberry Pi vornehmen
Da meine Raspberry Pis headless betrieben werden, deaktiviere ich unnötige Hardwarefunktionen wie den HDMI-Ausgang oder die LED auf dem Board, um ein paar mA Strom zu sparen .
Der HDMI-Ausgang lässt sich mit dem folgenden Befehl vorübergehend (d.h. bis zum nächsten Neustart) deaktivieren:
$ /usr/bin/tvservice -o
Um ihn schon beim Booten zu deaktivieren, fügt man diese Zeile in die Datei /etc/rc.local
ein. Um den HDMI-Ausgang wieder zu aktivieren, ändert man einfach -o
in -p
.
Außerdem kann man die kleine LED, die sich auf dem Board befindet und die Aktivität des Raspberry Pi anzeigt, deaktivieren. Dies geschieht beim Raspberry Pi Zero, indem man die folgenden Zeilen zu der Datei /boot/config.txt
hinzufügt:
# Disable the ACT LED on the Pi Zero.
dtparam=act_led_trigger=none
dtparam=act_led_activelow=on
Die größeren Raspberry Pis haben mehr als eine LED und hier unterscheidet sich die Vorgehensweise ein wenig. In diesem Fall müsste man die folgenden Zeilen zu der Datei /boot/config.txt
hinzufügen:
# Disable the ACT LED.
dtparam=act_led_trigger=none
dtparam=act_led_activelow=off
# Disable the PWR LED.
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off