Any news on OpenBSD? (Update: it works now)

Update 2024/02/07: I’ve made this a lot simpler and @minute has been kind enough to set up a project on source.mnt.re so no manual patching and binary blob copying is needed. Also, PCIe WiFI is working with a simple device tree patch to enable the second PCIe port.

A non-exhaustive list of things which work:

  • Display
  • Keyboard
  • Trackball
  • Ethernet
  • NVMe storage
  • Full disk encryption
  • PCIe WiFi (I have tested AR9280)

A non-exhaustive list of things which do not work

  • Automatic power-off on shutdown
  • Accelerated video & 3D, the u-boot framebuffer is used for video. The performance is pretty good though!

A list of things I haven’t tested yet

  • Inbuilt sound chip
  • Suspend or resume
  • Various sensors
  • Battery level information
  • Building firmware for or flashing various Reform components under OpenBSD

I’m working on setting up a CI build for the flash.bin and a pre-patched OpenBSD install image. For now, the instructions to build a flash.bin and install OpenBSD are below:

Steps:

  • Download arm64 install74.img from cdn.openbsd.org
  • Write it to an SD card
  • Clone the main branch of the reform-openbsd repo with git clone https://source.mnt.re/reform/reform-openbsd
  • Make sure you have the dependencies installed for building u-boot, documented here
  • Run make imx8mq_reform2_defconfig, you can also tweak the config if you like
  • I cross-compiled, so I ran ARCH=arm CROSS_COMPILE=aarch64-unknown-linux-gnu- make flash.bin - but CROSS_COMPILE will vary a little based on which aarch64 compiler you have installed. If you compile natively on arm64, you don’t need ARCH or CROSS_COMPILE specified. There is a nix.shell file if you use NixOS to compile, you can run nix-shell to get a shell with the right deps.
  • You should have a flash.bin now, so write it to the SD card with dd if=flash.bin of=/dev/<name of your SD card device> bs=1k seek=33
  • Install the SD card in your reform (assuming you have the boot switch set to SD) and you should be presented with u-boot, which will boot into the OpenBSD bootloader. Interrupt the OpenBSD bootloader and type “set tty fb0”, then press enter to boot the installer.
  • Install OpenBSD as normal, you should be able to install to NVMe without issue. Full disk encryption also works, as well as unlocking the disk in the bootloader.
  • At the end of the install, don’t select reboot, instead choose shell. In the shell run echo "set tty fb0" > /mnt/etc/boot.conf to make sure the framebuffer console is used on boot
5 Likes