Hi, OpenBSD / Orange PI Zero friends.
I was able to successfully install OpenBSD 6.7 on my Orange PI Zero - and
thought that for future reference, and for anyone else who may be interested
and searches this list, I should post the steps I followed.
# Step 1: Get a 3.3V USB to TTL adapter and connect to the 3 serial pins
I used a PL2303HX and 3 female-to-female DuPont cables. Connect the 3 cables
to the TX/RX/GND on the PL2303HX adapter, and the corresponding 3 pins for
RX/TX/GND on the Orange PI Zero. The 3 pins are on the PCB on their own,
next to the Ethernet jack - and going from the outside of the PCB towards
the inside, they are GND, RX and TX.
Once you plug your PL2303HX in your PC, you should get a new serial port.
Under Linux, it will be accessible via something like /dev/ttyUSB0;
and you can interact with it with any serial monitor program - e.g.
minicom -D /dev/ttyUSB0 -b 115200
...or...
picocom -b 115200 /dev/ttyUSB0
etc.
# Step 2: Preparing an SD card with the proper Orange PI Zero image
Since there's no specific image for Orange PI Zero, we need to do some
modifications to the "miniroot-cubie-67.fs" image provided by the OpenBSD
team.
I chose to do this from within OpenBSD, and to do it in a way that will work
for any host OS - via QEMU.
So I downloaded the i386 "cd67.iso" from an OpenBSD mirror, and...
$ qemu-img create -f qcow2 example.img 1000M
$ qemu-system-i386 -cdrom cd67.iso -hda example.img -boot d -m 2048
I proceeded to install OpenBSD, following all the default options.
After rebooting into the freshly installed i386 "machine", QEMU assigned
IP 10.0.2.15 to the Ethernet interface in it - so I could SSH to it,
and use SSH to copy stuff in/out of it.
# Step 3: Copy the dependencies inside the VM
Now download the "miniroot-cubie-67.fs" image from the 6.7/armv7 folder,
and rename it to "miniroot-orangepizero-67.fs".
In addition, from the 6.7/packages/i386 folder get "dtb-5.6.tgz" and
"u-boot-arm-2020.01p3.tgz". From these two, extract these two files:
$ tar xpvf dtb-5.6.tgz \
share/dtb/arm/sun8i-h2-plus-orangepi-zero.dtb
$ tar xpvf u-boot-arm-2020.01p3.tgz \
share/u-boot/orangepi_zero/u-boot-sunxi-with-spl.bin
These two files and the miniroot image can now be copied into the VM,
via SSH:
$ tar cpf - ./* | ssh [email protected] 'tar xpvf -'
And from within the VM, you can now create the Orange PI Zero image:
$ ssh [email protected]
$ su -
# vnconfig vnd0 ./miniroot-orangepizero-67.fs
# mount /dev/vnd0i /mnt/
# ls -l /mnt/
total 64
drwxr-xr-x 1 root wheel 4096 May 10 00:10 efi
-rw-r--r-- 1 root wheel 25597 May 10 00:10 sun7i-a20-cubieboard2.dtb
# cp sun8i-h2-plus-orangepi-zero.dtb /mnt/
# rm /mnt/sun7i-a20-cubieboard2.dtb
# umount /mnt
# dd if=u-boot-sunxi-with-spl.bin of=/dev/vnd0c bs=1024 seek=8
436+1 records in
436+1 records out
447072 bytes transferred in 0.084 secs (5272426 bytes/sec)
# vnconfig -u vnd0
Now copy across this modified image - and write it on the SD card.
In the example below, lsblk has shown that my SD card is at /dev/sdc:
$ ssh [email protected] \
'cat mini*' > ./miniroot-orangepizero-67.fs
$ dd if=miniroot-orangepizero-67.fs bs=1M \
oflag=sync iflag=fullblock status=progress of=/dev/sdc
That's it. Put the SD card in your Orange PI Zero, launch minicom or
picocom,
and you will be able to install OpenBSD in your Orange PI Zero.
# Step 3
After installation (on the SD card itself), both the Ethernet and the USB
are fully operational. This allowed me to connect an additional
USB-to-Ethernet dongle (with an ASIX chip - OpenBSD used the axe driver
for it) and have a fully operational firewall for my home LAN.
That's all.
Hope this mini-guide helps someone!
Cheers,
Thanassis.
--
https://www.thanassis.space
--
P.S. Many thanks to Philip Plane - his site is no longer there,
but most of the stuff above I figured out from a Google cache
of his page.