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 withgit 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
- butCROSS_COMPILE
will vary a little based on which aarch64 compiler you have installed. If you compile natively on arm64, you don’t needARCH
orCROSS_COMPILE
specified. There is anix.shell
file if you use NixOS to compile, you can runnix-shell
to get a shell with the right deps. - You should have a
flash.bin
now, so write it to the SD card withdd 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