Pinebook Pro

Table of Contents

1. Installation

Last tested: [2021-03-12 Fri]

Unfortunately installing OpenBSD on the Pinebook Pro is not straight forward. It's even more difficult if you are attempting to make use of an NVME drive.

Because of the relative difficulty - I recommend installing with the bits that will enable NVME even if you aren't currently using it. This will make using it in the future much easier!

For my setup, I went with the following NVME drive:

WD Blue SN550 NVME

A few things you need to know about OpenBSD on the PBP:

  1. Console output to the screen does not work.
  2. Xenocara works, you will want to enable xenodm during the install.
  3. Wireless will not work for doing the initial install. The firmware for bwfm is needed.
  4. Sometimes bwfm hangs on boot. If you aren't watching the serial console, you will never see the machine boot / hang.
  5. The USB port on the right hand side doesn't seem to have enough.. umph.. to drive my axe device. If you try using it and your usb-ethernet device doesn't show up, try using the port on the left.

1.1. Creating a bootable µSD drive

For convenience, here is a script to create boot media. During the install (technically, after OpenBSD installs.. but before you reboot) we will need to re-run some of the commands in this shell script.


set -e


if [ "$SD" == "" ]; then
	echo "specify the device your SD card is using."
	exit 1

if [ ! -f miniroot${VER}.img ]; then
	ftp http://ftp.usa.openbsd.org/pub/OpenBSD/snapshots/arm64/miniroot${VER}.img
	ftp http://ftp.usa.openbsd.org/pub/OpenBSD/snapshots/arm64/SHA256.sig

signify -C -p /etc/signify/openbsd-${VER}-base.pub -x SHA256.sig miniroot${VER}.img

if [ ! -f u-boot.img ]; then
	ftp https://github.com/pcm720/rockchip-u-boot/releases/download/nvme-boot/u-boot.img

sha256 u-boot.img | grep "6af3fbcd83c91f590551a0a8afeca489fe13ac777934fd77b38495134fcac6ea"


echo "doas dd if=miniroot${VER}.img of=/dev/r${SD}c bs=5M"
echo "doas dd if=idbloader.img of=/dev/${SD}c bs=32k seek=1 conv=fsync"
echo "doas dd if=u-boot.img of=/dev/r${SD}c bs=64k seek=128 conv=fsync"
echo "doas dd if=trust.img of=/dev/r${SD}c bs=64k seek=192 conv=fsync"
echo "doas mount /dev/${SD}i /mnt"
echo "doas cp rk3399-pinebook-pro.dtb /mnt/"
echo "doas umount /mnt"

For safety, the script doesn't actually dd anything to your µSD card. You will need to verify the output and execute the commands on your own.

1.2. Connecting to the serial console

Fore some reason the speed is set to 1520000. I can't ever remember that.

cu -s 1520000 -l /dev/cuaU0

1.3. Press enter a bunch

  • If the install seems to hang after "Password for root account? (again)" press a key that is not enter, and it should print the next prompt.

1.3.1. Root disk

On my system, I have:

Available disks are: sd0 sd1 sd2.
Which disk is the root disk? ('?' for details) [sd0] ?
sd0: NVMe, WDC WDS500G2B0C-, 2110  (465.8G)
sd1: SD/MMC, GD2S5, 0030  (119.4G)
sd2: Sandisk, DA4064, 0000  (58.2G)
Available disks are: sd0 sd1 sd2.
Which disk is the root disk? ('?' for details) [sd0] 
my NVME drive.
The µSD card I built in step 1.
Internal EMMC.

I will be installing OpenBSD to sd0 AND sd2.

Date: 2021-03-12 Fri 00:00

Author: Aaron Bieber

Created: 2022-08-23 Tue 13:13