Bootloader-Update @ CM4 Lite + I/O-Board

Für das  Bootloader-Update gab es nirgends etwas Brauchbares im Web. Vereinzelt gibt es mit Stand Dezember 2021 auch Berichte, wo es geglückt ist, aber ohne brauchbare Beschreibung. Die Dokumentation der Raspberry Pi Foundation wirft dazu auch mehr Fragen auf als sie beantwortet.

Im Folgenden finden Sie eine Beschreibung der Vorgehensweise. Als Erstes wird Debian 11 in eine VirtualBox installiert und dann erfolgt das Bootloader-Update.
Halten Sie sich beim Flashen genau an die Reihenfolge der Schritte, sonst funktioniert es nicht.


Bootloader-Update — Lösung des Problems:

Hardware:
Raspberry Pi CM4 Lite 4GB + I/O-Board

System zum Flashen:
Debian 11 XFCE in VirtualBox

Wichtige Hinweise zu Debian:
Mit dem Befehl su im Terminal werden Sie root, mit exit verlassen Sie root und werden wieder normaler Nutzer.
Darum: Mit su und Passwort als root anmelden.

Bei Debian kein sudo benutzen, Sie sind root.

Befehle, die mit root ausgeführt werden, müssen aus Sicherheitsgründen in der Befehlszeile immer den kompletten Pfad enthalten.
Das muss ein realer Pfad sein, ein Link geht nicht.


Vorbereitungen Debian in VirtualBox:

Oracle VirtualBox muss installiert sein.
VirtualBox Oracle VM VirtualBox Extension Pack muss installiert sein.

  • Debian als VirtualBox Gast installieren.
  • Debian neu starten.
  • Geräte –> Optische Laufwerke –> VBoxGuestAdditions.iso auswählen.
  • CD wird auf dem Desktop angezeigt.
  • Terminal öffnen.
  • Mit su und Passwort als root anmelden.

  • root ist aktiv.

  • In das Verzeichnis /media/cdrom0 für die VBox Additions wechseln.
  • Mit ls das Verzeichnis auflisten.

  • VBoxLinuxAdditions installieren.
  • Debian neu starten.
  • Nach dem Login verkleinern Sie das Fenster der VirtualBox (Debian) und vergrößern es wieder.
  • Jetzt sollte Debian auch das ganze Fenster einnehmen.
  • Die Synaptic Paketverwaltung aufrufen.
  • apt-xapian-index als Erstes installieren, spart viel Arbeit.
    Einbau des Schnellauswahl-Filters für Synaptic.
    Wartungs- und Suchwerkzeuge für einen Xapian-Index der Debian-Pakete
    Hinweis: Es braucht etwas Zeit, bis der Index aufgebaut ist.
  • Synaptic Paketverwaltung neu aufrufen, vorher 3 Minuten warten.

  • Jetzt können Sie den Status mit dem Schnellauswahlfilter benutzen.
  • Vor dem Update erst Überflüssiges löschen, um die Update-Zeit drastisch zu verkürzen.
  • Alle Sprachpakete, die nicht gebraucht werden löschen, englisch und common immer drin lassen:
    — firefox-esr-l10n
    — libreoffice-l10n
    — mythes
    — hyphen
    — hunspell
    — libreoffice-help-… (nicht benötigte Sprachen)
    Am Besten in Gruppen einzeln löschen. Falls sich etwas vor dem Aktualisieren wegen der Abhängigkeiten nicht löschen lässt, dies anschließend durchführen.
  • Update durchführen.
  • Debian neu starten.

Vorbereitung für Bootloader-Update

  • Synaptic Paketverwaltung aufrufen.
  • Zurückgebliebene Konfigurationen entfernen.
  • git installieren.
  • gitg (grafische Oberfläche) installieren.
  • libusb-1.0-0-dev installieren.
    .
  • Als normaler Nutzer mit dem Dateimanager im Home-Verzeichnis Verzeichnisse anlegen:
    /Entwicklung/RaspberryPi/
  • gitg aufrufen und Softwaredepot klonen.

  • Neues Terminal als normaler Nutzer öffnen.

  • Erstellen und installieren Sie nun das usbboot-Tool:
    Wechseln Sie in das Verzeichnis /home/[name]/Entwicklung/RaspberryPi/usbboot/
  • Eingabe: make [Enter]
  • usbboot-Tool wird erstellt.
    .
  • Wenn Sie unter https://github.com/raspberrypi/usbboot/tree/master/recovery nachsehen, können Sie sehen, wann die Dateiversionen erzeugt worden sind.
    Auf dem eigenen Rechner trägt git immer das aktuelle Datum ein, das nicht mit dem Datum des Repositories identisch ist.
  • Die Version im usbboot Repository ist immer eine aktuelle stabile Version.
    Im Normalfall brauchen Sie nichts aus dem Verzeichnis /rpi-eeprom zu kopieren.

Firmware (stable, beta, critical)

  • Sie sollten aus Sicherheitsgründen immer stable nehmen.
  • Im Normalfall brauchen Sie nichts aus dem Verzeichnis rpi-eeprom zu kopieren, außer es gibt dort aktuellere stabile Dateien.
  • Diese Beschreibung (Firmware) erfolgt, damit die Dokumentation komplett ist.

  • Unter /home/[name]/Entwicklung/RaspberryPi/rpi-eeprom/firmware/stable/
    finden Sie alle pieeprom-xxxxx.bin stabilen Dateien.
  • Kopieren Sie die Neuste.
  • Unter /home/[name]/Entwicklung/RaspberryPi/usbboot/recovery/
    fügen Sie die Datei ein.
  • Bleiben Sie in dem Verzeichnis und benennen die Datei pieeprom.original.bin in pieeprom.original.bin.old um.
  • Benennen Sie die kopierte Datei pieeprom-xxxxx.bin in pieeprom.original.bin um.

  • Erzeugen Sie die neue Firmware:
  • Eingabe: /home/[name]/Entwicklung/RaspberryPi/usbboot/recovery/update-pieeprom.sh [Enter]
  • Neue Firmware (pieeprom.bin) wird erzeugt.

Ändern der boot.conf

Sie können Änderungen in die boot.conf eintragen. Dies entspricht von der Wirkung einer Änderung eines Eintrags im BIOS bei einem PC.
Sichern Sie die alte boot.conf unter einem anderen Namen: boot.conf.original

Alles was in der boot.conf steht wird beim Start mit geladen.
Änderungen müssen vor dem Erzeugen der neuen Firmware geschehen, da es mit in pieeprom.bin eingebaut wird.

  • Eingabe: /home/[name]/Entwicklung/RaspberryPi/usbboot/recovery/update-pieeprom.sh [Enter]
  • Neue Firmware (pieeprom.bin) wird erzeugt.

Update des Raspberry Pi 4 CM4 Lite + I/O-Board

  • Raspberry Pi muss stromlos sein.

  • J2 Jumper (rot) einbauen.
    Der Jumper verhindert das Booten.
  • Schalten Sie den Raspberry Pi ein.
  • Stecken Sie ein Micro-USB-Kabel, in den Micro-USB-Slave-Anschluss J11 in der IO-Karte und in den anderen Rechner. Erst muss die USB-Verbindung in der VirtualBox eingerichtet werden.

VirtualBox

USB Einstellungen im Oracle VM VirtualBox Manager wählen.
Mit der linken Maustaste können die zur Verfügung stehenden USB-Geräte für den Gast ausgewählt werden.
Diese müssen dann im Gast zusätzlich auch ausgewählt werden.

  • Debian neu starten.
  • Im Gast (Debian) Geräte –> Gasterweiterungen einlegen … –> Broadcom BCM2711 Boot auswählen.
  • USB-Stecker abziehen (Verbindung trennen).
  • Öffnen Sie ein Terminal und gehen Sie als root (su) in das Verzeichnis:
    /home/[name]/Entwicklung/RaspberryPi/usbboot

  • Eingabe: /home/debian-raspi/Entwicklung/RaspberryPi/usbboot/rpiboot -d /home/debian-raspi/Entwicklung/RaspberryPi/usbboot/recovery/ [Enter]
  • Erklärung:
    Englisch: rpiboot -d [directory] : Boot the device using the boot files in ‚directory‘
    Als root muss immer der ganze Pfad angegeben werden. Hinter -d steht der Pfad wo die Boot-Dateien zum Flashen zu finden sind.

  • Wenn Waiting for BCM2835/6/7/2711… angezeigt wird:
  • Jetzt das USB-Kabel zum anderen Rechner verbinden.
  • Dann startet das Flashen.
  • Anhand der Meldungen können Sie sehen, dass alles funktioniert hat.
  • Raspberry Pi stromlos machen.
  • J2 Jumper ausbauen.
  • Micro-USB-Kabel ausbauen.

  • Raspberry Pi alles wieder anschließen und einschalten.
  • Lassen Sie erst mal das Bootmedium weg, dann können Sie die Meldung sehen.
  • Geschafft, ein neuer Bootloader ist drauf.

Anregungen, Ergänzungen und Korrekturen sind immer willkommen.
Schreiben Sie mir einfach unter Kontakt.

Weiter: Raspberry Pi 400 UmbauUpdate: 13.12.2022