Installing BSDs on Cubieboard1
FreeBSD
- Download
SD Card Image
forarmv7/GENERICSD
from here, burn to SD card as usual - This image does not contain a U-boot capable of booting Cubieboard1. I
couldn't figure out how to download FreeBSD packages without having FreeBSD
installed, but U-boot image for Cubieboard1 is available in Parabola
repos,
after unpacking write it to the same SD card with
dd if=u-boot-sunxi-with-spl.bin conv=notrunc,sync of=/dev/sd_card_device bs=1k seek=8
. More info here - Boot, go through installation wizard, reboot, log in. Out of the box, FreeBSD takes 2.3Gb of space
$ uname -srm
FreeBSD 13.1-RELEASE arm
FreeBSD spoofed the MAC address for Cubieboard's builtin NIC for some reason. Overall it works well - boots quickly, the usual shell work feels snappy.
NetBSD
- Download
armv7.img.gz
right from the homepage, burn to SD card as usual - Add U-boot, the command is slightly different from FreeBSD:
dd if=u-boot-sunxi-with-spl.bin conv=sync of=/dev/sd_card_device bs=1k seek=8
(source) - Download .tgz "sets" from
here,
place them on a
FAT
partition on a USB stick - Insert both SD card and USB stick, boot. Mount the partition on USB stick.
An adventure in and of itself - the name of the block device is different
across
commands
(
/dev/rsd0d
,sd0
(not/dev/sd0
),/dev/rsd0e
and I don't remember what I used for mounting) - see the link for details - Run
sysinst
command, choose "Local directory", set the "Binary sets dir" to mounted USB partition dir. Clear all the other text fields, otherwise it will fail with some cryptic error. Choose "(Re-)Install additional sets" and "Minimal install" - Reboot, log in. Out of the box, NetBSD takes 2.2Gb of space
$ uname -srm
NetBSD 9.2 evbarm
NetBSD is significantly slower than FreeBSD (I/O operations, installing packages, ssh logins etc). By default, the hostname is the one received from DHCP server. NetBSD used the native MAC address of the builtin NIC, just like Debian.
OpenBSD
I followed the installation manual to get it onto the SD card and it sent the board into a reboot loop with "DRAM init failure" error. I searched for it on the web, didn't find any obvious solutions/workarounds, not really interested in digging into it at the moment.
I want to use this board as a CI target, the BSD
+ armv7hf
combination
should be exotic enough to catch portability issues.