Raspberry Pi 3 Modell B für USB Boot vorbereiten

Seit dem 14. März 2018 ist mit dem Raspberry Pi 3 Modell B+ eine leicht überarbeite Version des Raspberry Pi 3B verfügbar. Bereits einen Tag vorher wurde eine aktuelle Version des auf Debian basierenden Raspbian Linux bereitgestellt, welches die neuen Funktionen des Modells B+ unterstützt. Für mich Grund genug ein Exemplar zu kaufen und das Booten von USB zu verproben – und endlich auch zu dokumentieren …

Raspberry Pi 3B+

Raspberry Pi3 B+, Verpackung und Mobiltelefon

Raspberry Pi3 B+ im Größenvergleich zum iPhone SE

Beim neuen Modell 3B+ wurde im Wesentlichen Modellpflege betrieben, in der Automobilindustrie wäre vermutlich die Rede von einem Facelift:

  • die CPU Geschwindigkeit wurde von 1,2GHz auf 1,4GHz erhöht
  • die Anbindung des LAN-Ports erlaubt jetzt bis zu 300MBit/s
  • WLAN funkt jetzt nach 802.11ac auch im 5GHz Band
  • Bluetooth 4.2 wird jetzt unterstützt

Weitere Details lassen sich der entsprechenden Ankündigung der Raspberry Pi Foundation entnehmen.

Booten von USB

Auch der 3B+ kann ab Werk nicht von USB-Medien booten. Doch analog zum Modell 3B (ohne Plus) kann dies mit wenigen Handgriffen geändert werden. Im Gegenteil, die für den 3B+ notwendige aktuelle Raspbian-Version macht den Vorgang sogar noch einfacher.


An dieser Stelle irrt der Autor, das 3B+ Modell des Raspberry Pi kann offenbar ohne Vorbereitung direkt von USB (und sicherlich auch via Netzwerk) booten. Die unten beschriebene Vorbereitung ist also für das Plus-Modell nicht notwendig, sondern nur für das Modell 3. Allerdings wird auch kein Schaden angerichtet, falls das Vorgehen für den 3B+ angewendet wird.


Für die Durchführung sind ein aktuelles Raspbian Linux, Etcher, ein guter USB-Stick (ab 16GB) und temporär eine Micro-SD-Karte (4GB) notwendig. Ich habe Produkte von SanDisk eingesetzt, welche noch in diversen Schubladen zu finden waren. Da der RPi 3B+ etwas stromhungriger ist, sollte außerdem auf ein gutes Netzteil (5,1V, 2,5A) geachtet werden.

Vorbereitung

Zunächst sind die aktuelle Raspbian (Lite)-Version und Etcher (Portable) herunterzuladen. Anschliessend sind die SD-Karte und der USB-Stick mit dem PC zu verbinden und Etcher zu starten. Evtl. Inhalte auf Stick und Karte müssen gesichert werden, denn ihr Inhalt geht durch das Flashen unwiderruflich verloren!

In Etcher wählt man folgendes Vorgehen:

  • Über Select Image wählt man das heruntergeladene Raspbian-Abbild aus, z.B. 2018-03-13-raspbian-stretch-lite.zip. Das Archiv kann von Etcher direkt verarbeitet werden und muss nicht entpackt werden.
  • Mittels Select Drive wählt man das zu beschreibende Medium aus. Für diesen Artikel wurde mit dem USB-Stick begonnen, aber die Reihenfolge ist letztendlich egal.
  • Durch die Option Flash startet der Schreibvorgang, der je nach Rechnerleistung, Mediengröße und Lesegerät einige Sekunden bis Minuten dauert.
  • Nach erfolgreicher Durchführung wählt man die Option Flash Another und beginnt mit der Vorbereitung des verbleibenden Speichermediums. In meinem Beispiel ist das die SD-Karte, welche in einem Lexar Lesegerät steckt.
  • Wieder startet ein Klick auf Flash den eigentlichen Schreibvorgang. Nach Abschluss kann Etcher beendet werden.

Die Etcher-Dialog-Folge anbei nochmal in Bildern. Wie gesagt: Die Reihenfolge zwischen SD-Karte und USB-Stick ist unbedeutend, solange beide Medien mit dem selben Raspbian-Abbild beschrieben werden.

Wer den Raspberry „headless“ betreiben möchte, d.h. ohne Monitor und Tastatur, der kann jetzt auf dem USB-Stick noch die entsprechenden Vorbereitungen treffen, analog zu diesem Artikel. Andernfalls ist der Stick damit vorbereitet, er kann ausgeworfen, abgezogen und zur Seite gelegt werden.

Konfiguration

Der Inhalt der SD-Karte muss noch geändert werden, sie verbleibt zunächst im Lesegerät. Je nach Betriebssystem ist es evtl. notwendig die Karte zunächst zu entnehmen und dann wieder einzustecken, damit die Änderungen erkannt werden.

Auf der SD-Karte befindet sich nach dem Beschreiben eine Partition im DOS-Format (boot) und auf dieser wiederrum die Datei config.txt. In dieser Datei ist eine Zeile hinzuzufügen, wobei auf die Beibehaltung der Zeilenenden geachtet werden muss. Unter Windows ist daher Wordpad zu verwenden und nicht der Editor (Notepad).

Ans Ende der Datei fügen wir die Zeile program_usb_boot_mode=1 an, so dass (Stand 19.03.2018) die letzten 3 Zeilen von config.txt wie folgt aussehen:

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
program_usb_boot_mode=1

Durch die neue Zeile werden beim nächsten Start des Raspberry Pi 3 (B/B+) unwiderruflich die USB- und Netzwerk- (PXE) Boot-Option aktiviert. Der Prozess ist nicht umkehrbar, da die Änderung im OTP-Speicher des RPi eingetragen wird. Details sind der Dokumentation zu entnehmen. Der Einsatz von SD-Karten ist allerdings unverändert möglich, die neue Boot-Reihenfolge lautet nun:

  1. SD-Karte
  2. USB-Medium
  3. Netzwerk-Boot (PXE)

Aktivierung

Jetzt ist auch die SD-Karte fertig vorbereitet und kann ausgeworfen bzw. entnommen werden. Anschließend ist sie in den Raspberry einzustecken und dieser mit Strom zu versorgen. Der Startvorgang und die Aktivierung des USB-Boots läuft ohne manuellen Eingriff ab. Ein eindeutiges Zeichen für einen abgeschlossenen Boot-Vorgang gibt es leider nicht, bei meinem 3B blinkt die grüne LED jede Sekunde, beim 3B+ blitzt sie. Es ist wichtig, dass die rote LED dauerhaft leuchtet, andernfalls ist die Stromversorgung zu schwach.

Gebt dem Raspi einfach 1-2 Minuten, bevor er wieder vom Strom getrennt wird. Eventuellen Datenverlust der SD-Karte nehmen wir hin, denn sie wird nicht mehr benötigt.

Nun wird der USB-Stick in einen beliebigen Port des Raspberrys gesteckt und wieder mit Strom versorgt. Der Start sollte jetzt von USB erfolgen, wobei auch hier beim ersten Start zunächst das Filesystem auf die volle Partitionsgröße erweitert und dann automatisch neu gestartet wird.

Somit wurde der Raspberry Pi 3 auf USB-Boot umgestellt und kann nun dauerhaft ohne SD-Karte betrieben werden.

tl;dr;

Hier nochmal die Zusammenfassung:

Links

  1. Raspberry Pi Foundation: Ankündigung Raspberry Pi 3B+
  2. Raspberry Pi Foundation: Dokumentation Boot-Modi
  3. Raspbian Linux (Übersicht)
  4. Raspbian Linux Lite (Download)
  5. Etcher
  6. Raspberry Pi Headless Setup

Produkte*

Die folgenden Produkte wurden im Artikel besprochen bzw. verwendet:

Kommentar hinterlassen