29. September 2020
Zeigt den NanoPi NEO3 der getestet wird

NanoPi NEO3: Kleiner und leistungsstarker Einplatinenrechner im Test

⏱Lesezeit: 6 Minuten

Mit dem NanoPi NEO3 hat FriendlyELEC die neuste Version seiner kompakten Raspberry-Pi-Alternative auf den Markt gebracht. In diesem Test wird die Variante mit 2 Gigabyte DDR4 RAM genauer unter die Lupe genommen.

NEO3 – Technische Daten und Preis

Einplatinenrechner gibt es wie Sand am Meer, doch was macht den NanoPi NEO3 besonders? Werfen wir dazu erstmal einen Blick auf die technischen Daten:

Verbauter SoCRockchip RK3328
CPU-ArchitekturARM Cortex A53
CPU-Frequenz400Mhz – 1,296GHz
CPU-Kerne4
Arbeitsspeichertyp32bit DDR4
Arbeitsspeicher1GB/2GB
EthernetGigabit
USBUSB 3.0
NetzanschlussUSB Type-C
Maße48x48mm
Technische Daten des NanoPi NEO3

Im Gegensatz zu der Konkurrenz, wie dem Raspberry Pi Zero W oder dem OrangePi Zero LTS, bietet der NEO3 zwar kein WLAN, dafür aber Gigabit-Ethernet und USB 3.0. Begrüßenswert finde ich, dass der Einplatinenrechner über USB-Typ-C mit Strom versorgt wird.

Bei den Preisen sieht es wie folgt aus:
Ohne Gehäuse und mit nur einem Gigabyte RAM verlangt FriendlyELEC 20$ für den NanoPi.
Das RAM-Upgrade von 1GB auf 2GB schlägt mit 5$ zu Buche. Bestellt man gleich das passende Gehäuse dazu, werden nochmal 2$ draufgeschlagen (was allerdings, wie ich finde, für den Preis ein absoluter No-Brainer ist).

Der Versand ist vergleichsweise teuer. 10$ kostet der Versand über den normalen Postweg aus China. Der DHL-Express-Versand kostet 22$.

Ich persönlich habe meinen NanoPi bei Aliexpress vom Embedunion-Electronics Store bestellt. So habe ich insgesamt nur 28,11€ bezahlt. Zum Zeitpunkt meiner Bestellung hat FriendlyELEC nur eine deutlich teurere Versandoption angeboten.

Zur offiziellen FriendlyELEC-Seite geht es hier.

Erster Eindruck und Benchmarks

In diesem Test wird der NEO3 mit Armbian Buster betrieben, obwohl es sich zum Zeitpunkt des Tests noch in der Testphase befindet (WIP). Somit könnte die Performance des Mini-Rechners in Zukunft noch besser werden.
Zum Benchmark wird die Software Sysbench sowie der 7-zip-Benchmark über den Armbianmonitor verwendet.

FriendlyELEC selbst bietet mit FriendlyCore eine auf Ubuntu 18.04 basierende Linux-Distribution sowie mit FirendlyWrt eine Abwandlung von openWrt an. Beide basieren auf dem Linux-5.4.12-Kernel und sind auf der Wiki-Seite des NEO3 zu finden.

Grundsätzlich ist die Performance auf den ersten Blick sehr gut, obwohl die Armbian-Version noch einen Bug aufweist. Bei jedem Start des Computers wird ein Prozess mit folgendem Kommando gestartet:

/usr/bin/brcm_patchram_plus_rk3399 -d --enable_hci --no2bytes --use_baudrate_for_downloade --tosleep 200000 --baudrate 1500000 --patchram /lib/firmware/brcm/BCM4345C5.hcd /dev/ttyS0

Dabei scheint es sich auf den ersten Blick um ein Problem mit dem Bluetooth-Treiber zu handeln, denn der Prozess lastet einen Kern komplett aus und sorgt damit für hohe Temperaturen. Als kleiner Workaround habe ich den Prozess kurzerhand mit “kill -9 <PID>” beendet und konnte nun realistischere Benchmarks durchführen.
(Alternativ kann man das Problem auch vorerst dauerhaft lösen, indem man mit “systemctl disable rk3399-bluetooth.service” den dazugehörigen Service deaktiviert.)

Das Ergebnis des 7-zip-Benchmarks sieht wie folgt aus:

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs LE)

LE
CPU Freq:   597  1122  1506  1503  1509  1509  1509  1509  1509

RAM size:    1985 MB,  # CPU hardware threads:   4
RAM usage:    882 MB,  # Benchmark threads:      4

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       2356   326    703   2292  |      59806   396   1288   5102
23:       2284   334    697   2327  |      56523   396   1235   4891
24:       2191   342    688   2356  |      53658   396   1188   4710
25:       2108   352    683   2407  |      49487   396   1112   4404
----------------------------------  | ------------------------------
Avr:             339    693   2346  |              396   1206   4777
Tot:             367    949   3561

Monitoring output recorded while running the benchmark:

Time        CPU    load %cpu %sys %usr %nice %io %irq   CPU  C.St.
08:47:30: 1512MHz  0.15  14%   8%   5%   0%   0%   0% 75.8°C  0/6
08:47:35:  600MHz  0.14   0%   0%   0%   0%   0%   0% 65.8°C  0/6
08:47:40: 1512MHz  0.13   1%   0%   1%   0%   0%   0% 68.8°C  0/6
08:47:45: 1512MHz  0.20  52%   1%  50%   0%   0%   0% 84.2°C  0/6
08:47:51: 1296MHz  0.42  95%   1%  94%   0%   0%   0% 83.8°C  0/6
08:47:56: 1512MHz  0.47  79%   2%  76%   0%   0%   0% 83.5°C  0/6
08:48:02: 1200MHz  0.67  93%   1%  92%   0%   0%   0% 84.6°C  1/6
08:48:08: 1296MHz  1.26  79%   2%  77%   0%   0%   0% 84.2°C  0/6
08:48:13: 1296MHz  1.40  87%   2%  84%   0%   0%   0% 83.8°C  0/6
08:48:18: 1296MHz  1.61  92%   2%  90%   0%   0%   0% 85.0°C  1/6
08:48:24: 1296MHz  1.80  96%   1%  95%   0%   0%   0% 83.5°C  0/6
08:48:29: 1512MHz  2.06  66%   3%  62%   0%   0%   0% 83.8°C  1/6
08:48:34: 1200MHz  2.13  83%   2%  80%   0%   0%   0% 85.4°C  1/6
08:48:39: 1296MHz  2.28  87%   2%  84%   0%   0%   0% 85.4°C  1/6
08:48:44: 1512MHz  2.50  91%   2%  88%   0%   0%   0% 86.5°C  1/6
08:48:49: 1296MHz  2.62  94%   2%  91%   0%   0%   0% 85.0°C  1/6
08:48:55: 1296MHz  2.81  97%   2%  95%   0%   0%   0% 86.2°C  1/6
08:49:01: 1008MHz  2.91  94%   2%  92%   0%   0%   0% 84.6°C  2/6

Die Sysbench-Ergebnisse findet ihr im Anhang

Fazit

Der NanoPi NEO3 bietet viel Leistung auf kleiner Fläche und obwohl er doch recht warm wird, sollte er mit den meisten Aufgaben, die man auf so einem kleinen Zwerg laufen lassen kann, klarkommen. Dieses Problem sollte mit einem zusätzlichen Lüfter leicht zu beheben sei. Glücklicherweise integriert FriendlyELEC dazu einen passenden Anschluss auf dem Board.

Alles in allem dürfte der NanoPi für alle interessant sein, die viel Leistung auf kleiner Fläche und moderne Schnittstellen benötigen.

Bei mir persönlich wird der NEO3, sobald eine stabile Armbian-Version vorliegt, den OrangePi Zero LTS ersetzen.
Ich hoffe, dass der Test des NanoPi NEO3 euch gefallen hat und ich euch einen kleinen Einblick bieten konnte.

Anhang

sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 2
Initializing random number generator from current time


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:   597.28

General statistics:
    total time:                          10.0026s
    total number of events:              5977

Latency (ms):
         min:                                    3.32
         avg:                                    3.35
         max:                                    8.45
         95th percentile:                        3.30
         sum:                                19997.95

Threads fairness:
    events (avg/stddev):           2988.5000/0.50
    execution time (avg/stddev):   9.9990/0.00
sysbench --test=memory --num-threads=4 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Running memory speed test with the following options:
  block size: 1KiB
  total size: 102400MiB
  operation: write
  scope: global

Initializing worker threads...

Threads started!

Total operations: 42729648 (4270780.10 per second)

41728.17 MiB transferred (4170.68 MiB/sec)


General statistics:
    total time:                          10.0002s
    total number of events:              42729648

Latency (ms):
         min:                                    0.00
         avg:                                    0.00
         max:                                    0.42
         95th percentile:                        0.00
         sum:                                17987.44

Threads fairness:
    events (avg/stddev):           10682412.0000/9118.91
    execution time (avg/stddev):   4.4969/0.00