Nach der Vorstellung von DietPi als alternative zum Raspberry Pi OS möchte ich euch in diesem Beitrag nun zeigen, wie man damit einen Raspberry Pi ohne angeschlossenen Bildschirm einrichten kann. Ähnlich wie in einem früheren Beitrag, der die Erstinstallation mit den erweiterten Optionen des Imager für das Raspberry Pi OS zeigt. Im Gegensatz zum Raspberry Pi OS gibt es keine DietPi-Images mit Desktopumgebung. Auf Wunsch kann man mit dem hier gezeigten Weg auch eine grafische Oberfläche installieren.
Was benötigst du?
- Einen Raspberry Pi (Generation egal)
- Einen Speicherkartenleser (etwa diesen hier) mit Speicherkarte, sodass ihr diese an eurem PC nutzen könnt
- Einen Computer mit Windows oder Linux
- Das quelloffene und kostenfreie Entpackprogramm 7-Zip
- balenaEtcher (für Windows – unter Linux nur erforderlich, wenn du die Konsole nicht nutzen möchtest)
Passendes Image herunterladen und auf die SD-Karte überspielen
Rein theoretisch kann man den Imager auch mit einem eigenen Image verwenden. Allerdings funktionieren die Erweiterten Optionen nur mit Raspberry Pi OS korrekt. Unter Ubuntu haben diese sogar den Boot des Pi verhindert. Aus diesem Grunde würde ich für alle anderen Images unter Windows balenaEtcher als neutrale, aber dennoch einfache Software empfehlen. Es ist für Windows und Linux verfügbar, wobei ihr unter Linux ja auch das vorinstallierte Werkzeug dd auf der Konsole nutzen könnt.
Unabhängig vom Betriebssystem müssen wir zunächst das Image von der DietPi Homepage herunterladen. Dazu oben auf Raspberry Pi klicken.
Dort werden uns nun insgesamt sechs Images angeboten:
- Ist das klassische 32 Bit Image für alle Pis. Wenn du dir unsicher bist, solltest du dieses auswählen.
- Dieses Image ist für die Nachfolgearchitektur ARMv7 und läuft daher nicht auf dem Raspberry Pi 1 sowie dem Zero der ersten Generation. Setzt ebenfalls auf die 32-Bit Architektur.
- Wenn du ein 64 Bit Betriebssystem benötigst (z.B. für Virtualisierung mit Proxmox), ist dies das Richtige. Bedenke, dass 64 Bit noch recht neu ist und dies erst mit den größeren Editionen des Raspberry Pi 4 wirklich Sinn macht – mit der 64 Bit Architektur kann man nämlich mehr als 4 GB Arbeitsspeicher nutzen.
- Dieses Image ist für Amiberry vorkonfiguriert, ein Amiga-Emulator.
- Siehe 4, nur für ARM v7 statt v6
- Wie #4 ist auch dieses Image vorkonfiguriert, allerdings mit einer Weboberfläche für Allo. Dies ist für Audio-Enthusiasten interessant.
Ich entscheide mich für das ARMv7 32 Bit Image, es kommt auf einem Raspberry Pi 4 mit 4 GB RAM zum Einsatz.
Der Download erfolgt in Form eines 7-Zip Archives. Dies muss zunächst entpackt werden. Unter Windows per Rechtsklick auf das .7z Archiv > 7-Zip > Entpacken nach …
Unter Linux das Paket p7zip-full installieren, sofern nicht bereits vorhanden:
sudo apt install p7zip-full
Anschließend wahlweise über die grafische Oberfläche entpacken, z.B. mit dem Kontextmenü-Eintrag, oder über die Kommandozeile:
7z x DietPi_RPi-ARMv7-Bullseye.7z
Mit beiden Varianten habt ihr nun einen Ordner mit dem gleichen Namen des Archives. Er enthält eine .img Datei, die wir nun mit balenaEtcher auf die Speicherkarte Flashen. Dazu legen wir die Micro-SD Karte für den Pi in den Kartenleser ein, danach Etcher starten. Etcher kann sowohl unter Windows als auch Linux und MacOS verwendet werden. Links auf Flash from file klicken und die soeben entpackte .img Datei auswählen.
Wenn die Speicherkarte vor dem Start eingelegt wurde, wird sie automatisch erkannt und ausgewählt. Ich empfehle, dennoch sicherheitshalber immer einmal auf Change zu klicken. Dort kann man prüfen, ob das richtige Laufwerk ausgewählt wurde. Auch hier würde ich alle anderen Speichermedien wie USB-Sticks & co möglichst trennen, damit ihr nicht versehentlich das falsche Medium wählt.
Abschließend können wir rechts auf Flash! klicken, um den Vorgang zu Starten. Das Image in Form der .img Datei wird nun auf die Speicherkarte geschrieben.
Unter Windows müsst ihr die Nachfrage der Benutzerkontensteuerung bestätigen, da Etcher Administratorrechte benötigt. Außerdem werdet ihr – wie auch beim Raspberry Pi Imager – mit „Datenträger einlegen“ und Fehlermeldungen vom Windows Explorer bombardiert, ein paar Beispiele:
Diese einfach mit dem X rechts oben schließen. Die Ursache liegt darin, dass Windows auch im Jahre 2021 die Linux-Dateisysteme nicht vernünftig unterstützt. Es handelt sich also um keine ernstzunehmenden Fehler. Unter Linux erhaltet ihr diese Fehler natürlich nicht.
Je nach Geschwindigkeit eurer Karte und des Kartenlesers sollte das Übertragen auf die Karte ungefähr in einigen Minuten abgeschlossen sein:
Vorkonfigurieren des Images: Hostname, WLAN etc. einrichten
Nun befindet sich eine lauffähige DietPi Installation auf der Karte. Wenn Ihr nicht gerade die Konsole auf einem an den Pi angeschlossenen Bildschirm mit Tastatur und Maus in Verbindung mit der kabelgebundenen Ethernet-Schnittstelle verwenden möchtet, bietet es sich an, das Image vorzukonfigurieren. Wie in meinem ersten Beitrag zur Vorstellung des DietPi erwähnt, kann man hier viele Dinge vorab einrichten. Das erspart nervige Dinge wie das Abtippen des WLAN-Schlüssels auf der Konsole.
Ein grafisches Werkzeug gibt es dafür unter DietPi allerdings nicht, die Vorkonfiguration geschieht komplett textbasiert. Dazu öffnet ihr die Boot-Partition im Windows Explorer. Unter Linux wahlweise im grafischen Dateiexplorer oder der Konsole.
Tipp für Windows-Nutzer: Manchmal ließ sich in meinen Tests die Boot-Partition direkt nach dem Flashen nicht öffnen. Hier hilft es, die Speicherkarte herauszunehmen und einige Sekunden später neu einzustecken. Dabei erscheinen zwar wieder die typischen Windows-Fehlermeldungen von oben, diese können auch hier ignoriert und geschlossen werden.
Auf der Boot-Partition findet ihr eine Textdatei namens dietpi.txt, die ihr mit einem Texteditor eurer Wahl öffnen könnt:
Im folgenden zeige ich euch die in meinen Augen interessantesten Einstellungen, die man hier vornehmen kann. Weitere finden sich in der DietPi-Doku bzw. im Forumsthema zur automatischen Installation. Ihr solltet die folgenden Schlüssel in der jeweiligen Datei suchen und die Werte entsprechend anpassen.
Sprache, Tastaturlayout und Zeitzone setzen
Mit diesen Variablen könnt ihr die Sprache, das Tastaturlayout und die Zeitzone entsprechend eures Wohnortes setzen. Für Deutschland sehen diese Variablen so aus:
AUTO_SETUP_LOCALE=de_DE.UTF-8
AUTO_SETUP_KEYBOARD_LAYOUT=de
AUTO_SETUP_TIMEZONE=Europe/Berlin
WLAN-Verbindung einrichten
Soll der Raspberry Pi per WLAN mit dem Netzwerk und Internet verbunden werden, könnt ihr dies hiermit aktivieren:
AUTO_SETUP_NET_WIFI_ENABLED=1
AUTO_SETUP_NET_WIFI_COUNTRY_CODE=DE
Name und Zugangsdaten werden allerdings in einer anderen Datei angegeben. Öffnet dazu dietpi-wifi.txt, sie liegt ebenfalls auf der Boot-Partition. Dort müsst ihr drei Zeilen ausfüllen:
aWIFI_SSID[0]='NameEuresWLANs'
aWIFI_KEY[0]='Euer WLAN-Schlüssel'
aWIFI_KEYMGR[0]='WPA-PSK'
Die erste Zeile ist der Name eures WLAN-Netzwerks. Diesen findet ihr zusammen mit dem Schlüssel (2. Zeile) meist auf der Rückseite des WLAN-Routers. Oder noch besser: Ihr habt diese Daten bei der Einrichtung geändert. Oft kann man diese in der Web-Schnittstelle des Routers nachschauen. Wie genau das funktioniert, variiert je nach Gerät.
aWIFI_KEYMGR[0] bezieht sich auf die Art der WLAN-Verschlüsselung. In den meisten Fällen kann dies bei WPA-PSK bleiben. Vor allem WEP ist seit Jahren unsicher und sollte nicht mehr verwendet werden.
Über die Zähler (hier die 0) kann man weiter unten zusätzliche WLAN-Netzwerke angeben. Dies könnte Sinn machen, wenn ihr z.B. zwei getrennte Netze für 2,4 und 4 GHZ habt. Im Regelfall wird das nicht gebraucht, sodass die WLAN-Konfiguration damit abgeschlossen ist. Der Pi sollte sich beim ersten Starten mit den hier angegebenen Daten zu eurem WLAN-Netz verbinden.
Statische IP-Adresse festlegen
Soll eurem Pi eine feste IP-Adresse vergeben werden statt einer dynamischen vom Router zugewiesenen, kann dies wie folgt konfiguriert werden:
AUTO_SETUP_NET_USESTATIC=1
AUTO_SETUP_NET_STATIC_IP=192.168.0.10
AUTO_SETUP_NET_STATIC_MASK=255.255.255.0
AUTO_SETUP_NET_STATIC_GATEWAY=192.168.0.1
AUTO_SETUP_NET_STATIC_DNS=192.168.0.1
Beachtet, dass ihr die Daten ggf. anpassen müsst, je nachdem welchen Adressbereich euer Router verwendet. Außerden muss die gewählte IP-Adresse in Zeile 2 außerhalb des Bereichs vom DHCP-Server liegen! Sonst kann es zu Konflikten kommen, wenn der DHCP-Server diese Adresse vergibt. Bei Fritz! Boxen beispielsweise beginnt der DHCP erst bei .20, d.H. alles darunter kann problemlos fest vergeben werden.
Hostname setzen
Der Hostname ist der Name eures Pis. Einige Router wie z.B. die von AVM legen automatisch einen DNS-Eintrag an. Darüber kann euer Pi innerhalb des Heimnetzwerkes erreicht werden, ohne sich mit IP-Adressen herumzuschlagen. Außerdem seht ihr den Hostname auf der Konsole. So lassen sich mehrere Geräte unterscheiden.
Standardmäßig verwendet DietPi den gleichnamigen Hostname, dieser kann aber frei geändert werden:
AUTO_SETUP_NET_HOSTNAME=nextcloud-pi
In diesem Beispiel heißt der Pi nextcloud-pi. Auf Leer- und Sonderzeichen solltet ihr verzichten und nur normale alphabetische Buchstaben sowie Minuszeichen verwenden.
Passwort setzen & Software automatisch installieren
Damit die folgenden Einstellungen wirksam werden, müssen wir AUTO_SETUP_AUTOMATED=1 setzen. Dadurch wird die Ersteinrichtung vollkommen automatisch anhand der dietpi.txt Datei durchgeführt. Auch die Lizenz (zu finden in dietpi-LICENSE.txt) wird automatisch akzeptiert.
DietPi bietet eine Vielzahl an Programmen, die automatisiert installiert werden können. Jedes Programm hat eine eigene Id, welche man aus der Software-Liste entnehmen kann. Beispielsweise steht die Id 162 für Docker. Um Docker automatisch zu installieren, setzen wir die Variable AUTO_SETUP_INSTALL_SOFTWARE_ID auf die Id des gewünschten Programmes.
Um mehrere Programme automatisch installieren zu lassen, einfach die Variable mehrfach angeben. Dieses Beispiel installiert den Texteditor vim (#20) und Docker (#162).
# vim
AUTO_SETUP_INSTALL_SOFTWARE_ID=20
# docker
AUTO_SETUP_INSTALL_SOFTWARE_ID=162
Ebenfalls sinnvoll ist es, das Systempasswort zu ändern. Standardmäßig lautet es „dietpi“ und kann für nahezu alle Programme genutzt werden: Neben dem Betriebssystembenutzern dietpi und root erhält man auch für die per DietPi-Software installierten Programme über dieses Kennwort Administrator-Zugang.
AUTO_SETUP_GLOBAL_PASSWORD=MeinNeuesPasswort
Mit SURVEY_OPTED_IN lässt sich festlegen, ob ein paar nicht all zu sensible Nutzungsdaten zur Verbesserung an DietPi gesendet (1) oder nicht gesendet (0) werden sollen. Beim Standardwert von -1 fragt das System bei der ersten Anmeldung danach.
Die restlichen Variablen
Dies war nur ein Teil, es gibt für einige sicher noch weitere interessante Einstellungen. So können verschiedene Standardprogramme festgelegt werden. Wer etwa lieber den Webserver Nginx statt Lighttpd nutzt, kann AUTO_SETUP_WEB_SERVER_INDEX=-1 setzen. Dies ist unter anderem auch für die Desktopumgebung möglich.
Das Vorkonfigurieren von einzelnen Programmen wie z.B. einem VNC-Server ist eben so möglich wie speziellere Dinge, beispielsweise einen Proxy-Server setzen. Wer daran Interesse hat, kann sich die Beispiele in der Datei anschauen.
Weitere Möglichkeiten und eigene Skripte zur Einrichtung verwenden
Sollten euch die in der dietpi.txt verfügbaren Anpassungsmöglichkeiten nicht ausreichen, könnt ihr auf der Boot-Partition eine Datei namens Automation_Custom_Script.sh anlegen. Sie wird automatisch zum Ende der ersten Einrichtung ausgeführt. Da es sich um ein Shell-Skript handelt, habt ihr freie Hand und könnt euren Pi bis ins letzte Detail vorkonfigurieren.
Erster Start deines Raspberry Pi mit DietPi
Nachdem ihr mithilfe der dietpi.txt Datei alle Einstellungen entsprechend eurer Umgebung und Wünschen gesetzt habt, kann euer Pi mitsamt der vorbereiteten SD-Karte gestartet werden. Der erste Start kann mehrere Minuten dauern, bis ihr euch per SSH auf den Hostname bzw. die IP-Adresse verbinden könnt. Die Anmeldung ist mit den Benutzern dietpi und root möglich. Standardmäßíg mit dem Passwort dietpi, sofern ihr dies nicht über die Variable AUTO_SETUP_GLOBAL_PASSWORD in der dietpi.txt geändert habt. Aus Sicherheitsgründen ist die Verwendung eines eigenen Passwortes wie üblich zu empfehlen.
Das System ist danach sofort einsatzbereit, ohne weitere Konfiguration. Wenn ihr Software zur Installation angegeben habt, ist diese nun verfügbar. In diesem Beispiel vim und docker:
Natürlich kann man mit den Werkzeugen wie dietpi-software jederzeit Programme nachinstallieren oder die Konfiguration ändern.
Sehr gut beschrieben, super.
In der DietPi-Doku gibt es ebenfalls ein kleines how-to, welches die dietpi.txt beschreibt. Eventuell ist dort der ein oder andere Hinweis zusätzlich zu der obigen Anleitung enthalten.
https://dietpi.com/docs/usage/#how-to-do-an-automatic-base-installation-at-first-boot-dietpi-automation