NanoPi NEO2 Board Benchmarks with Ubuntu 16.04.2 using Linux 3.10 and Linux 4.10

I’ve received NanoPi NEO 2 boards, add-boards and sensor modules last week, where we could see how small the boards were, and how it could be suitable for IoT projects or “hardware hacking” education.  Before testing the board with the add-ons, I have to select the image to run on the board, and currently we have two choices: Ubuntu 16.04.2 FriendlyELEC image with Linux 3.10 “legacy” kernel, or Armbian Ubuntu 16.04.2 Xenial nightly build with Linux 4.10 “mainline” kernel. So I decided to try both: dfssf

  • nanopi-neo2-ubuntu-core-qte-sd4g-20170329.img.zip (296 MB) is the image from FriendlyELEC (previously FriendlyARM)
  • Armbian_5.27.170401_Nanopineo2_Ubuntu_xenial_dev_4.10.0.7z (222 Mb) is the image from Armbian, which I downloaded on March 31st despite the filename including “170401” string

You can flash the image with Win32DiskImager (Windows) or dd (linux) to a micro SD card the usual way, and while I’ve never personally had troubles with dd, I’ve been told Etcher was better, as it verifies the SD card after flashing, and dd may miss errors. Etcher works in Windows, Linux, and Mac OS with a graphical user interface or from the command line. I used Etcher GUI in my Ubuntu 16.04 computer, and it’s indeed easy to use, shows the progress, and a big plus for me is that you can’t mess with your USB hard drive, as it will filter them. Another small advantage is that you don’t need to uncompress the firmware, as Etcher will do that for you, at least for zip files, but i had to manually uncompress Armbian .7z archive before loading to Etcher.

Note that I used the exact same micro SD card (the 8GB SanDisk Ultra sold by FriendlyELEC) and the same board for both images. I started with FriendlyELEC image, and then repeated the test with Armbian image.

I connected the Gigabit Ethernet port to my GbE switch, as well as FriendlyELEC Matrix USB2UART board with the provide cabled including 5V, GND, Tx and RX. It will power the board too, but if you’re going to run benchmarks, there won’t always be enough, and I also used a USB power supply connected to the micro USB port. Having 5V on the serial cable makes it inconvenient, because when I need to power cycle the board I had to remove both the debug board and the extra USB power supply. So instead I used 3 jumper wires without 5V as shown in the picture below.

Click to Enlarge

FriendlyELEC Ubuntu 16.04.2 Boot Log and Info

I used minicom connected to /dev/ttyUSB0 with 115200 8N1 configuration to boot the board, and this is the boot log for Ubuntu 16.04.2 image with Linux 3.10 once I got the debug board issue mentioned above out of the way (so it’s not the very first boot):

It will login automatically in the console, and you don’t need to to enter the username & password. If you need to use sudo later the password for “pi” user is simply “pi”

Let’s check some of the system details:


Linux 3.10.65 is used, and the root file system was automatically resized during the first boot to make use of the complete storage available on the micro SD card. We have 928 MB used out of 7.2 GB. It will show four Aarch64 cores part of sun50iw2 family. There are some module loaded specifically for camera support such as vfe_v4l2 module, which you could disable in /etc/modules if you don’t need it.  I’ll need GPIO support for BakeBit Starter Kit, and it seems enabled by default.

Just like in NanoPi NEO Ubuntu, there’s a Qt demo enabled in /etc/rc.local, so you may want to remove the lines below since we don’t have an LCD display connected to the board:

Armbian Ubuntu 16.04.2 Boot Log and Info

The boot log for Armbian is much shorter (and cleaner):

The image appears to be for OrangePi PC 2 board, and there are some errors about failure to set voltage and CPU frequency, so maybe it will have to be fixed soon.

You’ll need to login with root / 1234, and the first time, you’ll be asked to change root password, and create a new user part of sudoers. I’ve run the same command with the Armbian image as I did with the FriendlyELEC (FE) one:


The obvious advantage is that the Armbian image is running the latest Linux 4.10.0 kernel with all new features and security patchsets. The rootfs is also automatically resized during the first boot, but there must be more packages installed by default, since 1.2 GB is used out of 7.2 GB. while we had only 928 MB used in FE image. The reported hardware is sun50iw1p1 against sun50iw2 in FE image, but I assume it does not matter that much. Different modules are loaded by default in that image, no camera modules, but instead audio modules. The listed GPIOs are the same as in FE image.

Linux 4.8 and greater is supposed to support the new GPIO subsystem with the ability to list GPIOs using lsgpio command:


But the command is not installed, and not part of any Ubuntu packages, so it would have to be build from source, but I have not checked it yet. All examples provided by FriendlyELEC for their BakeBit Starter Kit are going to use sysfs interface since they provide a Linux 3.10 image.

NanoPi NEO 2 Benchmarks

I’m going to running the same benchmarks as on NanoPi NEO with Phoronix and iperf. Since Ubuntu 16.04 comes with PHP 7, Phoronix Test Suite installation is a little different:


I made sure the heatsink faced upwards when running the benchmarks, as in the past I had troubles when the heatsink faced the table since – as you mum or teacher must have told you – heat is going up, and if the heatsink faces down, heat may be trapped.

Then I ran the benchmark using FE and Armbian images:


You’ll find all results here, but let’s have a look at some of the results starting with Ripper, a multi-thread password cracking program. FA stands for FriendlyARM in the chart.

Click to Enlarge

I’ve included all the boards for broad results. In this particular benchmark NanoPi NEO 2 is about the same speed as NanoPi NEO board, and both images have similar performance. Please note that the image may not have been optimized for the best performance, but rather low power consumption with lower CPU and RAM frequencies, which may explain for example why Orange Pi One is a little faster. You’ll note the importance of have a heatsink, by looking at “NanoPi NEO 512MB No Heatsink” result. The results with the image used on NanoPi NEO 2 also seem more “stable”, as the SE +/- values are much smaller in all tests.

Click to Enlarge

FLAC audio encoding is a single thread test, and here NanoPi NEO  and NEO 2 have similar performance using Ubuntu FA image, but for some reason the Armbian image was slower here.

Click to Enlarge

So far we did not see any improvement use NEO 2 over NEO, but if we look at C-Ray benchmark, there’s a clear advantage of using the 64-bit processor (H5) over the 32-bit processor (H3).

Click to Enlarge

Smallpt v1.0 is another example showing much better performance on NanoPi NEO 2, and it’s even faster than Raspberry Pi 3 board.

But overall, there’s basically no difference between using FriendlyELEC or Armbian Ubuntu image, except for the FLAC audio encoding.  But let’s have a look at Ethernet performance.

Ethernet Performance with Ubuntu 16.04.2 + Linux 3.10 FriendlyELEC image.

iperf upload (iperf -s running on computer):


iperf download (iperf -s running on board):


full duplex:


There seems to be a serious problem with upload speed.
I did an extra test with a 1.6 GB HTTP download to /dev/null:


The download speed on NanoPi NEO 2 was 57.1 MB/s. Acceptable.

Ethernet Performance on Ubuntu 16.04.2 + Linux 4.10 Armbian image.

I’m repeated the same test with Armbiab image:

iperf upload:


iperf download:


iperf full duplex:


HTTP download: 108 MB/s.

So there’s no competition here, Armbian image is much better if you need good Gigabit Ethernet performance. The poor upload performance is gone, and the HTTP download is twice as fast, and close to the maximum theoretically possible throughput.

Finally , I did a quick test with CHARGER DOCTOR to check the power consumption in idle mode: 0.21A @ 4.65V (~0.98 Watt). Last year, NanoPi NEO consumed about 2 Watts in idle mode with a non-optimized Ubuntu + Qt Embedded image.

Based on the results I got here, I’ll probably try Armbian image with BakeBit Starter Kit to test GPIO, I2C, UART,… and only revert to FriendlyELEC image in case one of the module does not work.

NanoPi NEO 2 sells for $14.99, and the heatsink set for $2.97 with shipping adding a few dollars.

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

Subscribe
Notify of
guest
21 Comments
oldest
newest
tkaiser
tkaiser
4 years ago

There’s definitely something wrong with the Armbian image if it reports Orange Pi PC 2. Please try to add echo 'fdtfile=sun50i-h5-nanopi2.dtb' >> /boot/armbianEnv.txt 1 echo 'fdtfile=sun50i-h5-nanopi2.dtb' >> /boot/armbianEnv.txt to /boot/armbianEnv.txt, reboot and if this doesn’t fix it we have to investigate further. Please also note that there is a fixed/better mainline Ethernet driver variant in the works so performance will most probably increase automatically within the next weeks or months. It should also be noted that Armbian settings for NEO 2 are tuned for low consumption and we didn’t even start to investigate fine-tuning with H5 boards. I’ll start working… Read more »

tkaiser
tkaiser
4 years ago

@Jean-Luc Aufranc (CNXSoft): You mentioned H3 NEO consuming 2W in idle. Most probably your board is PCB rev 1.0 which had a design flaw that was fixed soon by FriendlyELEC (IIRC only weeks later after some early adopters noticed bad thermal and consumption behaviour they replaced U7 LDO regulator and since then the problem is gone. With Armbian’s settings a NEO with PCB rev 1.0 idled slightly below 1W so I would assume with later board revisions that must have been dropped to 700mW or even below). Unfortunately you won’t have much fun with Bakebit stuff and Armbian now since… Read more »

tkaiser
tkaiser
4 years ago

BTW: Since NEO 2 might also make for a nice small NAS I added some lines of code to Armbian’s build system to create proper OpenMediaVault 3 OS images for any of the ~50 SBC we currently support: https://github.com/igorpecovnik/lib/commit/04583b2ceb4f0e7b5d8544c4251a33e5a320648b So in case you want to extend your NEO 2 test series with another part in a few weeks (I need my NEO Plus 2 here to start improving performance settings) you could give it a try. Funnily most ‘ready to run’ OMV images available on the net for ARM devices use weird settings so that a NEO 2 while being… Read more »

tkaiser
tkaiser
4 years ago

And another question: could you please provide output from ‘gcc –version’ with both images (if different then it might explain some variations in Moronix test suite results above). And tinymembench numbers would also be very interesting 🙂

Antony
Antony
4 years ago

What is the maximum power NanoPi NEO 2 draw, say when doing full speed iperf. Also how the Air with wifi and load. Thanks for the benchmarks. They rate 2A. Does it really need 10W under load?