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

berni51

Open-Net-FreeBSD user
Offiziell scheint NetBSD bis jetzt nur die RaspBerry 2 und 3 zu unterstützen. Lohnt es, den Versuch zu machen oder hat vielleicht schon mal jemand .......
 
Der Raspberry 4 ist abseits Linux eine Katastrophe. Die Hardware wird zwar soweit von freien Treibern unterstützt, als das es Treiber unter GPLv2 für den Linux-Kernel gibt. Dokumentation gibt es allerdings nicht... Im FreeBSD-Lager war der letzte Stand, dass es schön wäre den RPi4 gut zu unterstützen, weil er anders als die ersten drei Generationen brauchbar schnell und dennoch günstig ist. Mangels der Doku wird man sich die Mühe aber nicht machen. Keine Ahnung was die anderen BSDs planen, aber auch da wird es wohl keine schnellen Ergebnisse geben.
 
Die Bootprozedur beim Pi4 hat sich in der Tat geändert (siehe [1], [2] - von nem File bootcode.bin (bei Pi<4) auf Bootcode im eeprom (Pi4, eine etwaig vorhandene Datei bootcode.bin wird komplett ignoriert);
Dieser Code sucht dann die start4*.elf (start*.elf auf Pi<4) Files auf den vorhandenen Massenspeichern (SD, USB) und führt die auf dem VideoCore aus (ja, beim Pi bootet die "Grafikkarte" das System, der Prozessor übernimmt erst hernach, war schon seit dem ersten Pi so)

Würde schon gern ein (Free)BSD auf dem Pi 4 nutzen, das aktuelle RaspiOS läuft auf dem von mir getesteten 4 GByte Modell schon recht flüssig, ein BSD müsste da quasi fliegen - aber vermutlich müsste für andere Betriebssysteme der Startcode im eeprom mit angepasst werden?


[1] Boot Prozess bisher
[2] Boot Prozess Pi4
 
Hmm lt. https://www.openbsd.org/arm64.html wird beim Pi4 Netzwerk (LAN) und USB unterstützt, das ist, soweit ich weiß, somit ähnlich wie beim Pi3 - soweit ich mich erinnere wurde hier nie die GPU unterstützt, man versucht es auch glaube ich nicht.

Für diverse Anwendungen aber sicher trotzdem ganz interessant.
 
Laut Wiki bootet das Rpi3 Image auch auf dem Rpi4. Ist das nicht der Fall?

das ist beim RaspiOS der Fall, ja - uSD-Karte von nem Pi3 in Pi4: funktioniert

Bei NetBSD 9 hats wie gesagt nicht funktioniert; Open und Free hab ich nicht getestet.

[EDIT]:
Das obige gilt fuer ein aktuelles RaspiOS - ein OSMC Image von Pi3 auf Pi4 funktionierte bei mir auch schon nicht mehr - schwarzer Bildschirm nach Einschalten, kein Lebenszeichen vom Pi4 (mein Monitor is allerdings auch lahm beim Einschalten des Pi, bis der dann aktive Pi-HDMI Ausgang am Monitor-Eingang erkannt und aktiv geschalten wird; so sehe ich ggf die Pi-Einschaltmeldung - das Farbquadrat - nicht, hernach ist jedenfalls nur "schwarzer Bildschirm" angesagt, nicht mal ein Prompt links oben erscheint).
Ich denke, den anderen OS Images welche explizit fuer "bis Pi3" angegeben sind, fehlen saemtlich die ganzen start4*.elf Dateien fuer den Pi4, und nur die start*.elf sind bei denen vorhanden.

[EDIT2]:
Das unter [3] schaut ganz vielversprechend aus - kann/werd ich ggf morgen mal testen, wenn das Schicksal mir freie Zeit dafuer laesst :D
@berni51 - war es diese Seite, welche du oben meintest?

[3] arm/Raspberry Pi
 
Zuletzt bearbeitet:
was mich am meisten an ödet das man erst ein u-boot installieren muss , um dann openbsd auf dem pi4 zu booten

nun ist die frage wo bekommt man ein u-boot her wenn man nicht die infrastrukur hat um es selber zu bauen,
und auch nicht gewillt ist diese aufzusetzen.

Das ganze spielt nervt schon beim banana pi r2.


Holger
 
also das FreeBSD 12+ Image ausm Wiki bootet bei mir schon mal nicht, schwarzer Bildschirm, weiß noch nicht worans liegt;
 
Schade. Die Luft wird dünner. Ich probiers mal mit OBSD. Muss nur noch mein Pi4 ankommen :rolleyes:
Sieht so aus, als hätte @Yamagi Recht mit dem Begriff Katastrophe.
 
Update: die 13er Version bootet bei meinem RPI4 auch nicht - schwarzer Bildschirm;
Der Bootloader auf dem Pi ist laut rpi-eeprom-update das letzte verfügbare, daran kanns also nicht liegen;
Ich schau mir das bei Gelegenheit weiter an.
 
Hab jetzt so einiges probiert, u.a. auch die obige Anleitung von sudopigeon - mit dem Ergebnis, dass ich keines der BSD zum Booten bekomme, weder Open, noch Net- oder FreeBSD. Am weitesten komme ich noch mit FreeBSD, aber auch da kommt irgendwann der Punkt, wo es heisst: This system requires newer software. Der Bootvorgang beim raspi4 ist eindeutig anders als bei den vorherigen Typen.

Raspian, Ubuntu und ArchLinux dagegen kommen gut damit klar. Schätze, die BSDler sind einfach noch nicht so weit.
 
Es ist vollbracht! OpenBSD 6.7 bootet auf dem Raspberry 4 (8GB), lässt sich auf einer SD-Karte installieren und läuft erstmal ganz normal, wie ein OpenBSD eben so läuft.

Der Haken an der Sache: Ich hab keine Ausgabe auf dem Bildschirm und muss über nen Uart oder mittels ssh auf den Raspi zugreifen. Hab gerade keine Idee, woran das liegen könnte. Aber das erste Etappenziel ist geschafft :D
 

Anhänge

  • screenFetch-2020-10-13_17-03-52.webp
    screenFetch-2020-10-13_17-03-52.webp
    159,1 KB · Aufrufe: 505
Weitere Fortschritte! Kurz vor Mitternacht lief der erste Bootvorgang komplett über HDMI auf dem Monitor ab. Jetzt kann der USB-uart endlich abgeklemmt werden. Wie archaisch die Bedienung von cu war, hatte ich nach den Jahrzehnten ohne serielle Kommunikation tatsächlich völlig vergessen :D

Mittlerweile läuft auch xorg und jetzt bin ich auch vom raspi auf den bsdforen. Damit ist das System brauchbar.

Im Moment muss ich zwar noch bei jedem Bootvorgang am Boot-prompt die Eingabe "set tty fb0" machen, aber das wird sich wohl auch noch automatisieren lassen. Die mailinglist arm@openbsd.org ist eine wahre Fundgrube.

Das war's, was ich euch kurz mitteilen wollte.
Berni

Ach ja: Jetzt frag ich mich, ob die Versuche mit Free- und NetBSD, die in einem schwarzen Bildschirm enden, nicht auch auf der Umleitung auf die serielle Schnittstelle begründet sind.
 

Anhänge

  • screenFetch-2020-10-14_09-01-06.webp
    screenFetch-2020-10-14_09-01-06.webp
    77,9 KB · Aufrufe: 478
  • screenFetch-2020-10-14_09-13-41.webp
    screenFetch-2020-10-14_09-13-41.webp
    90,5 KB · Aufrufe: 523
Sehr cool. :-) Ich habe auch noch einen Raspberry Pi 4 hier rumliegen. Hast Du die Installation zufaellig dokumentiert und magst Du die teilen? :-)
 
Richtig dokumentiert hab ich das noch nicht, aber der Link von Mark05 ist sehr gut und 100%ig korrekt.
Danach hab ich OpenBSD installiert, also noch über den uart. Wahrscheinlich kannst Du das aber umgehen, wenn Du am OpenBSD-Bootprompt sofort "set tty fb0" eingibst. Darauf kam ich aber erst später.
Zuerst hatte ich versucht, OpenBSD auf einer M2.sata zu installieren, die über einen USB-Adapter angeschlossen ist. Die Installation klappte auch einwandfrei, aber das Teil hat einfach nicht ordentlich gebootet. Hab noch nicht rausgefunden, woran das liegt und hab dann statt dessen eine 64GM SD card genommen. Ist ja auch groß genug für das schlanke BSD.
Berni
 
@berni51

Du solltest trotzdem bitte mal versuchen die ganze Prozedur hier rein zu stellen, viele würden davon profitieren! Danke schon mal von mir, wenn ich auch eher Interesse hätte NetBSD darauf zu testen.

Glückwunsch zum Erfolg!
 
... ob die Versuche mit Free- und NetBSD, die in einem schwarzen Bildschirm enden, nicht auch auf der Umleitung auf die serielle Schnittstelle begründet sind.

Aargh - ist jetzt der Tag gekommen, dass ich nach Jahrzehnten RS-232 doch noch so ein USB nach UART-Kabel bzw -Adaptergedöns brauch??

Das war's, was ich euch kurz mitteilen wollte.

Recht vielen Dank, guter Hinweis!
 
Die SD-Karte fuer das OS hast Du aber ueber einen externen "Micro-SD to USB"-Adapter angeschlossen und den integrierte Micro-SD Card nur fuer die UEFI-Firmware? Was fuer einen externen Adapter hast Du denn da genutzt? Ein passendes Kabel fuer die serielle Konsole, welches an die GPIO-Pins angeschlossen wird, habe ich noch hier liegen. https://www.adafruit.com/product/954 Oder nutzt Du ein anderes Kabel?
 
@midnight :
Ja, es werden 2 µSD Karten benötigt: Eine mit der Firmware und direkt im Raspi-SD-Slot und eine mit dem Install-Image über einen USB-Adapter. Ich hab hier mehrere solcher USB-SDcard Adapter (renkforce, Logilink), die haben alle funktioniert.
Ich hab einen anderen usb-uart-Adapter benutzt als der aus deinem Link, aber der ist auch OK. Wichtig ist, dass der Signalpegel 3,3 V ist und nicht 5 V. Angeschlossen hab ich nur 3 Leitungen: TxD, RxD und Gnd. Dann mit einem NetBSD-Laptop und cu an den Raspi und schon waren wir verbunden.

Aber ihr habt natürlich recht und ich werde kurzfristig versuchen, die Prozedur zu beschreiben. Möglicherweise gibt es auch einen Weg ohne serielle Verbindung, das teste ich noch mal.

Berni
 
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
 
Zurück
Oben