OpenBSD 7.1 und Raspberry Pi4 Bootvorgang bricht mit "schwarzem Bildschirm" ab

Mark71

New Member
Hallo zusammen,

mein neuer Raspbi Pi4 4GB startet von der SD Card kommt bis zum Boot Prompt, will dann den Kernel? laden(?). Dieser Vorgang endet dann mit einem schwarzen Bidlschirm, egal an welchem HDMI Port ich den Bildschirm ( 2 ausprobiert) anschließe. Nach einigen Sekunden startet er dann von vorne. Bin als Neuling in Sachen Raspberry und OpenBSD für Unterstützung sehr dankbar.
 

Anhänge

  • 1657823836007.jpg
    1657823836007.jpg
    856,7 KB · Aufrufe: 202
Vielen Dank für die ersten Antworten! :-)

Ich habe mir einfach die install71.img hier https://ftp.lip6.fr/pub/OpenBSD/7.1/arm64/ (über openbsd.org empfohlene FTP Mirror) heruntergeladen und auf die SD Card geschrieben. So wie man es bei anderen Images auch tut. Mit einem Ubuntu Image für den RB4 funktioniert der Start bis in die graphische Benutzeroberfläche einwandfrei.
Habe es nun auch mit einem zweite Raspberry versucht. Gleiches Problem.
 
https://ftp.openbsd.org/pub/OpenBSD/7.1/arm64/INSTALL.arm64 schrieb:
Install on Raspberry Pi:

As of OpenBSD 6.9, the standard miniroot supports at least the
Raspberry Pi 3 and 4 with no additional firmware. Some devices may
not be functional with Pi 3+. It is recommended that you install
to a USB storage device.

The default system console is on the TTL serial interface on the
TXD/RXD/GND pins of the https://pinout.xyz/ header on the board.
It will be helpful to obtain an adapter (e.g. CP2102 USB-UART).
If you have one, attach it to the pins and a computer; a command
such as "cu -l cuaU0 -s 115200" (assuming cuaU0 is your serial
port device) should connect you to the board's console.

If not, note that once the kernel has started running, by default you
will only see output on the serial console. To switch to displaying on
the monitor instead, watch for the OpenBSD BOOTAA64 "boot>" prompt,
and type "set tty fb0".

Alternatively the system can be booted using UEFI firmware found at
https://github.com/pftf/RPi4. Follow their instructions to install to an
SD card and run the OpenBSD installer from USB. v1.21 is known to work;
some newer versions may have problems.

Ganz trivial dürfte dein Vorhaben nicht sein. Vielleicht hilft dir die Anleitung im letzten Absatz weiter.

HTH
 
Ich hab OpenBSD so installiert, dass auf die SD-Karte nur die EDK-Firmware kommt und das OS dann auf eine USB-SD/SSD.
Du hast offenbar beides auf die SD-Karte gepackt. Wenn jetzt alles richtig verläuft, muss die EDK-Firmware booten. Diesen Vorgang kannst Du mit ESC unterbrechen und dann landest Du in einem Menu. Hier kannst Du u.a. das Boot-Medium wählen und auch die Boot-Order einstellen.

Dein System scannt ja auch, wie man sieht, nach USB-Devices, findet aber keines. Ist ja auch keines da.
Jedenfalls ist das Booten per EDK-Firmware auf der SD und dann der OS-Start via USB eine sichere und zuverlässige Sache.
 
So wie man es bei anderen Images auch tut.
Andere OSs kann man auch headless auf dem PI installieren. Das geht mit OpenBSD (leider) nicht.
Siehe z. B. auch die Anleitung im Wiki und im Forum:
 
Ihr habt mri sehr weitergeholfen und ich weiß jetzt, wie ich sehr wahrscheinlich weiter komme. USB zu Seriell-Adapter (FTDI) ist bestellt. Vielen lieben Dank bis hierher! :-)
 
Weiß jemand wo (in welcher Datei) OpenBSD bei/während der Installation die MAC-Adressen (evtl. auch andere/weitere Hardware-Informationen) von den Interfaces (NICs) speichert?
Es geht um Folgendes: Ich habe OpenBSD7.2 auf einem PI3(USB-Stick erfolgreich installiert (Interface ist smsc0). Ich kann diesen USB-Stick (mit OpenBSD7.2) auch erfolgreich mit einem PI4 booten und benutzen. Was aber ein kleines Problem war, OpenBSD hat für das bse0-Interface des PI4, die MAC-Adresse vom PI3 (NIC: smsc0) "übernommen":
Code:
bse0 at simplebus2: address b8:27:eb:##:##:##
Damit gab es Probleme an der FritzBox, weil die den PI4 (mit fester IP-Adresse) mit einer anderen MAC-Adresse kennt. Das konnte ich lösen/ändern, in dem ich mit der Datei "/etc/hostname.bse0" die "falsche" MAC-Adresse in die richtige MAC-Adresse beim booten ändern lasse.
D. h. aber auch, dass die MAC-Adresse bei der Installation (1. Bootvorgang) irgendwo gespeichert worden ist. Es würde mich interessieren, in welcher Datei diese "falsche" MAC-Adresse gespeichert ist bzw. ob man das dann dort ändern kann/darf. Im Internet habe ich keine brauchbare Infos gefunden. Danke.
 
Ist das die eingebaute NIC oder eine externe?

Hintergrund der Frage ist das ich mal günstige USB-LAN-Adapter hatte bei denen einfach jeder Adapter die gleiche Addresse hatte :/
 
Ist das die eingebaute NIC oder eine externe?
Es ist die eingebaute NIC. Beim PI3 die smsc0 und beim PI4 die bse0.
In der jeweiligen Ausgabe von dmesg, wird dieser Unterschied (smsc0 oder bse0) auch erkannt. Es ist nur so, dass dann auf dem PI4, für bse0, auch die bei der Installation (1. Bootvorgang) "gelernte" MAC-Adresse (smsc0 vom PI3) ausgegeben bzw. verwendet wird (... wenn man sie nicht mit ifconfig beim booten ändert).
Weitere/andere Ausgaben bzgl. Hardware, in dmesg auf dem PI4, kann ich jetzt nicht dem PI3 (auf dem die Installation erfolgt ist), zuordnen.
 
ich würde mir mit einem
Code:
cd /etc
grep -r "b8:27:eb" *
versuchen zu behelfen. Vielleicht findest du den Übeltäter so.
 
ich würde mir mit einem
Code:
cd /etc
grep -r "b8:27:eb" *
versuchen zu behelfen.
Danke für den Hinweis.
Im "/etc"-Verzeichnis habe ich nichts gefunden, dafür aber im "/var"-Verzeichnis:
Code:
:/var #grep -r "b8:27:eb:##:##:##" *
log/messages:Sep 28 00:41:31 ###### /bsd: smsc0: address b8:27:eb:##:##:##
run/dmesg.boot:bse0 at simplebus2: address b8:27:eb:##:##:##
und jetzt denke ich, dass diese MAC-Adresse, im Zuge des "reorder_kernel: kernel relinking done", in der "bsd-" oder in einer der bsd.*-Dateien:
Code:
-rwx------   1 root  wheel  15065104 Oct 24 00:10 bsd
-rwx------   1 root  wheel  15063614 Oct 23 23:47 bsd.booted
-rw-------   1 root  wheel  17683592 Sep 28 00:31 bsd.rd
-rw-------   1 root  wheel  15000763 Sep 28 00:30 bsd.sp
hardcodiert ist. Naja, ist nicht schlimm, denn ich habe ja einen "Workaround" gefunden und kann damit leben.
 
Zuletzt bearbeitet von einem Moderator:
Es gibt prinzipiell /etc/ethers (siehe auch arp(8)) - aber automatisch passiert das nicht.

Das Verschleiern hilft jetzt auch nicht gerade... wenn das jeweils die onboard NIC ist, wie soll dann smsc(4) auf
einem Board mit bse(4) auftauchen? Ist das noch das "alte" Logfile - dann wurde das nichts bedeuten.

Boote mal auf dem smsc und schau nur in ifconfig smsc0 und entsprechend auf dem bse mit ifconfig bse0,
ob das wirklich das gleiche ist oder du hier nur angenommene geister (logfile) jagst.

Im kernel image (reorder) landet das nicht, auch das random stirring wird nicht die urspruengliche info beinhalten.
 
Das Verschleiern hilft jetzt auch nicht gerade... wenn das jeweils die onboard NIC ist, wie soll dann smsc(4) auf
einem Board mit bse(4) auftauchen? Ist das noch das "alte" Logfile - dann wurde das nichts bedeuten.
Ich habe doch nicht geschrieben, dass smsc auf dem Board mit bse auftaucht. Ich habe lediglich geschrieben, dass der onboard-NIC bse0, die MAC-Adresse vom der onboard-NIC smsc0 des 1. Bootvorgangs, zugewiesen wird.
Das hat nichts mit alten Logfiles zu tun, das merkt sogar die FritzBox und mit ifconfig (und im aktuellen dmesg) wird diese (falsche) MAC-Adresse auch angezeigt.
Die Datei "/var/log/messages" ist die dmesg-Ausgabe vom 1. Bootvorgang (mit dem PI3B) Z. B.:
Code:
:~ #cat /var/log/messages | grep -iE 'address|raspberry|mem'     
Sep 28 00:41:31 ###### /bsd: real mem  = 970924032 (925MB)
Sep 28 00:41:31 ###### /bsd: avail mem = 906723328 (864MB)
Sep 28 00:41:31 ###### /bsd: mainbus0 at root: Raspberry Pi 3 Model B Rev 1.2
Sep 28 00:41:31 ###### /bsd: smsc0: address b8:27:eb:fd:3f:31
und hier das letzte/aktuelle dmesg vom Bootvorgang mit dem PI4B:
Code:
:~ #dmesg | grep -iE 'address|raspberry|mem'              
real mem  = 8419991552 (8029MB)
avail mem = 8126947328 (7750MB)
mainbus0 at root: Raspberry Pi 4 Model B Rev 1.4
bse0 at simplebus2: address b8:27:eb:fd:3f:31
erkennst Du den Unterschied bzw. was identisch ist?
ich verschleiere ja nichts, ich weise der bse0-NIC nur ihre richtige MAC-Adresse zu.
Wahrscheinlich könnte ich es (den kernel) auch mit:
Code:
ukc
config
bsd.re-config
boot_config
lösen/ändern. Aber wenn es nur die MAC-Adresse (bis jetzt zumindest) ist, bin ich mit dem jetzigen Workaround zufrieden.
Die /etc/ethers gibt es auf meinem System nicht und ist m. E. auch nur eine Datenbank für fremde hosts (denen eine bestimmte MAC-Adresse zugeordnet werden kann) und würde mein "Problem" nicht lösen.
Ich denke schon, dass es so ist, dass OpenBSD beim 1. Bootvorgang die bsd.*-Dateien, für die vorgefundene Hardware optimiert bzw. sie daran anpasst.

EDIT:

Ich werde zukünftig, die Installation von OpenBSD immer mit der Hardware machen, die dann nach der Installation auch benutzt wird.
 
Zuletzt bearbeitet:
OpenBSD weist von sich aus keine MAC zu.. das geht nur via ifconfig/hostname.if -- und das weicht dann vom dmesg ab.
Ich denke hingegen, dass raspberry hier wirklich MAC recycling betrieben hat.

Du kannst ja "spasseshalber" mal strings /bsd | grep -i b8:27:eb machen..
Da wird nix "optimiert"...

PS: verschleiert hatte Columbo
 
OpenBSD weist von sich aus keine MAC zu.. ...
... und wie erklärst Du dann diese Ausgabe:
Code:
:~ #dmesg | grep address 
bse0 at simplebus2: address b8:27:eb:fd:3f:31
bwfm0: address dc:a6:32:##:##:##
im aktuellen dmesg? OpenBSD weist von sich aus keine MAC zu, aber OpenBSD speichert irgendwo, bei der Installation bzw. beim 1. booten, die MAC der NIC und verwendet dann diese MAC auch mit anderer Hradware. Wenn Du es nicht glauben kannst/willst, dann kannst es ja mal selber testen.

BTW: Das mit dem "MAC recycling", soll das ein Witz sein? Ich habe diesen PI4 2 Jahre mit OpenBSD 6.8 bzw. mit 6.9 benutzt/betrieben und dort wurde immer die richtige MAC-Adresse für die bse0-NIC erkannt bzw. verwendet (und in der FritzBox gespeichert/gemerkt).
Ich kann diesen PI4 mit dem aktuellen Raspi-OS (bullseye-lite) oder mit FreeBSD 13.1 booten und dann wird für diese ethernet-NIC, auch immer die richtige MAC-Adresse erkannt und verwendet.
 
OpenBSD speichert bei der Installation keine MAC Adressen (ich hab den installer code schon ein paar Mal gelesen..).
Auch rc.firsttime tut sowas nicht - es waere hoechstens noch etwas sehr wildes in der bse(4) firmware (glaub ich aber nicht).

Waere das ein generelles feature, waere das mit VM images wirklich kaka.
 
Das weiss ich auch nicht; es ist "faszinierend". Hast Du Zeit und Muse das mal auszutesten? z.B. nach der Installation direkt von 3 auf 4 schwenken (am Ende des Installs auf die Shell und 'halt -p', dann umstecken. Das wuerde schon mal rc.firsttime->fw_update auf dem 3er eliminieren.
Oder auch firsttime auf dem installierten rootfs loeschen, .. gibt da einige Wege einzugrenzen.

Und, wenn du ein 7.1 bsd.rd auf dem PI4 bootest (also plain installer), welche MAC sieht bse0 dann?

Aber die bisherige Schlussfolgerung/Mutmassung, dass OpenBSD da heimlich wilde Dinge tut, kann ich so nicht stehen lassen :-)
 
Aber die bisherige Schlussfolgerung/Mutmassung, dass OpenBSD da heimlich wilde Dinge tut, kann ich so nicht stehen lassen :-)
Naja, dass das heimlich ist bzw. dass es wilde Dinge sind, habe ich nicht gesagt. Ich habe nur gezeigt was passiert ... und irgendwo muss die MAC-Adresse vom PI3 (NIC smsc0) ja gespeichert/abgelegt sein, weil OpenBSD diese MAC-Adresse auf dem PI4, der NIC bse0 zuordnet.
Ich werde da nicht weiter suchen und testen, denn mit dem Workaround (siehe oben) kann ich gut leben.
 
Mal ne Idee, wird das evtl. irgendwo in dem U-Boot-Rotz auf dem Stick gespeichert und die Berrys siehen sich beide daher die Addresse?
 
..., wird das evtl. irgendwo in dem U-Boot-Rotz auf dem Stick gespeichert und die Berrys siehen sich beide daher die Addresse?
Hmm, ... könnte so sein. Aber es gibt kein U-Boot-Rotz auf dem Stick, sondern auf der SD-Karte. Im U-Boot der SD-Karte ist als Bootmedium, der Stick so gesetzt/gespeichert worden:
Code:
setenv boot_targets usb0
saveenv
D. h. ich kann mit dieser SD-Karte (auf jedem PI3B, PI3B+ und PI4) jeden Stick der als usb0 erkannt wird/"ansprechbar ist" und ein funktionierendes (aktuelles) OpenBSD-OS hat/beinhaltet, booten.
U-Boot gehört ja auch zu OpenBSD (es kommt aus dem aktuellen miniroot72.img für arm64) und warum sollte dieses U-Boot gerade die MAC-Adresse vom 1. System (hier der PI3B) speichern und weitergeben?
Aber selbst, wenn diese MAC-Adresse vom PI3B, im U-Boot gespeichert/abgelegt ist, sollte das OpenBSD auf dem Stick (das via U-Boot gestartet/gebootet wird) doch so "schlau" sein, und die aktuelle MAC-Adresse des Lan-Interfaces, von dem Board (hier PI4) auf dem es gerade gebootet wird, erkennen bzw. benutzen, oder? Beim Wlan-Interface (auf dem PI4) geht das doch auch, denn es wird erkannt und das auch mit der richtigen MAC-Adresse:
Code:
bwfm0: address dc:a6:32:cf:3f:39
 
Zurück
Oben