Lab Notes

Various personal weekend projects

Jun 09, 2024

NetBSD 10 on a Pinebook Pro laptop

NetBSD 10 Aarch64

I've been running NetBSD on a RockPro64 since NetBSD 10-BETA, and I'm still happy with it now with NetBSD 10-RELEASE. I'm always looking for hardware to hack NetBSD though, and I recently watched a FOSDEM 2024 video: NetBSD 10: Thirty years, still going strong!. The Pinebook Pro laptop was mentioned at one point, which has the same RockChip SoC as the RockPro64. That reminded me I'd been wanting to give this inexpensive ARM 64 laptop a try.

It took a week or so to arrive from the PINE64 store in good shape and included a power supply that plugs into the 5V 3A barrel power port. You have to order laptops seperately because of the battery. I seperately ordered a USB Type A adapter that also uses the power port and I now normally use that. You can also power it from the USB C port which is handy.

First boot out of the box starts with Linux Manjaro - not great, not terrible. I used that to test the hardware, including the video cam, ports, speakers, etc. Everything looked good. It was now time to take the bottom cover off to get to the 64gb eMMC card and copy a NetBSD 10 image.

Booting NetBSD 10-RELEASE

I grabbed the image specifically listed for the Pinebook Pro. You also have to grab the U-BOOT for the Pinebook Pro from pkgsrc. I followed the installation documentation, put the eMMC card back in, and the bottom cover back on.

BTW, the PINE64 documentation for the Pinebook Pro is useful, including notes on safely removing the bottom cover.

The first boot is similar to the RockPro64, except of course you don't need a serial console or seperate monitor. Logged in as root, the first thing I did was check dmesg[0].

The included WiFi card is not supported by 10-RELEASE, so I grabbed a Type A USB ethernet adapter (axen driver) and plugged it in and NetBSD recognized it on the USB2 port. Before I connected a network cable, I edited /etc/dhcpcd.conf with specific interface settings that better suits my IPv6-only network. I started with ethernet first since I knew I'd be installing many binary packages from pkgsrc (urtwn Edimax USB WiFi is now what I generally use).

Now connected to the network, I ran sysinst and configured everything needed to reboot and start installing binary packages. I played around with the default ctwm window manager, Firefox102, Thunderbird102, NetSurf, xephem, and others.

Cool! I have a NetBSD laptop 😊

Hardware

The screen is good and the backlight can be controlled via sysctl. The keyboard is also good once you get familiar using Fn for common keystrokes.

The touchpad is not great but not terrible. I did upgrade the firmware (see PINE64 docs) and it helped with sensitivity. I have 3 main issues with the touchpad:

  1. The way I touch type (most likely with terrible posture), my palm sometimes bumps the touchpad and the cursor goes flying to some random screen location. This is extremly annoying, but infrequent enough I usually get past it.
  2. There is no scrolling functionality (e.g. 2 fingers on my Windows laptop touchpad scrolls).
  3. No middle mouse button for pasting in X.

It's still adequate though when I don't have a USB wheel mouse attached. To make up for the lack of touchpad scrolling, Fn + up/down arrow navigates effectively on better behaved websites.

For the lack of a middle mouse button gesture on the touchpad, I installed xclip and this has been effective. I usually want to copy/paste something on one xterm to another. Using the touchpad to select and then click on the selection, this will copy to the "primary" X selection. I then use something like $(xclip -o) to include that with a command. I also use the "clipboard" X selection for a copy/paste from, say, Firefox to xterm. For that, I often use xclip -selection clipboard -o in some combination. And finally -- since I'm typing this on my Pinebook Pro right now using gvim -- dmesg | xclip is how I copy/pasted.

Additional notes

  • If you want a serial console for debugging, etc, there is a board switch that changes the audio stereo jack to a UART. I used a simple audio stereo jack breakout and followed the PINE64 docs to get this to work with a USB serial adapter (mine is a USB RTCP2104 TTL adapter) that can handle a speed of 1500000.

  • Audio and webcam work fine. For the webcam, I had to specially compile OpenCV 4.9 to get this to work with the webcam. It seems there is an issue with kernel video buffer reallocation when changing cam resolution. I'm still debugging this (AMD64 has the same issue). ffmpeg works though, and I can capture at full resolution. But this is not a work laptop and I have zero desire for video calls 😊

  • I use estd to keep the CPU speed at check until needed. There is no active cooling, so if you do a build, you might want to put a fan over the keyboard and/or create separation between the laptop bottom and the surface it's resting on. To control things further, use schedctl -A 4,5 along with security.models.extensions.user_set_cpu_affinity=1 to use the faster cores.

  • The USB C port works for charging, but not for much else in my testing. NetBSD did recognize my Lenovo USB C docking station as an ethernet cdce device and this seems stable. I also tried a USB C ure device and that did not work on the USB C port, but did using a USB3 Type C to A adapter on the USB3 Type A port only after boot. It was unstable though so I don't recommend. Ultimately for best stability, I use a USB3 axen on the USB2 port (via USB hub) and a urtwn on the Type A USB3 port.

  • I pretty quickly replaced the Manjaro Linux that came installed on the eMCC. But you can always install something else on a USB memory stick and that will boot on the USB2 port before the eMMC. This will be handy when I start experimenting with NetBSD-CURRENT.

Summary

It's great to finally have a BSD laptop around the house, and I'm happy with NetBSD 10-RELEASE on the Pinebook Pro.

One motivation was to have a non-work laptop handy for things I need to check on in my home lab. For example, if want to do a late night check on how that ZFS scrub is going on my FreeBSD server, I don't have to use tmux on my phone, I can grab my shiny new NetBSD laptop instead. Perfect.

[0]dmesg

[     1.000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
[     1.000000]     2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
[     1.000000]     2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
[     1.000000]     2024
[     1.000000]     The NetBSD Foundation, Inc.  All rights reserved.
[     1.000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[     1.000000]     The Regents of the University of California.  All rights reserved.

[     1.000000] NetBSD 10.0 (GENERIC64) #0: Thu Mar 28 08:33:33 UTC 2024
[     1.000000]     mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/evbarm/compile/GENERIC64
[     1.000000] total memory = 3940 MB
[     1.000000] avail memory = 3797 MB
[     1.000000] entropy: ready
[     1.000000] timecounter: Timecounters tick every 10.000 msec
[     1.000000] Kernelized RAIDframe activated
[     1.000000] armfdt0 (root)
[     1.000000] simplebus0 at armfdt0: Pine64 Pinebook Pro
[     1.000000] cpus0 at simplebus0
[     1.000000] psci0 at simplebus0: PSCI 1.1
[     1.000000] simplebus1 at simplebus0
[     1.000000] cpu0 at cpus0: Arm Cortex-A53 r0p4 (v8-A), id 0x0
[     1.000000] cpu0: package 0, core 0, smt 0
[     1.000000] cpu0: IC enabled, DC enabled, EL0/EL1 stack Alignment check enabled
[     1.000000] cpu0: Cache Writeback Granule 16B, Exclusives Reservation Granule 16B
[     1.000000] cpu0: Dcache line 64, Icache line 64, DIC=0, IDC=0, LoUU=1, LoC=2, LoUIS=1
[     1.000000] cpu0: L1 32KB/64B 2-way (256 set) VIPT Instruction cache
[     1.000000] cpu0: L1 32KB/64B 4-way (128 set) PIPT Data cache
[     1.000000] cpu0: L2 512KB/64B 16-way (512 set) PIPT Unified cache
[     1.000000] cpu0: revID=0x180, PMCv3, 4k table, 64k table, 16bit ASID
[     1.000000] cpu0: auxID=0x11120, GICv3, FP, CRC32, SHA1, SHA256, AES+PMULL, NEON, rounding, NaN propagation, denormals, 32x64bitRegs, Fused Multiply-Add
[     1.000000] cpufreqdt0 at cpu0
[     1.000000] cpu1 at cpus0: Arm Cortex-A53 r0p4 (v8-A), id 0x1
[     1.000000] cpu1: package 0, core 1, smt 0
[     1.000000] cpu1: IC enabled, DC enabled, EL0/EL1 stack Alignment check enabled
[     1.000000] cpu1: Cache Writeback Granule 16B, Exclusives Reservation Granule 16B
[     1.000000] cpu1: Dcache line 64, Icache line 64, DIC=0, IDC=0, LoUU=1, LoC=2, LoUIS=1
[     1.000000] cpu1: L1 32KB/64B 2-way (256 set) VIPT Instruction cache
[     1.000000] cpu1: L1 32KB/64B 4-way (128 set) PIPT Data cache
[     1.000000] cpu1: L2 512KB/64B 16-way (512 set) PIPT Unified cache
[     1.000000] cpu1: revID=0x180, PMCv3, 4k table, 64k table, 16bit ASID
[     1.000000] cpu1: auxID=0x11120, GICv3, FP, CRC32, SHA1, SHA256, AES+PMULL, NEON, rounding, NaN propagation, denormals, 32x64bitRegs, Fused Multiply-Add
[     1.000000] cpufreqdt1 at cpu1
[     1.000000] cpu2 at cpus0: Arm Cortex-A53 r0p4 (v8-A), id 0x2
[     1.000000] cpu2: package 0, core 2, smt 0
[     1.000000] cpu2: IC enabled, DC enabled, EL0/EL1 stack Alignment check enabled
[     1.000000] cpu2: Cache Writeback Granule 16B, Exclusives Reservation Granule 16B
[     1.000000] cpu2: Dcache line 64, Icache line 64, DIC=0, IDC=0, LoUU=1, LoC=2, LoUIS=1
[     1.000000] cpu2: L1 32KB/64B 2-way (256 set) VIPT Instruction cache
[     1.000000] cpu2: L1 32KB/64B 4-way (128 set) PIPT Data cache
[     1.000000] cpu2: L2 512KB/64B 16-way (512 set) PIPT Unified cache
[     1.000000] cpu2: revID=0x180, PMCv3, 4k table, 64k table, 16bit ASID
[     1.000000] cpu2: auxID=0x11120, GICv3, FP, CRC32, SHA1, SHA256, AES+PMULL, NEON, rounding, NaN propagation, denormals, 32x64bitRegs, Fused Multiply-Add
[     1.000000] cpufreqdt2 at cpu2
[     1.000000] cpu3 at cpus0: Arm Cortex-A53 r0p4 (v8-A), id 0x3
[     1.000000] cpu3: package 0, core 3, smt 0
[     1.000000] cpu3: IC enabled, DC enabled, EL0/EL1 stack Alignment check enabled
[     1.000000] cpu3: Cache Writeback Granule 16B, Exclusives Reservation Granule 16B
[     1.000000] cpu3: Dcache line 64, Icache line 64, DIC=0, IDC=0, LoUU=1, LoC=2, LoUIS=1
[     1.000000] cpu3: L1 32KB/64B 2-way (256 set) VIPT Instruction cache
[     1.000000] cpu3: L1 32KB/64B 4-way (128 set) PIPT Data cache
[     1.000000] cpu3: L2 512KB/64B 16-way (512 set) PIPT Unified cache
[     1.000000] cpu3: revID=0x180, PMCv3, 4k table, 64k table, 16bit ASID
[     1.000000] cpu3: auxID=0x11120, GICv3, FP, CRC32, SHA1, SHA256, AES+PMULL, NEON, rounding, NaN propagation, denormals, 32x64bitRegs, Fused Multiply-Add
[     1.000000] cpufreqdt3 at cpu3
[     1.000000] cpu4 at cpus0: Arm Cortex-A72 r0p2 (v8-A), id 0x100
[     1.000000] cpu4: package 1, core 0, smt 0
[     1.000000] cpu4: IC enabled, DC enabled, EL0/EL1 stack Alignment check enabled
[     1.000000] cpu4: Cache Writeback Granule 16B, Exclusives Reservation Granule 16B
[     1.000000] cpu4: Dcache line 64, Icache line 64, DIC=0, IDC=0, LoUU=1, LoC=2, LoUIS=1
[     1.000000] cpu4: L1 48KB/64B 3-way (256 set) PIPT Instruction cache
[     1.000000] cpu4: L1 32KB/64B 2-way (256 set) PIPT Data cache
[     1.000000] cpu4: L2 1024KB/64B 16-way (1024 set) PIPT Unified cache
[     1.000000] cpu4: revID=0x4, PMCv3, 4k table, 64k table, 16bit ASID
[     1.000000] cpu4: auxID=0x11120, GICv3, FP, CRC32, SHA1, SHA256, AES+PMULL, NEON, rounding, NaN propagation, denormals, 32x64bitRegs, Fused Multiply-Add
[     1.000000] cpufreqdt4 at cpu4
[     1.000000] cpu5 at cpus0: Arm Cortex-A72 r0p2 (v8-A), id 0x101
[     1.000000] cpu5: package 1, core 1, smt 0
[     1.000000] cpu5: IC enabled, DC enabled, EL0/EL1 stack Alignment check enabled
[     1.000000] cpu5: Cache Writeback Granule 16B, Exclusives Reservation Granule 16B
[     1.000000] cpu5: Dcache line 64, Icache line 64, DIC=0, IDC=0, LoUU=1, LoC=2, LoUIS=1
[     1.000000] cpu5: L1 48KB/64B 3-way (256 set) PIPT Instruction cache
[     1.000000] cpu5: L1 32KB/64B 2-way (256 set) PIPT Data cache
[     1.000000] cpu5: L2 1024KB/64B 16-way (1024 set) PIPT Unified cache
[     1.000000] cpu5: revID=0x4, PMCv3, 4k table, 64k table, 16bit ASID
[     1.000000] cpu5: auxID=0x11120, GICv3, FP, CRC32, SHA1, SHA256, AES+PMULL, NEON, rounding, NaN propagation, denormals, 32x64bitRegs, Fused Multiply-Add
[     1.000000] cpufreqdt5 at cpu5
[     1.000000] gicvthree0 at simplebus0: GICv3
[     1.000000] gicvthree0: iidr 0x0001143b, cpuif non-secure, dist non-secure, priority shift 4, pmr shift 4, quirks 0x1
[     1.000000] gicvthree0: ITS [#0] Devices table @ 0x271000/0x80000, Non-cacheable, Non-shareable
[     1.000000] gicvthree0: ITS @ 0xfee20000
[     1.000000] syscon0 at simplebus0: System Controller Registers
[     1.000000] syscon1 at simplebus0: System Controller Registers
[     1.000000] syscon2 at simplebus0: System Controller Registers
[     1.000000] syscon3 at simplebus0: System Controller Registers
[     1.000000] syscon4 at simplebus0: System Controller Registers
[     1.000000] syscon5 at simplebus0: System Controller Registers
[     1.000000] syscon6 at simplebus0: System Controller Registers
[     1.000000] syscon7 at simplebus0: System Controller Registers
[     1.000000] syscon8 at simplebus0: System Controller Registers
[     1.000000] syscon9 at simplebus0: System Controller Registers
[     1.000000] syscon10 at simplebus0: System Controller Registers
[     1.000000] syscon11 at simplebus0: System Controller Registers
[     1.000000] syscon12 at simplebus0: System Controller Registers
[     1.000000] syscon13 at simplebus0: System Controller Registers
[     1.000000] syscon14 at simplebus0: System Controller Registers
[     1.000000] syscon15 at simplebus0: System Controller Registers
[     1.000000] syscon16 at simplebus0: System Controller Registers
[     1.000000] syscon17 at simplebus0: System Controller Registers
[     1.000000] syscon18 at simplebus0: System Controller Registers
[     1.000000] syscon19 at simplebus0: System Controller Registers
[     1.000000] syscon20 at simplebus0: System Controller Registers
[     1.000000] syscon21 at simplebus0: System Controller Registers
[     1.000000] syscon22 at simplebus0: System Controller Registers
[     1.000000] syscon23 at simplebus0: System Controller Registers
[     1.000000] fclock0 at simplebus0: 24000000 Hz fixed clock (xin24m)
[     1.000000] syscon24 at simplebus0: System Controller Registers
[     1.000000] syscon25 at simplebus0: System Controller Registers
[     1.000000] syscon26 at simplebus0: System Controller Registers
[     1.000000] syscon27 at simplebus0: System Controller Registers
[     1.000000] rkcru0 at simplebus0: RK3399 CRU
[     1.000000] rkcru1 at simplebus0: RK3399 PMU CRU
[     1.000000] gtmr0 at simplebus0: Generic Timer
[     1.000000] gtmr0: interrupting on GICv3 irq 27
[     1.000000] armgtmr0 at gtmr0: Generic Timer (24000 kHz, virtual)
[     1.000000] timecounter: Timecounter "armgtmr0" frequency 24000000 Hz quality 500
[     1.000004] rkiomux0 at simplebus0: RK3399 IOMUX control
[     1.000004] rkgpio0 at rkiomux0: GPIO (gpio0@ff720000)
[     1.000004] gpio0 at rkgpio0: 32 pins
[     1.000004] rkgpio1 at rkiomux0: GPIO (gpio1@ff730000)
[     1.000004] gpio1 at rkgpio1: 32 pins
[     1.000004] rkgpio2 at rkiomux0: GPIO (gpio2@ff780000)
[     1.000004] gpio2 at rkgpio2: 32 pins
[     1.000004] rkgpio3 at rkiomux0: GPIO (gpio3@ff788000)
[     1.000004] gpio3 at rkgpio3: 32 pins
[     1.000004] rkgpio4 at rkiomux0: GPIO (gpio4@ff790000)
[     1.000004] gpio4 at rkgpio4: 32 pins
[     1.000004] rkpwm0 at simplebus0: PWM
[     1.000004] rkpwm1 at simplebus0: PWM
[     1.000004] rkiic0 at simplebus0: Rockchip I2C (400000 Hz)
[     1.000004] iic0 at rkiic0: I2C bus
[     1.000004] rkpmic0 at iic0 addr 0x1b: RK808 Power Management and Real Time Clock IC
[     1.000004] rkreg0 at rkpmic0: vdd_center
[     1.000004] rkreg1 at rkpmic0: vdd_cpu_l
[     1.000004] rkreg2 at rkpmic0: vcc_ddr
[     1.000004] rkreg3 at rkpmic0: vcc_1v8
[     1.000004] rkreg4 at rkpmic0: LDO_REG1
[     1.000004] rkreg5 at rkpmic0: LDO_REG2
[     1.000004] rkreg6 at rkpmic0: vcc1v8_pmupll
[     1.000004] rkreg7 at rkpmic0: vcc_sdio
[     1.000004] rkreg8 at rkpmic0: vcca3v0_codec
[     1.000004] rkreg9 at rkpmic0: vcc_1v5
[     1.000004] rkreg10 at rkpmic0: vcca1v8_codec
[     1.000004] rkreg11 at rkpmic0: vcc_3v0
[     1.000004] rkreg12 at rkpmic0: vcc3v3_s3
[     1.000004] rkreg13 at rkpmic0: vcc3v3_s0
[     1.000004] fan53555reg0 at iic0 addr 0x40: Silergy SYR82X
[     1.000004] fan53555reg1 at iic0 addr 0x41: Silergy SYR82X
[     1.000004] fregulator0 at simplebus0: vcc0v9_s3
[     1.000004] fregulator1 at simplebus0: vcca1v8_s3
[     1.000004] fregulator2 at simplebus0: vcc3v3_ssd
[     1.000004] fregulator3 at simplebus0: vcc3v0_sd
[     1.000004] fregulator4 at simplebus0: vcc3v3_sys
[     1.000004] fregulator5 at simplebus0: vcc_sysin
[     1.000004] fregulator6 at simplebus0: vbus_5vout
[     1.000004] rkiic1 at simplebus0: Rockchip I2C (100000 Hz)
[     1.000004] iic1 at rkiic1: I2C bus
[     1.000004] fusb30x (fcs,fusb302) at iic1 addr 0x22 not configured
[     1.000004] cwfg0 at iic1 addr 0x62: CellWise CW2015 Fuel Gauge IC (ver. 0x70)
[     1.000004] fregulator7 at simplebus0: vcc5v0_otg
[     1.000004] fregulator8 at simplebus0: vcc_12v
[     1.000004] fregulator9 at simplebus0: vcc3v3_panel
[     1.000004] rkiic2 at simplebus0: Rockchip I2C (100000 Hz)
[     1.000004] iic2 at rkiic2: I2C bus
[     1.000004] es8316ac0 at iic2 addr 0x11: Everest Semi ES8316 Audio CODEC
[     1.000004] fregulator10 at simplebus0: vcc5v0_usb
[     1.000004] rkiic3 at simplebus0: Rockchip I2C (100000 Hz)
[     1.000004] iic3 at rkiic3: I2C bus
[     1.000004] com0 at simplebus0: DesignWare APB UART, 64-byte FIFO
[     1.000004] com0: interrupting on GICv3 irq 131
[     1.000004] com1 at simplebus0: DesignWare APB UART, 64-byte FIFO
[     1.000004] com1: console
[     1.000004] com1: interrupting on GICv3 irq 132
[     1.000004] pregulator0 at simplebus0: vdd_log
[     1.000004] fregulator11 at simplebus0: vcc_0v9
[     1.000004] mmcpwrseq0 at simplebus0: Simple MMC power sequence provider
[     1.000004] rkdrm0 at simplebus0
[     1.000004] rkpciephy0 at syscon0: RK3399 PCIe PHY
[     1.000004] rkusb0 at syscon0: USB2 PHY
[     1.000004] rkusbphy0 at rkusb0: USB2 host port
[     1.000004] rkusbphy1 at rkusb0: USB2 OTG port
[     1.000004] rkusb1 at syscon0: USB2 PHY
[     1.000004] rkusbphy2 at rkusb1: USB2 host port
[     1.000004] rkusbphy3 at rkusb1: USB2 OTG port
[     1.000004] /opp-table0 at simplebus0 not configured
[     1.000004] /opp-table1 at simplebus0 not configured
[     1.000004] rkvop0 at simplebus0: RK3399 VOPL
[     1.000004] rkvop0: interrupting on GICv3 irq 151
[     1.000004] rkvop1 at simplebus0: RK3399 VOPB
[     1.000004] rkvop1: interrupting on GICv3 irq 150
[     1.000004] rkpcie0 at simplebus0: RK3399 PCIe
[     1.000004] rkpcie0: link training timeout (link_st 0)
[     1.000004] /power-management@ff310000/power-controller at syscon1 not configured
[     1.000004] rkemmcphy0 at syscon0: eMMC PHY
[     1.000004] /phy@ff7c0000 at simplebus0 not configured
[     1.000004] /phy@ff800000 at simplebus0 not configured
[     1.000004] /dma-controller@ff6e0000 at simplebus0 not configured
[     1.000004] /dma-controller@ff6d0000 at simplebus0 not configured
[     1.000004] rktsadc0 at simplebus0: RK3399 Temperature Sensor ADC
[     1.000004] rktsadc0: interrupting on GICv3 irq 129
[     1.000004] /gpu@ff9a0000 at simplebus0 not configured
[     1.000004] /battery at simplebus0 not configured
[     1.000004] /dc-charger at simplebus0 not configured
[     1.000004] /iommu@ff650800 at simplebus0 not configured
[     1.000004] /iommu@ff660480 at simplebus0 not configured
[     1.000004] sdhc0 at simplebus0: Arasan SDHCI controller
[     1.000004] sdhc0: interrupting on GICv3 irq 43
[     1.000004] sdhc0: SDHC 3.0, rev 16, caps <44edc880/800020f7>, 32-bit ADMA2, 200000 kHz, embedded slot, HS SDR50 DDR50 SDR104 HS200 1.8V, re-tuning mode 1, 1024 byte blocks
[     1.000004] sdmmc0 at sdhc0 slot 0
[     1.000004] /iommu@ff8f3f00 at simplebus0 not configured
[     1.000004] anxdp0 at simplebus0: eDP TX
[     1.000004] /dp@fec00000 at simplebus0 not configured
[     1.000004] /iommu@ff903f00 at simplebus0 not configured
[     1.000004] /iommu@ff914000 at simplebus0 not configured
[     1.000004] panel0 at simplebus0: panel
[     1.000004] /opp-table2 at simplebus0 not configured
[     1.000004] pwmbacklight0 at simplebus0: PWM Backlight, 0-255 (256 steps)
[     1.000004] simpleamp0 at simplebus0: Simple Amplifier
[     1.000004] rki2s0 at simplebus0: I2S/PCM controller
[     1.000004] rki2s0: interrupting on GICv3 irq 72
[     1.000004] dwcmmc0 at simplebus0: DesignWare SD/MMC
[     1.000004] dwcmmc0: interrupting on GICv3 irq 96
[     1.000004] dwcmmc1 at simplebus0: DesignWare SD/MMC
[     1.000004] dwcmmc1: interrupting on GICv3 irq 97
[     1.000004] ehci0 at simplebus0: EHCI
[     1.000004] ehci0: interrupting on GICv3 irq 58
[     1.000004] ehci0: EHCI version 1.0
[     1.000004] ehci0: 1 companion controller, 1 port
[     1.000004] ehci0: Using DMA subregion for control data structures
[     1.000004] usb0 at ehci0: USB revision 2.0
[     1.000004] ohci0 at simplebus0: OHCI
[     1.000004] ohci0: interrupting on GICv3 irq 60
[     1.000004] ohci0: OHCI version 1.0
[     1.000004] usb1 at ohci0: USB revision 1.0
[     1.000004] ehci1 at simplebus0: EHCI
[     1.000004] ehci1: interrupting on GICv3 irq 62
[     1.000004] ehci1: EHCI version 1.0
[     1.000004] ehci1: 1 companion controller, 1 port
[     1.000004] ehci1: Using DMA subregion for control data structures
[     1.000004] usb2 at ehci1: USB revision 2.0
[     1.000004] ohci1 at simplebus0: OHCI
[     1.000004] ohci1: interrupting on GICv3 irq 64
[     1.000004] ohci1: OHCI version 1.0
[     1.000004] usb3 at ohci1: USB revision 1.0
[     1.000004] xhci0 at simplebus0: DesignWare USB3 XHCI (rev. 3.00a)
[     1.000004] xhci0: interrupting on GICv3 irq 137
[     1.000004] xhci0: xHCI version 1.10
[     1.000004] usb4 at xhci0: USB revision 3.0
[     1.000004] usb5 at xhci0: USB revision 2.0
[     1.000004] xhci1 at simplebus0: DesignWare USB3 XHCI (rev. 3.00a)
[     1.000004] xhci1: interrupting on GICv3 irq 142
[     1.000004] xhci1: xHCI version 1.10
[     1.000004] usb6 at xhci1: USB revision 3.0
[     1.000004] usb7 at xhci1: USB revision 2.0
[     1.000004] /saradc@ff100000 at simplebus0 not configured
[     1.000004] rkspi0 at simplebus0: SPI
[     1.000004] rkspi0: interrupting on GICv3 irq 85
[     1.000004] spi0 at rkspi0: SPI bus
[     1.000004] m25p0 at spi0 slave 0
[     1.000004] /syscon@ff320000/io-domains at syscon23 not configured
[     1.000004] /video-codec@ff650000 at simplebus0 not configured
[     1.000004] /video-codec@ff660000 at simplebus0 not configured
[     1.000004] /rga@ff680000 at simplebus0 not configured
[     1.000004] /efuse@ff690000 at simplebus0 not configured
[     1.000004] /syscon@ff770000/io-domains at syscon0 not configured
[     1.000004] /rktimer@ff850000 at simplebus0 not configured
[     1.000004] /iommu@ff924000 at simplebus0 not configured
[     1.000004] ausoc0 at simplebus0: hdmi-sound
[     1.000004] gpioleds0 at simplebus0: green:power red:standby
[     1.000004] armpmu0 at simplebus0: Performance Monitor Unit
[     1.000004] armpmu1 at simplebus0: Performance Monitor Unit
[     1.000004] dwcwdt0 at simplebus0: DesignWare Watchdog Timer
[     1.000004] dwcwdt0: default watchdog period is 15 seconds
[     1.000004] gpiokeys0 at simplebus0: Lid
[     1.000004] gpiokeys1 at simplebus0: Power
[     1.000004] ausoc1 at simplebus0: rockchip,es8316-codec
[     1.000004] rkdrm0: reserved 40 MB DRAM for CMA
[     1.000004] rkfb0 at rkdrm0
[     1.000004] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[     1.000004] [drm] No driver support for vblank timestamp query.
[     1.000004] [drm] Initialized rk 1.0.0 20191109 for rkdrm0 on minor 0
[     1.000004] rkdrm0: initialized rk 1.0.0 20191109 on minor 0
[     1.000004] rkfb0: framebuffer at 0x3a1000, size 1920x1080, depth 32, stride 7680
[     1.000004] warning: /usr/src/sys/external/bsd/drm2/dist/drm/drm_atomic_helper.c:1497: [CRTC:38:crtc-1] vblank wait timed out
[     1.000004] wsdisplay0 at rkfb0 kbdmux 1: console (default, vt100 emulation)
[     1.000004] wsmux1: connecting to wsdisplay0
[     1.000004] wsdisplay0: screen 1-3 added (default, vt100 emulation)
[     1.000004] ausoc0: autoconfiguration error: couldn't acquire cpu dai on hdmi-sound node
[     1.000004] ausoc1: codec: es8316ac0, cpu: rki2s0, aux: simpleamp0
[     1.000004] audio0 at ausoc1: playback, capture, full duplex
[     1.000004] audio0: slinear_le:16 -> slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for playback
[     1.000004] audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for recording
[     1.000004] spkr0 at audio0: PC Speaker (synthesized)
[     1.000004] wsbell at spkr0 not configured
[     1.000004] timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
[     1.575150] cpufreqdt0: rate: 1416.000 MHz, 1125000 uV
[     1.585148] cpufreqdt4: rate: 1800.000 MHz, 1200000 uV
[     1.615147] sdmmc1 at dwcmmc1
[     1.615147] Lid: lid opened.
[     1.615147] uhub0 at usb4: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 3.00/1.00, addr 0
[     1.625150] uhub0: 1 port with 1 removable, self powered
[     1.675148] uhub7 at usb7: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 0
[     1.675148] uhub7: 1 port with 1 removable, self powered
[     1.675148] m25p0: JEDEC ID mfgid:0xC8, devid:0x4018
[     1.675148] spiflash0 at m25p0: GigaDevice 25Q127CSIG SPI flash
[     1.675148] spiflash0: 16384 KB, 256 sectors of 64 KB each
[     1.675148] armpmu0: interrupting on GICv3 irq 23
[     1.675148] armpmu1: interrupting on GICv3 irq 23
[     1.685152] uhub5 at usb2: NetBSD (0x0000) EHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 1
[     1.685152] uhub5: 1 port with 1 removable, self powered
[     1.685152] uhub2 at usb6: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 3.00/1.00, addr 0
[     1.685152] uhub2: 1 port with 1 removable, self powered
[     1.685152] uhub1 at usb5: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 0
[     1.685152] uhub1: 1 port with 1 removable, self powered
[     1.685152] uhub6 at usb0: NetBSD (0x0000) EHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 1
[     1.685152] uhub6: 1 port with 1 removable, self powered
[     1.685152] uhub3 at usb1: NetBSD (0x0000) OHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
[     1.685152] uhub3: 1 port with 1 removable, self powered
[     1.685152] uhub4 at usb3: NetBSD (0x0000) OHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1
[     1.685152] uhub4: 1 port with 1 removable, self powered
[     1.685152] IPsec: Initialized Security Association Processing.
[     1.705150] sdmmc2 at dwcmmc0
[     2.985178] sdhc0: autoconfiguration error: timeout waiting for mask 0x3 value 0 (state=0x1fff0a06)
[     2.995178] sdhc0: command or data phase inhibited
[     3.005179] sdhc0: autoconfiguration error: tuning did not complete, using fixed sampling clock
[     3.005179] ld0 at sdmmc0: <0x45:0x0100:DA4064:0x00:0xbf50c945:0x000>
[     3.005179] ld0: 59640 MB, 7603 cyl, 255 head, 63 sec, 512 bytes/sect x 122142720 sectors
[     3.015180] ld0: GPT GUID: 987939cb-c08e-4614-88c3-6749b5d3104f
[     3.015180] dk0 at ld0: "EFI", 163840 blocks at 32768, type: msdos
[     3.015180] dk1 at ld0: "netbsd-root", 121937920 blocks at 196608, type: ffs
[     3.015180] ld0: 8-bit width, HS200, 4096 KB cache, 200.000 MHz
[     3.125181] sdmmc2: 4-bit width, 50.000 MHz
[     3.125181] sdmmc2: SDIO function
[     3.125181] bwfm0 at sdmmc2 function 1
[     3.135181] (manufacturer 0x2d0, product 0xa9bf) at sdmmc2 function 2 not configured
[     3.135181] (manufacturer 0x2d0, product 0xa9bf, standard function interface code 0x2) at sdmmc2 function 3 not configured
[     3.165182] urtwn0 at uhub7 port 1
[     3.165182] urtwn0: Realtek (0x7392) Edimax N150 Adapter (0xb811), rev 2.00/0.00, addr 1
[     3.175183] urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R, address 08:be:ac:42:6d:d5
[     3.175183] urtwn0: 1 rx pipe, 2 tx pipes
[     3.755195] uhub8 at uhub5 port 1: vendor 05e3 (0x05e3) USB2.0 Hub (0x0608), class 9/0, rev 2.00/60.90, addr 2
[     3.755195] uhub8: single transaction translator
[     3.765195] uhub8: 4 ports with 1 removable, self powered
[     4.095203] uhidev0 at uhub3 port 1 configuration 1 interface 0
[     4.095203] uhidev0: HAILUCK CO.,LTD (0x258a) USB KEYBOARD (0x001e), rev 1.10/1.00, addr 2, iclass 3/1
[     4.105203] ukbd0 at uhidev0
[     4.105203] wskbd0 at ukbd0: console keyboard, using wsdisplay0
[     4.105203] uhidev1 at uhub3 port 1 configuration 1 interface 1
[     4.105203] uhidev1: HAILUCK CO.,LTD (0x258a) USB KEYBOARD (0x001e), rev 1.10/1.00, addr 2, iclass 3/0
[     4.125204] uhidev1: 35 report ids
[     4.125204] ums0 at uhidev1 reportid 1: 3 buttons
[     4.125204] wsmouse0 at ums0 mux 0
[     4.125204] uhid0 at uhidev1 reportid 2: input=1, output=0, feature=0
[     4.135205] uhid1 at uhidev1 reportid 3: input=3, output=0, feature=0
[     4.135205] uhid2 at uhidev1 reportid 5: input=0, output=0, feature=5
[     4.135205] uhid3 at uhidev1 reportid 6: input=0, output=0, feature=1039
[     4.135205] uhid4 at uhidev1 reportid 9: input=1, output=0, feature=0
[     4.135205] uhid5 at uhidev1 reportid 30: input=7, output=0, feature=0
[     4.135205] uhid6 at uhidev1 reportid 31: input=0, output=0, feature=1
[     4.135205] uhid7 at uhidev1 reportid 32: input=0, output=0, feature=256
[     4.135205] uhid8 at uhidev1 reportid 34: input=0, output=0, feature=1
[     4.145204] uhid9 at uhidev1 reportid 35: input=0, output=0, feature=1
[     4.655215] uvideo0 at uhub8 port 1 configuration 1 interface 0: Sonix Technology Co., Ltd. (0x0c45) USB Camera (0x6321), rev 2.00/0.00, addr 3
[     4.665216] video0 at uvideo0: Sonix Technology Co., Ltd. (0x0c45) USB Camera (0x6321), rev 2.00/0.00, addr 3
[     4.665216] swwdog0: software watchdog initialized
[     4.675216] WARNING: 3 errors while detecting hardware; check system log.
[     4.675216] boot device: dk1
[     4.675216] root on dk1
[     4.675216] root file system type: ffs
[     4.685216] kern.module.path=/stand/evbarm/10.0/modules
[     4.685216] bwfm0: Firmware file default:    brcmfmac43455-sdio.bin
[     4.685216] bwfm0: Firmware file model-spec: brcmfmac43455-sdio.pine64,pinebook-pro.bin
[     4.695217] bwfm0: Found Firmware file: brcmfmac43455-sdio.bin
[     4.705217] bwfm0: NVRAM file default:    brcmfmac43455-sdio.txt
[     4.705217] bwfm0: NVRAM file model-spec: brcmfmac43455-sdio.pine64,pinebook-pro.txt
[     4.705217] bwfm0: autoconfiguration error: NVRAM file not available
[     4.705217] bwfm0: CLM file default:    brcmfmac43455-sdio.clm_blob
[     4.705217] bwfm0: CLM file model-spec: brcmfmac43455-sdio.pine64,pinebook-pro.clm_blob
[     6.035248] wsdisplay0: screen 4 added (default, vt100 emulation)

Other notes