NetBSD 9 auf arm64 (raspberry 4) - geht das?

Hab gerade eine weitere Installation von OpenBSD auf dem Raspi durchgezogen und dabei dokumentiert:
----------------------------------------------------------------------------------------------------------------------------------------------------------
OpenBSD auf Raspberry 4 (8GB)
---------------------------------------------

Benötigt: 2 µSD Karten, eine für die Firmware, eine für das OpenBSD Image.

1. Firmware beschaffen
wget https://github.com/pftf/RPi4/releases/download/v1.16/RPi4_UEFI_Firmware_v1.16.zip

2. Firmware auf einem Rechner (in meinem Fall einer mit OpenBSD 6.7) entpacken.
unzip RPi4_UEFI_Firmware*.zip

3. SD Karte No.1 vorbereiten.
Eine kleine SD-Karte reicht, sind nur ein paar MB, die drauf kommen.
Auf der SD-Karte nur eine Partition FAT32 erstellen und das Boot-flag setzen.
Die entpackte Firmware (6 Dateien und der Ordner overlays) auf die SD-Karte kopieren.
Die SD-Karte ist damit bereit, die Firmware auf dem Raspi zu booten. Sie wird jetzt in den µSD-Slot des Raspi gesteckt und dort verbleiben.

4. SD Karte No.2 vorbereiten.
Diese zweite SD-Karte wird zunächst das Bootimage von OpenBSD bekommen, ich hab das mit miniroot67.fs gemacht.
Gleichzeitig wird die Karte aber das installierte OpenBSD bekommen, also nicht zu klein wählen. Auf 64 GB bekommt man aber locker alles drauf und kann später noch reichlich dazu installieren.
Jetzt also das Bootimage und die entsprechende SHA Datei herunter geladen:

wget https://cdn.openbsd.org/pub/OpenBSD/6.7/arm64/miniroot67.fs
wget https://cdn.openbsd.org/pub/OpenBSD/6.7/arm64/SHA256.sig


Nach dem sha256 Check dann das heruntergeladene Image auf die SD-Karte packen:

dd if=miniroot67.fs of=/dev/rsd1c bs=1m

So siehts unter OpenBSD aus, bei anderen Unixen kann die Laufwerksbezeichnung natürlich eine andere sein.
Damit ist auch die zweite Karte vorbereitet. Sie kommt nun mittels eines USB-SD-Adapters an einen USB Port des Raspi.

5. Die Installation
Ich gehe jetzt davon aus, dass ihr einen Monitor am Raspi habt. Ist das nicht der Fall, muss über einen usb-uart-Adappter eine serielle Verbindung von einem anderen Rechner auf den Raspi aufgebaut werden.
Dieser Adapter wird in einen USB Port eines PC eingesteckt und mit drei Leitungen an die GPIO-Leiste des Raspi angeschlossen: TxD an RxD, RxD an TxD, Gnd an Gnd.
Als Programm ist eine simple Terminalsoftware wie cu geeignet:

cu -l /dev/ttyUSB0 -s 115200

Die Bezeichnung der Schnittstelle ist abhängig vom Betriebssystem eures Rechners, im Beispiel war's ein Linux-Rechner mit ttyUSB0. Ich habs auf einem Rechner mit NetBSD gemacht und da heisst die Schnittstelle ttyU0.

Aber das nur nebenbei, ich gehe ja von einem Raspi mit Monitor aus, da ist das Schnittstellengedöns nicht nötig.
Die Firmaware-SD steckt jetzt also im SD-Slot des Raspi, die OpenBSD-SD hängt an einem USB-Port des Raspi.

Schaltet nun des Raspi ein und er wird von der Firmware SD-Karte booten. Es erscheint zunächst das grosse farbige Quadrat auf dem Bildschirm und danach ein kleines Menü mit

Esc (setup), F1 (shell), ENTER (boot)

Ihr drückt ESC und kommt damit ins UEFI-Menü.
Mit den Pfeiltasten navigiert ihr zu "Boot Manager", entert euch herein und wählt als Bootoption

UEFI Generic Mass Storage Device

Abhängig davon, welchen USB-SD-Adapter ihr benutzt, kann die Bezeichnung auch etwas abweichen.

Wählt also mit ENTER das USB Mass Storage Device aus. Danach startet der Rechner durch und bootet von der Installations-SD-Karte.

Auf dem Bildschirm erscheint nun der Boot-prompt des Installationsimages. Jetzt heisst es, schnell zu sein, denn am BOOT muss eingetippt werden: set tty fb0

Bedenkt, dass noch keine deutsche Tastatur geladen ist, also beim "y" aufpassen. Und seid ihr zu langsam, bootet der Rechner auf die serielle Schnittstelle und der Monitor bleibt schwarz.
Nach einem ENTER erscheint der BOOT prompt erneut und jetzt könnt ihr mit einem weiteren ENTER den Bootvorgang starten.

Jetzt läuft die komplette Bootsequenz eines OpenBSD-Rechners auf dem Bildschirm durch.
Danach ist die bekannte Auswahl des Installationsprogrammes zu sehen:

Welcome to the OpenBSD/arm64 6.7 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?


Die jetzt ablaufende Installation dürfte den meisten hier bekannt sein, da gibt es nicht viel zu erklären.
Passt nur bei der Auswahl des Installationsmediums auf, dass die SD-Karte am USB-Adapter gewählt wird und nicht die Firmware-SD-Karte.
Bei meinen Installationen war es immer sd0.
Während der Installation wird übrigens nicht das Tastaturlayout abgefragt, sodass bis zum Schluss auf x/y geachtet werden muss.

Eine Liste der OpenBSD-Mirrors wird nicht angeboten, ich hab dann cdn.openbsd.org angegeben.

Nach ca. 15 Minuten ist die Installation abgeschlossen und das Installationsprogramm schlägt einen Neustart vor. Machen wir.

6. Der normale Bootvorgang
Beide SD-Karten verbleiben ab jetzt dauerhaft im Raspi: Firmware-Karte im SD-Slot, OpenBSD-Karte am USB-Port.
Der Raspi fährt also wieder hoch, es erscheint das bunte Quadrat, dann das Menü der Firmware. Wieder mit ESC das Setup wählen,
dann das USB Mass Storage Device als Bootmedium auswählen.
Anschliessend erscheint der BOOT-Prompt von OpenBSD und hier muss ebebnfalls bei jedem Bootvorgang "set tty fb0" eingeben werden. Sonst geht die Ausgabe wieder komplett auf die serielle Schnittstelle und der Bildschirm bleibt dunkel.
Abgesehen von diesen beiden Eingaben habt ihr jetzt ein schönes, stabiles und schnelles Betriebssystem auf dem Raspi.

Ob die beiden manuellen Eingaben automatisiert werden können, versuche ich herauszufinden. Und dann würde ich noch gern NetBSD auf dem Raspi haben.

Beim Schreiben dieser Zeilen habe ich parallel die komplette Installation auf einer 128GB SD-Karte durchgezogen. Hat alles prima funktioniert.

Sehr hilfreich bei der Aktion waren die Seite von Mr. Pigeon und die OpenBSD Arm-Seite

Berni
Vielleicht noch der Hinweis.

Bei den Raspi's mit 8GB muss im UEFI die 8GB aktiviert werden. Von Haus aus wird der Arbeitssprecher auf 3 GB limitiert.


9566222f-f627-4798-95bd-991528b4b487_1_105_c.jpeg


PS: ESXI bzw. Proxmox laufen ziemlich gut und stabil.
 
Im eeprom steht bei mir ebenfalls 0xf41, ...
OK. benutzt Du deinen PI4 mit OpenBSD headless oder hast Du Bildschirm und Tastatur an deinem PI4?

Ich benutze meinen PI4 mit OpenBSD, headless und nach dem booten dauert es ca. 4 Minuten bis ich im (W)LAN Zugang zu meinem PI4 habe. Anhand der LEDs der NIC, kann man ein restart feststellen/sehen, aber was genau während dieser ca. 4 Minuten passiert, weiß ich nicht (... denn dmesg und anderes Logs schauen ok bzw. normal aus). Nach diesem relativ langen Bootvorgang ist aber alles OK. Evtl. werde ich noch mit 0X1 als BOOT_ORDER, testen.
 
Vielleicht noch der Hinweis.
Bei den Raspi's mit 8GB muss im UEFI die 8GB aktiviert werden. Von Haus aus wird der Arbeitssprecher auf 3 GB limitiert.
Ja, das ist aktiviert:
Code:
:~ #dmesg
OpenBSD 6.8 (GENERIC.MP) #3: Thu Jan  7 07:35:28 MST 2021
    root@syspatch-68-arm64.openbsd.org:/usr/src/sys/arch/arm64/compile/GENERIC.MP
real mem  = 8373059584 (7985MB)
avail mem = 8083492864 (7709MB)
random: good seed from bootblocks
mainbus0 at root: Raspberry Pi 4 Model B Rev 1.4
Es geht mir nur um den verzögerten Bootvorgang.
 
@overflow : Das stimmt natürlich und es sollte ins Wiki eingefügt werden. Wie wär's, @CommanderZed ?

@morromett : In der EDK-Firmware ist doch einstellbar, ob das System in den Bildschirm oder in die serielle Schnittstelle hinein bootet. Kann gerade nicht nachsehen, wo genau das geändert werden kann. Vielleicht kommt da die Verzögerung her.
 
@morromett : In der EDK-Firmware ist doch einstellbar, ob das System in den Bildschirm oder in die serielle Schnittstelle hinein bootet. Kann gerade nicht nachsehen, wo genau das geändert werden kann. Vielleicht kommt da die Verzögerung her.
Ok, d. h. die default-Einstellung ist, in den Bildschirm booten.
Aber wenn ich das ändere, was passiert dann, wenn ich mal wieder in den Bildschirm hinein booten will? Wie mache ich diese Konfiguration( in die serielle Schnittstelle hinein booten) wieder rückgängig, ohne Zugang via Bildschirm?
 
Zurück
Oben