Installation von OpenBSD auf einem Banana Pi

zoidb3rg

Well-Known Member
Hallo zusammen,
ich wünsche Euch alles Gute für 2022.
An den Weihnachtsfeiertagen habe ich meine Bastelkiste durchsucht und einen Banana Pi [1] gefunden. Da die Installation von OpenBSD auf einem SBC schon länger auf meiner ToDo Liste stand, habe ich dieses kleine Projekt mal umgesetzt. Anbei die wichtigsten Installationsschritte:
  • https://www.openbsd.org/armv7.html lesen
  • https://ftp.openbsd.org/pub/OpenBSD/7.0/armv7/INSTALL.armv7 lesen
  • das USB-Seriell Kabel [2] entsprechend der Doku [3] anschließen (Rot: nicht anschließen, Schwarz: J12 Pin7 oder Pin8, Weiß: J11 TX, Grün: J11 RX)
  • auf einem OpenBSD Rechner die Pakete u-boot-arm und dtb installieren
  • auf einem OpenBSD Rechner die Datei miniroot-cubie-70.img auf die SD-Karte schreiben (Bsp.: dd if=miniroot-cubie-70.img of=/dev/rsd5c)
  • auf einem OpenBSD Rechner die Datei sun7i-a20-bananapi.dtb auf die SD-Karte kopieren (Bsp.: mount /dev/sd5i /mnt; cp /usr/local/share/dtb/arm/sun7i-a20-bananapi.dtb /mnt/; umount /mnt)
  • auf einem OpenBSD Rechner den U-Boot Bootloader auf die SD-Karte kopieren (Bsp.: dd if=/usr/local/share/u-boot/Bananapi/u-boot-sunxi-with-spl.bin of=/dev/sd5c bs=1024 seek=8)
  • SD-Karte in den Banana Pi einsetzen und die USB-Seriell Verbindung zum OpenBSD Rechner herstellen (Bsp.: cu -l cuaU0 -s 115200 - Hinweis: das erkannte Device uplcom0 bzw. ucom0 kann nicht verwendet werden)
  • die bekannte OpenBSD Installation durchführen (Terminal Type: vt220, Root Disk: sd0)
  • im U-Boot Booloader die Bootreihenfolge von der SD-Karte auf die an den Banana Pi angeschlossene Festplatte/SSD ändern (Bsp.: printenv boot_targets; setenv boot_targets fel scsi0 mmc0 usb0 pxe dhcp; saveenv; boot)



[1] https://linux-sunxi.org/LeMaker_Banana_Pi
[2] https://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/connect-the-lead
[3] https://linux-sunxi.org/LeMaker_Banana_Pi#Adding_a_serial_port
 

berni51

OpenBSD user & NetBSD newbie
Ist es also nicht wie beim Pi, wo die SD-Karte mit dem U-Boot immer drin bleiben muss?
 

zoidb3rg

Well-Known Member
Hi berni51,

die SD-Karte muss auch beim Banana Pi drin bleiben. Die U-Boot Konfiguration wird auf der SD-Karte abgespeichert.
Die Raspberry Pi 3B+ und 4 können meines Wissens direkt von USB booten. Leider habe ich keinen aktuellen Raspberry da, um dies zu testen/bestätigen zu können.
 

dettus

Bicycle User
Weisst du wie das mit den GPIO pins unter OpenBSD ist? Kann ich da auch irgendwelche Shields betreiben?
 

berni51

OpenBSD user & NetBSD newbie
Ja, die 4er Raspis können direkt von USB-ssd booten - nur OpenBSD kann das nicht. Bei Net- und FreeBSD kein Problem, aber OBSD braucht die SD zum Booten.
 

berni51

OpenBSD user & NetBSD newbie
Auf dem Pi kann ich GPIO unter OpenBSD ansprechen, hab gerade ein paar Relais geschaltet und LEDs erleuchtet. Man muss lediglich die GPIO ports, die man benutzen möchte, in die /etc/securelevel eintragen, damit die keinen Level 1 bekommen.
Also so z.B.
/usr/sbin/gpioctl gpio0 7 set out

Damit hab ich einen nutzbaren Ausgang an GPIO 7.
 

Soonwald

Well-Known Member
Weisst du wie das mit den GPIO pins unter OpenBSD ist? Kann ich da auch irgendwelche Shields betreiben?
Das ist zwar jetzt vollkommen OT und möglicherweise bin ich auch inzwischen viel zu alt, um die Generation „Arduino“ begreifen zu können.
Aber um irgendeine LED zum leuchten oder irgendein Relais zum Schalten zu bringen, braucht man doch wirklich keine „Sketches“ ( merkwürdige C-Programm Fragmente ) oder „ Shields ” ( merkwürdige Aufsteckplatinen ) oder gar ein unixoides OS!
Das macht man doch eher mit einer Mikroprozessor-Programmierung bar-metal - also ohne jegliches Betriebssystem.
Und die „shields“ kann jeder auf ner lochraster-oder lochtreifenplatine Platine mit etwas „ hühnerfutter „ schnell zusammen löten!
Neben bei lernt man nicht nur löten, sondern auch noch Ohmsches Gesetz und Kirchhoffsche Regeln!
Ein Unix zu benutzen, auf dem dann ein Programm in Endlosschleife ( wie das OS selbst ) läuft - erscheint mir vollkommen sinnfrei!
Aber wie gesagt, ich muss das auch alles gar nicht mehr verstehen!

LOL
 

midnight

OpenBSD & FreeBSD
Das ist zwar jetzt vollkommen OT und möglicherweise bin ich auch inzwischen viel zu alt, um die Generation „Arduino“ begreifen zu können.
Aber um irgendeine LED zum leuchten oder irgendein Relais zum Schalten zu bringen, braucht man doch wirklich keine „Sketches“ ( merkwürdige C-Programm Fragmente ) oder „ Shields ” ( merkwürdige Aufsteckplatinen ) oder gar ein unixoides OS!
Das macht man doch eher mit einer Mikroprozessor-Programmierung bar-metal - also ohne jegliches Betriebssystem.
Und die „shields“ kann jeder auf ner lochraster-oder lochtreifenplatine Platine mit etwas „ hühnerfutter „ schnell zusammen löten!
Neben bei lernt man nicht nur löten, sondern auch noch Ohmsches Gesetz und Kirchhoffsche Regeln!
Ein Unix zu benutzen, auf dem dann ein Programm in Endlosschleife ( wie das OS selbst ) läuft - erscheint mir vollkommen sinnfrei!
Aber wie gesagt, ich muss das auch alles gar nicht mehr verstehen!

LOL
Es kommt natuerlich darauf an, was man spaeter damit machen will. Es kann schon Sinn ergeben, dass mit einem Raspberry Pi zu machen. Ich will z.B. darueber die Heizung, das Licht, die Rolladen usw. aus der Ferne uebers Netz per VPN steuern (manuell oder zeitgesteuert) und auswerten. Am besten noch ueber eine huebsche Weboberflaeche. Ich denke, die o.g. LEDs waren auch nur als GPIO-Test gedacht, um die Funktion zu demonstrieren.

Ich habe mir damals mal ein SIP-Telefon mit einem RPI gebaut, auf dem Linphone lief. Ueber die GPIO habe ich dann Signalisierungen ausgegeben oder fuer die Tueroeffnung durch Eingabe eines Codes auf dem Telefon dann ein Relais angesteuert.

Ich koennte mir auch vorstellen, bei ankommenden Emails oder bei neuen Updates oder was auch immer etwas auf einem Display ausgeben zu lassen. Hier gibt es schon sehr viele Anwendungsmoeglichkeiten fuer GPIO, um seinen Spieltrieb zu befriedigen.
 
Zuletzt bearbeitet:

berni51

OpenBSD user & NetBSD newbie
Mit meinem Raspberry und einem unixoiden OS rette ich eine alte, aber gut laufende Heizung in einer Werkstatthalle. Bei der Heizung ist die Steuerung defekt und es gibt keine Ersatzteile mehr, ausser auf dem Gebrauchtmarkt. Da nehm ich aber lieber den raspi und baue eine einfache Steuerung damit.
Und wenn der Raspi schon da ist, gibt es noch ein Panel zum Schalten der Lichtleisten und eine zentrale Kameraüberwachung dazu. Änderungen und Erweiterungen sind damit leicht zu machen.
Und zu glauben, man nimmt einen Raspberry/Arduino/Bananapi lediglich zum Ansteuern einer LED und zum Spielen, der, naja, lassen wir das ..... :mad:
 

CommanderZed

OpenBSD User
Teammitglied
Das ist zwar jetzt vollkommen OT und möglicherweise bin ich auch inzwischen viel zu alt, um die Generation „Arduino“ begreifen zu können.
Aber um irgendeine LED zum leuchten oder irgendein Relais zum Schalten zu bringen, braucht man doch wirklich keine „Sketches“ ( merkwürdige C-Programm Fragmente ) oder „ Shields ” ( merkwürdige Aufsteckplatinen ) oder gar ein unixoides OS!
Das macht man doch eher mit einer Mikroprozessor-Programmierung bar-metal - also ohne jegliches Betriebssystem.
Und die „shields“ kann jeder auf ner lochraster-oder lochtreifenplatine Platine mit etwas „ hühnerfutter „ schnell zusammen löten!
Neben bei lernt man nicht nur löten, sondern auch noch Ohmsches Gesetz und Kirchhoffsche Regeln!
Ein Unix zu benutzen, auf dem dann ein Programm in Endlosschleife ( wie das OS selbst ) läuft - erscheint mir vollkommen sinnfrei!
Aber wie gesagt, ich muss das auch alles gar nicht mehr verstehen!

LOL

Da kann ich dem @berni51 nur zustimmen, natürlich kann man diverse sachen auch mit nem einfachen Mikroprozessor lösen - und bei komplexeren sachen kombiniert man son berry ja auch mit einem ebensolchen.

Aber die Idee ist ja gerade da komplexere sachen zu machen, zb Temperaturen auszulesen, in eine Datenbank zu schreiben und die dann irgendwo online verfügbar zu machen oder beim überschreiben automatisch ne mail zu verschicken. Oder beim überschreiten zb ne Lüftung anzuschalten aber auch jemanden per Mail zu informieren damit man dann schaut warum der Raum zu warm ist.
Eigentlich für alles wofür ein Microprozessor zu schmal ist, also eine Netzwerkanbindung, Datenbanken, komplexere Programme, Ansteuerung von Displays etc. sinn macht

Ein weiterer Punkt ist aber natürlich auch die etwas einfachere Programmierung, im zweifel kann auch ein Anfänger ein Bash oder Python Script leichter schreiben als so einen Microcontroller zu Programmieren - ich denke da finden sich leicht diverse weitere Punkte wenn man etwas über den eigenen Horizont und die eigenen Fähigkeiten hinausschaut ;)

Der Arduino ist übrigens tendenziell eher ein Microcontroller als sowas wie ein Raspberry, halt auch hier etwas "convienent" fertig verlötet mit passenden anschlüssen und mit einer einsteigerfreundlicheren entwicklungsumgebung drumherum.
 
Oben