Installing BSDs on Cubieboard1

FreeBSD

  • Download SD Card Image for armv7/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.