U-Boot Gefrickel
Das U-Boot, also der Bootloader für den RaspBerryPi 5 mit OpenBSD, ist ja eine feine Sache und funktioniert auch. Allerdings muss für den Einsatz von OpenBSD ein U-Boot-Parameter geändert werden, was nur mit einer seriellen Verbindung zwischen dem RaspberryPi und einem zweiten Rechner möglich ist.
Wenn ohnehin gerade frisch installiert wird, ist das natürlich kein Problem: Der Raspi ist dann ohnehin geöffnet und der Stecker für den seriellen Anschluss einigermassen zugänglich.
Ich habe bisher 3 Raspi 5 auf diese Art und Weise installiert, kein Problem. Trotzdem habe ich überlegt, wie ich die serielle Verbindung umgehen kann. Ich habs tatsächlich hinbekommen, aber es war ein ziemliches Gefrickel - allerdings Software-Gefrickel. Das Hardware-Gefrickel konnte ich damit umgehen.
Was habe ich gemacht? Hier im Stenogram-Stil die Schritte:
-
Mit dd if=/dev/sd1c of=obsd-rpi5.img bs=1m die SD-Karte eines laufenden OpenBSD in eine Datei geschrieben.
-
Mit dd if=obsd-rpi5.img of=/dev/sd2c bs=1m das Image auf eine neue SD-Karte geschrieben.
-
Damit habe ich jetzt eine bootfähige SD-Karte mit einem bereits modifizierten U-Boot. Die entsprechende Datei auf der Karte ist die uboot.env.
-
Die SD-Karte wurde nun an einem anderen Rechner gemountet, idealerweise einem mit OpenBSD. Dort gibt es unter /etc eine Datei boot.conf. Die habe ich erstellt und dort eingetragen, dass ins HDMI, also in einen Bildschirm gebootet wird. Die Datei enthält bis jetzt nur die Zeile set tty fb0. Dies wird jetzt erweitert durch boot bsd.rd, natürlich in einer neuen Zeile.
-
Nun kommt die neue SD-Karte in den Slot des RaspberryPi 5 und wird gebootet. Der Rechner startet, das U-Boot lädt OpenBSD, das geht sofort auf den Bildschirm und landet dann im Installations-Menü von OpenBSD. Je nach Bedarf kann jetzt ein Update oder eine Neuinstallation gestartet werden. Ich nutze die SD-Karte fast immer nur als Root-Partition und installiere den Rest des Systems auf einer NVME, eine der grössten Errungenschaften des RPI5.
-
Wichtig! Nach abgeschlossener Installaion nicht sofort neu Booten, sondern eine Shell aurfufen. Das neu installierte System ist noch unter /mnt gemountet, also ins Verzeichnis /mnt/etc wechseln. Jetzt muss der Eintrag boot bsd.rd aus der boot.conf entfernt werden. Am einfachsten durch Überschreiben mit echo "set tty fb0" > boot.conf
-
Nun mit exit zurück ins Installations-Menü und von dort aus neu gebootet. Der Rechner wird jetzt mit dem neuen OpenBSD starten.
-
Die Geschichte ist aber damit noch nicht fertig. Das System hat jetzt natürlich alle Einstellungen des Muttersystems, beispielsweise auch dessen MAC-Adresse, den hostname und was sonst noch individuell konfiguriert wurde. Das muss alles angepasst werden, eventuell brauchts auch eine neue MAC-Adresse. Das ist aber alles nicht wirklich schwierig, macht jedoch ein wenig Arbeit.
Erspart habe ich mir aber eventuell das Ausbauen der Raspi-Platine aus dem Gehäuse, vielleicht die Anschaffung eines debug uart Kabels, den Aus- und Wiedereinbau der NVME-Platine und und und. Die Zugänglichkeit des debug uart ist beim Raspi leider nicht sehr gut gelöst.
