NetBSD supports many boards based on Allwinner SoCs. Starting with NetBSD 8.0, FDT is used to configure devices. As a result, a large number of boards and configurations can be supported with a single kernel.

  1. Supported SoCs
  2. Supported hardware
  3. Installation
  4. Tips and tricks
    1. Video overscan compensation
    2. Pinebook function keys
    3. Pinebook keyboard
    4. Pinebook touchpad
    5. Pinebook screen
  5. Links

Supported SoCs

Family SoC NetBSD version Example boards Notes
sun4iA109.0Olimex A10-OLinuXino-LIME
sun5iA10s-
sun5iA139.0Olimex A13-OLinuXino, Olimex A13-OLinuXino-MICRO
sun5iGR89.0C.H.I.P. Pro
sun5iR89.0C.H.I.P., Pocket C.H.I.P.
sun6iA317.0Merrii Hummingbird A31
sun6iA31s-
sun7iA207.0Cubietech Cubieboard 2, Cubietech Cubietruck, LeMaker Banana Pi
sun8iA23-
sun8iA33-Olimex A33-OLinuXino
sun8iR40-Sinovoip Banana Pi BPI-M2U
sun8iA83T8.0Sinovoip Banana Pi BPI-M3
sun8iH2+8.0Xunlong Orange Pi Zero
sun8iH38.0FriendlyARM NanoPi NEO, Xunlong Orange Pi Plus 2E
sun8iV3s-Lichee Pi Zero
sun9iA808.0Cubietech Cubieboard 4
sun50iA649.0Pine64, Pinebook
sun50iH59.0FriendlyARM NanoPi NEO2, FriendlyARM NanoPi NEO Plus2
sun50iH69.0Orange Pi One Plus, Pine H64

Supported hardware

Please refer to the GENERIC (32-bit) or GENERIC64 (64-bit) kernel configs for the most up-to-date list of supported hardware.

Device Supported Notes
Audio codecYesSupported on sun4i, sun5i, sun6i, sun7i, sun8i-h2+, sun8i-h3, sun50i-h5, sun50i-a64
CAN controllerYes
Crypto engine-
CSI-
DMAYes
Fast Ethernet (sun4i/sun5i/sun7i)Yes
FramebufferYesUses simplefb configured by bootloader
Gigabit Ethernet (sun6i/sun7i/sun9i)Yes
Gigabit Ethernet (sun8i/sun50i)Yes
GPIOYes
GPU-
I2CYes
I2S/PCMExperimental
IR transceiver-
NANDYes
P2WI/RSBYes
PCIe-H6
PWMYes
RTCYes
SATAYes
SD/MMCYes
SMPYes
SPDIF-
SPIYes
Thermal sensorsYes
Touch screenYes
UARTYes
USB 2.0Yes
USB 3.0Yes
USB OTGExperimental
Watchdog timerYes

Installation

If your SoC has a SATA controller and you would like to install on an hard disk and use a SD card only for u-boot please give a look to NetBSD/evbarm install via sysinst(8) on a SATA hard disk, USB stick or (u)SD card.

Tips and tricks

Video overscan compensation

On some television models, the borders of the screen may be cut off. If your television doesn't have an option to disable overscan, you can enable overscan compensation by entering the following commands at the U-Boot prompt:

setenv video-mode sunxi:1280x720-24,overscan_x=32,overscan_y=20
saveenv
reset

Pinebook function keys

The sleep (Fn+Esc), home (Fn+F1), volume down (Fn+F3), volume up (Fn+F4), and mute (Fn+F5) keys on the keyboard are mapped to uhid(4) devices.

Create the following config file:

/etc/usbhidaction.conf

Consumer:Consumer_Control.Consumer:Volume_Up                    1
        mixerctl -n -w outputs.master++
Consumer:Consumer_Control.Consumer:Volume_Down                  1
        mixerctl -n -w outputs.master--
Consumer:Consumer_Control.Consumer:Mute                         1
        mixerctl -n -w outputs.mute++
Consumer:Consumer_Control.Consumer:AC_Home                      1
        /etc/powerd/scripts/hotkey_button AC_Home pressed
Generic_Desktop:System_Control.Generic_Desktop:System_Sleep     1
        /etc/powerd/scripts/sleep_button System_Sleep pressed

Then start two copies of usbhidaction:

# /usr/bin/usbhidaction -c /etc/usbhidaction.conf -f /dev/uhid0 -i -p /var/run/usbhidaction-uhid0.pid 
# /usr/bin/usbhidaction -c /etc/usbhidaction.conf -f /dev/uhid1 -i -p /var/run/usbhidaction-uhid1.pid 

Pinebook keyboard

The new 11" 1080p model has a slightly different keyboard layout to the 14". Using wscons it works perfectly, but using X the \ key next to left shift will display > when pressed. To solve this, you need to change the keyboard layout to altgr-intl. This can be done system wide by creating the file:

/etc/X11/xorg.conf.d/00-system-keyboard.conf

Section "InputDevice"
        Identifier "Pinebook 1080p keyboard"
        Driver     "kbd"
        Option     "XkbLayout"  "us"
        Option     "XkbVariant" "altgr-intl"
EndSection

Pinebook touchpad

To fix jittery touch input on the touchpad, you can adjust the input sensitivity by creating the file:

/etc/X11/xorg.conf.d/00-system-touchpad.conf

Section "InputDevice"
        Identifier "Pinebook touchpad"    
        Driver "mouse"
        Option "AccelerationProfile" "2"
        Option "AdaptiveDeceleration" "1"
        Option "ConstantDeceleration" "2.4" # Pinebook 14"
        #Option "ConstantDeceleration" "1.2" # Pinebook 11"
EndSection

Pinebook screen

X11 currently cannot work out the size of the screen, resulting in a very small DPI on a very small screen. This file configures X to use an 11.6" screen, which results in very readable a DPI of 190.

/etc/X11/xorg.conf.d/01-pinebook-11-screen.conf

Section "Monitor"
        Identifier      "Pinebook 11.6 inch monitor"
        DisplaySize     256.8 144.5     # millimeters, 11.6 inch screen
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Pinebook 11.6 inch monitor"
EndSection

Links