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

Supported SoCs

Family SoC NetBSD version Example boards Notes
sun4iA108.99.3 and laterOlimex A10-OLinuXino-LIME
sun5iA138.99.2 and laterOlimex A13-OLinuXino, Olimex A13-OLinuXino-MICRO
sun5iGR88.99.5C.H.I.P. Pro
sun5iR88.99.2 and laterC.H.I.P., Pocket C.H.I.P.
sun6iA317.0 and laterMerrii Hummingbird A31
sun7iA207.0 and laterCubietech Cubieboard 2, Cubietech Cubietruck, LeMaker Banana Pi
sun8iA33-Olimex A33-OLinuXino
sun8iR40-Sinovoip Banana Pi BPI-M2U
sun8iA83T8.0 and laterSinovoip Banana Pi BPI-M3
sun8iH2+8.0 and laterXunlong Orange Pi Zero
sun8iH38.0 and laterFriendlyARM NanoPi NEO, Xunlong Orange Pi Plus 2E
sun8iV3s-Lichee Pi Zero
sun9iA808.0 and laterCubietech Cubieboard 4
sun50iA648.99.2 and laterPine64, Pinebookaarch32 mode
sun50iH58.99.4 and laterFriendlyARM NanoPi NEO2, FriendlyARM NanoPi NEO Plus2aarch32 mode
sun50iH6-Orange Pi One Plus, Pine H64

Supported hardware

Please refer to the SUNXI kernel config for the most up-to-date list of supported hardware.

Device Supported Notes
Audio codecYesSupported on sun4i, sun5i, sun6i, sun7i, sun8i-h2+, sun8i-h3
Crypto engine-
Fast Ethernet (sun4i/sun5i/sun7i)Yes
FramebufferYesUses simplefb configured by bootloader
Gigabit Ethernet (sun6i/sun7i/sun9i)Yes
Gigabit Ethernet (sun8i/sun50i)Yes
IR transceiver-
SMPYesUses PSCI support in firmware
Thermal sensorsYes
Touch screenYes
USB 2.0Yes
USB OTGExperimental
Watchdog timerYes


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

hello, in order to properly operate the cubietruck, I set up a fex/bin file to the root of my SD card. I tried without the script, with a script modified to display on a VGA screen, as well as an original script for display on HDMI display, but none work. I feel that the script is not even read it. the LED display does not do properly. However, I checked several times, I put exactly what was stated in the wiki.

Comment by Gilles Thursday afternoon, December 18th, 2014

I succeeded to connect via the serial port, but I have a first problems, the root partition exceeds the maximum capacity of the partition:

beagleboard# df -h Filesystem Size Used Avail %Cap Mounted on /dev/ld0a 434M 434M -21M 105% /

I could make some changes and I do not know if it came from there, but it is impossible to create user the database is apparently corrupt:

beagleboard# pwd_mkdb /etc/master.passwd pwd_mkdb: Cannot open `/etc/spwd.db.tmp': File exists

Comment by Gilles Thursday evening, December 18th, 2014

hi all,

is there any fine manual to install netbsd on banana pi? i've tried to follow above instruction, however my banana pi won't boot to netbsd...

thank you

Comment by tri Wednesday afternoon, December 2nd, 2015

Dear tri, I have just updated instructions regarding how to install NetBSD 7.0 on the AllWinner SoCs.

I have noticed that uenvcmd was not honored by U-Boot and so writing it is needed to have an U-Boot image script (that can be generated via mkubootimage(1)).

If you have further questions or you notice some problems feel free to ask and I will try to help you (like you I have a Banana Pi and tested all the updated instructions on a BPI)!

Good luck and happy hacking! Ciao, L.

Comment by leot early Thursday morning, December 10th, 2015
It's not obvious that one should add "console=fb" to the boot.cmd file when setting up a BPI board. Other than that these instructions worked perfectly. Thanks!
Comment by perseant Monday night, January 11th, 2016

Unfortunately I tried both 'console=fb' and 'setenv console fb', to no avail. I see the (presumably) sunxi boot on HDMI, but after the console switch there are virtual console that react to keypresses, but no login appears on them. The board even appears via DHCP on the network.

I guess I need to find some serial interface to talk to it?

Comment by a.krey late Saturday afternoon, January 16th, 2016
New sources have multiple kernels listed like netbsd-CUBIETRUCK.ub . Kernel wouldn't boot until I renamed it to netbsd.ub instead of just pointing to netbsd-CUBIETRUCK.ub.
Comment by Mr. Friday afternoon, January 22nd, 2016

I downloaded armv7.img from official FTP, dd'd u-boot-sunxi-with-spl.bin to it, made boot.cmd as per instructions and connected BPI to a Samsung LED TV via hdmi cable. I see the initial boot, however it fails with a black screen after "transferring control to NetBSD stage-2 loader (at address 40007800)". What am I doing wrong?

Here is the picture of boot-up:

I initially thought it was a screen resolution problem, but I tried everything in uEnv.txt without success.

Comment by soxxxz Saturday night, February 20th, 2016

I have the following for my BPI

bpi# cat /boot/uEnv.txt
bootargs=root=wd0a -v c0nsole=fb fb.margin=60 armv7.dcache=1 aload_script=fatload mmc 0 0x43000000 bananapi/script.bin; aload_kernel=fatload mmc 0 0x48000000 netbsd.ub; bootm 0x48000000; uenvcmd=run aload_script aload_kernel bpi#

with this version of u-boot: U-Boot 2014.04-10693-gf954935 (Aug 06 2014 - 11:18:37) Allwinner Technology

Maybe this explains the boot problems people have seen. Any further problems please send-pr.

Comment by skrll early Wednesday morning, February 24th, 2016

This configuration is grossly complicated and adds extra configurations which does not make sense to use all. uEnv.txt? So, here is the simple breakdown for someone who just wants to get a working boot on cubietruck. The config files that come with the download seem made only for odroid with some sloppy config to look like it should work for others.

  1. gunzip armv7.img.gz
  2. dd if=u-boot-sunxi-with-spl.bin of=armv7.img bs=1k seek=8 conv=notrunc
  3. dd if=armv7.img of=/dev/rsd0d bs=1m
  4. mount -t msdos /dev/sd0e /mnt
  5. cd /mnt
  6. mkdir old
  7. mv * old/
  8. mv old/netbsd-YOURKERNEL.ub ./netbsd.ub
  9. ---- boot.cmd ----
  10. setenv bootargs "root=ld0a console=fb"
  11. fatload mmc 0:1 82000000 netbsd.ub; bootm 82000000
  12. ---- EOF ----
  13. mkubootimage -A arm -n armv7 -T script boot.cmd boot.scr

Done and bootable now. If the screen goes black after boot, unplug and re-plugin the hdmi cable

Comment by Mr. in the wee hours of Saturday night, March 6th, 2016

There is a good chance there is a bug that causes us to not deal with the smaller block size of sd correctly.

  • A 2GB SD card fails in the BPI.
  • A 8GB SDHC card with the same image (dd'ed) works correctly in the same BPI.

I did not test 32GB or 64GB (SDXC).

Comment by cyber early Friday morning, December 2nd, 2016
Add a comment
Contact | Disclaimer | Copyright © 1994-2018 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.
NetBSD® is a registered trademark of The NetBSD Foundation, Inc.