Предварительный обзор SBC NanoPi R4S с OpenWrt и Ubuntu Core


В начале месяца был запущен маршрутизатор SBC NanoPi R4S с питанием от Rockchip RK3399, и FriendlyELEC любезно отправил образец для обзора в CNX Software. Мы намеревались протестировать тепловую производительность, Ethernet и USB, как мы это делали для NanoPi R2S и NanoPi NEO3, но Armbian сейчас недоступен, поэтому мы не смогли использовать некоторые инструменты, которые обычно использовали.

Вместо этого мы протестировали плату/шлюз с образом от FriendlyELEC. Сначала FriendlyCore на основе Ubuntu Core 20.04, но есть некоторые проблемы, которые мы подробно рассмотрим в этом превью, затем мы переключимся на FriendlyWrt, на базе OpenWrt 19.07, который работает лучше, но мы все же столкнулись с некоторыми проблемами. Это означает, что, возможно, лучше подождать немного, пока не будут выпущены образы Armbian или пока FriendlyELEC не исправит некоторые недостатки.

Распаковка шлюза NanoPi R4S

Прежде чем тестировать программу, давайте посмотрим, что мы получили.

NanoPi R4S SBC внутри металлического корпуса вместе с картой памяти microSD класса A1 емкостью 16 ГБ, которая, как мы обнаружили позже, поставляется с предустановленной FriendlyWrt.

На задней панели расположены порт USB-C для питания, порты WAN и LAN Gigabit Ethernet, а также кнопка сброса.

На лицевой стороне устройств расположены два порта USB 3.0, слот для карт MicroSD и что-то вроде стандартной резьбы для крепления камер…

Да, именно так! Мы смогли установить шлюз на штатив фотоаппарата. Это должно позволить использовать некоторые инновационные и недорогие варианты монтажа…

Прежде чем мы разберем устройство, давайте рассмотрим все семейство, слева направо: NanoPi NEO3, NanoPi R2S и NanoPi R4S. Последний значительно больше двух других.

«Разборка» NanoPi R4S

Откроем корпус. Вынув четыре резиновые прокладки и открутив четыре винта в нижней части корпуса, мы можем получить доступ к плате.

Открутив еще два винта, мы можем полностью вынуть плату и увидеть, как процессор контактирует с металлическим корпусом через термопрокладку, как и должно быть.

FriendlyCore 20.04 (ядро Ubuntu)

Сначала мы подумали, что карта microSD пустая, поэтому зашли в Wiki и загрузили последнюю версию FriendlyCore, а именно rk3399-sd-friendlycore-focal-4.19-arm64-20201027.img, и прошили ее на карту MicroSD с помощью USBImager. Затем мы вставили карту в NanoPi R4S, подключили кабели Ethernet к портам WAN и LAN и запитали ее с помощью адаптера питания MINIX NEO P2 USB-C.

Мы видим, что индикатор питания (красный) горит, а индикатор состояния (зеленый) мигает, но индикаторы LAN и WAN не горят. Мы заходим в веб-интерфейс нашего роутера, чтобы проверить наличие новых устройств, узнать IP-адрес и ничего. Может быть, первая загрузка довольно долгая, но через пять минут все еще нет IP-адресов. Наконец, мы решили выключить и снова включить плату, она получила IP-адрес, и мы наконец смогли получить к ней доступ через SSH, используя учетные данные pi/pi по умолчанию. Давайте проверим детали с помощью inxi:

sudo inxi -Fc0
System:
  Host: NanoPi-R4S Kernel: 4.19.111 aarch64 bits: 64 Console: tty 0 
  Distro: Ubuntu 20.04.1 LTS (Focal Fossa) 
Machine:
  Type: ARM Device System: FriendlyElec NanoPi R4S details: N/A 
  serial: f748058df14cbaed 
Battery:
  ID-1: test_battery charge: 100% condition: N/A 
CPU:
  Topology: 6-Core (2-Die) model: N/A variant-1: cortex-a53 
  variant-2: cortex-a72 bits: 64 type: MCP MCM 
  Speed: 1200 MHz min/max: 408/1416:1800 MHz Core speeds (MHz): 1: 408 
  2: 408 3: 408 4: 408 5: 1608 6: 1608 
Graphics:
  Device-1: display-subsystem driver: rockchip_drm v: N/A 
  Device-2: rk3399-dw-hdmi driver: dwhdmi_rockchip v: N/A 
  Device-3: malit860 driver: mali v: N/A 
  Display: server: X.org 1.20.8 driver: mali tty: 79x23 
  Message: Advanced graphics data unavailable in console for root. 
Audio:
  Device-1: rk3399-dw-hdmi driver: dwhdmi_rockchip 
  Device-2: simple-audio-card driver: asoc_simple_card 
  Sound Server: ALSA v: k4.19.111 
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  driver: r8169 
  IF: eth1 state: down mac: d2:ed:28:cf:85:22 
  Device-2: rk3399-gmac driver: rk_gmac_dwmac 
  IF-ID-1: eth0 state: up speed: 1000 Mbps duplex: full 
  mac: 80:1f:12:fc:2f:96 
Drives:
  Local Storage: total: 14.84 GiB used: 100.4 MiB (0.7%) 
  ID-1: /dev/mmcblk1 model: SC16G size: 14.84 GiB 
Partition:
  ID-1: / size: 11.11 GiB used: 100.4 MiB (0.9%) fs: overlay 
  source: ERR-102 
Sensors:
  System Temperatures: cpu: 26.0 C mobo: N/A 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 147 Uptime: 1h 01m Memory: 3.75 GiB used: 206.1 MiB (5.4%) 
  Init: systemd runlevel: 5 Shell: bash inxi: 3.0.38 

Оба устройства Ethernet обнаружены, но eth1 не работает. Однако даже если мы включим его, ссылка не будет обнаружена:

pi@NanoPi-R4S:~$ sudo ifconfig eth1 up
pi@NanoPi-R4S:~$ sudo mii-tool eth1
eth1: no link

Мы подумали, может быть, его можно настроить с помощью npi-config, который должен быть предустановлен в FriendlyCore, но:

pi@NanoPi-R4S:~$ sudo npi-config
sudo: npi-config: command not found

Мы также заметили, что температура странная — всего 26 ° C, но то же самое значение сообщает sbc-bench.sh:

sudo ./sbc-bench.sh -m
[sudo] password for pi: 
Time       big.LITTLE   load %cpu %sys %usr %nice %io %irq   Temp
09:14:27: 1608/ 600MHz  1.86   1%   0%   0%   0%   0%   0%  26.0°C
09:14:32: 1800/1416MHz  1.79  18%   8%   2%   0%   5%   1%  26.0°C

Температура, измеренная инфракрасным термометром, составляет около 39 ° C.

Это поистине волшебство! Теперь, если мы посмотрим на sysfs, мы увидим три температурные зоны:

pi@NanoPi-R4S:~$ cat /sys/devices/virtual/thermal/thermal_zone0/temp 
34444
pi@NanoPi-R4S:~$ cat /sys/devices/virtual/thermal/thermal_zone1/temp 
34444
pi@NanoPi-R4S:~$ cat /sys/devices/virtual/thermal/thermal_zone2/temp 
26000

Похоже, что зона 2 используется сейчас, но она явно запрограммирована на 26 ° C. Однако сценарий sbc-bench проверяет наличие другого файла перед тем, как перейти в каталог /sys/devices/:

cat  /sys/class/hwmon/hwmon0/temp1_input 
26000

Это также запрограммировано на 26C, поэтому мы прокомментируем часть, относящуюся к этому файлу в скрипте, вместо этого используем Therm_zone0.

sudo ./sbc-bench.sh -m
Time       big.LITTLE   load %cpu %sys %usr %nice %io %irq   Temp
04:57:34: 1416/ 408MHz  0.00   0%   0%   0%   0%   0%   0%  35.6°C

Выглядит лучше. Давайте проведем тест:

sudo ./sbc-bench.sh -c
 
sbc-bench v0.7.5
 
Installing needed tools. This may take some time... Done.
Checking cpufreq OPP... Done.
Executing tinymembench. This will take a long time... Done.
Executing OpenSSL benchmark. This will take 3 minutes... Done.
Executing 7-zip benchmark. This will take a long time... Done.
Executing cpuminer. This will take 5 minutes... Done.
Checking cpufreq OPP... Done.
 
Memory performance (big.LITTLE cores measured individually):
memcpy: 1625.4 MB/s 
memset: 8431.7 MB/s (1.0%)
memcpy: 3589.5 MB/s (1.2%)
memset: 8545.4 MB/s (2.3%)
 
Cpuminer total scores (5 minutes execution): 10.39,10.38,10.37,10.36,10.35,10.34,10.33 kH/s
 
7-zip total scores (3 consecutive runs): 5690,5844,5787
 
OpenSSL results (big.LITTLE cores measured individually):
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc     117574.08k   354357.06k   696504.83k   946934.10k  1056814.42k  1063796.74k
aes-128-cbc     345815.47k   794550.68k  1154592.77k  1280458.07k  1344244.39k  1352466.43k
aes-192-cbc     112159.06k   315819.05k   570631.51k   730835.63k   796188.67k   799899.65k
aes-192-cbc     330109.00k   726448.43k   982510.25k  1135289.00k  1181499.39k  1186491.05k
aes-256-cbc     109038.23k   291820.14k   495495.59k   611941.38k   657126.74k   657926.83k
aes-256-cbc     319159.24k   663780.86k   902803.03k   978935.81k  1016075.61k  1018975.57k
 
Full results uploaded to http://ix.io/2HEU. Please check the log for anomalies (e.g. swapping
or throttling happenend) and otherwise share this URL.

Никакого троттлинга обнаружено не было, и, например, оценка 7-zip (~ 5800) примерно такая же, как для RockPi 4C с Rockchip RK3399 с тактовой частотой 1,8 / 1,4 ГГц для обоих SBC.

Поскольку мы не можем установить armbianmonitor, нет красивой диаграммы, но мы все же можем проверить журнал выше и температуру для многоядерных процессоров с 7-zip и cpuminer, которые никогда не превышали 60 ° C:

System health while running 7-zip multi core benchmark:
 
Time       big.LITTLE   load %cpu %sys %usr %nice %io %irq   Temp
05:47:07: 1800/1416MHz  5.16   0%   0%   0%   0%   0%   0%  45.6°C
05:47:28: 1800/1416MHz  5.41  88%   1%  87%   0%   0%   0%  50.6°C
05:47:48: 1800/1416MHz  5.70  83%   1%  82%   0%   0%   0%  50.6°C
05:48:11: 1800/1416MHz  5.54  81%   1%  79%   0%   0%   0%  50.6°C
05:48:31: 1800/1416MHz  5.45  76%   1%  74%   0%   0%   0%  48.1°C
05:48:55: 1800/1416MHz  5.47  90%   1%  88%   0%   0%   0%  51.1°C
05:49:16: 1800/1416MHz  5.71  85%   1%  84%   0%   0%   0%  52.2°C
05:49:38: 1800/1416MHz  5.60  83%   0%  82%   0%   0%   0%  51.7°C
05:50:01: 1800/1416MHz  5.86  82%   1%  80%   0%   0%   0%  52.2°C
05:50:22: 1800/1416MHz  5.85  74%   1%  72%   0%   0%   0%  50.0°C
05:50:42: 1800/1416MHz  5.82  96%   1%  94%   0%   0%   0%  52.2°C
05:51:04: 1800/1416MHz  5.69  85%   1%  84%   0%   0%   0%  52.2°C
05:51:25: 1800/1416MHz  5.58  84%   1%  83%   0%   0%   0%  53.3°C
05:51:47: 1800/1416MHz  5.43  81%   1%  79%   0%   0%   0%  53.3°C
05:52:08: 1800/1416MHz  5.35  76%   1%  74%   0%   0%   0%  50.6°C
05:52:31: 1800/1416MHz  5.68  91%   2%  88%   0%   0%   0%  52.8°C
 
System health while running cpuminer:
 
Time       big.LITTLE   load %cpu %sys %usr %nice %io %irq   Temp
05:52:37: 1800/1416MHz  5.48   0%   0%   0%   0%   0%   0%  50.0°C
05:52:59: 1800/1416MHz  5.63  99%   0%  99%   0%   0%   0%  56.1°C
05:53:22: 1800/1416MHz  5.73 100%   0%  99%   0%   0%   0%  56.1°C
05:53:44: 1800/1416MHz  5.88 100%   0%  99%   0%   0%   0%  56.1°C
05:54:07: 1800/1416MHz  5.92 100%   0%  99%   0%   0%   0%  56.7°C
05:54:30: 1800/1416MHz  6.16 100%   0%  99%   0%   0%   0%  57.2°C
05:54:53: 1800/1416MHz  6.12 100%   0%  99%   0%   0%   0%  57.2°C
05:55:16: 1800/1416MHz  6.13 100%   0%  99%   0%   0%   0%  57.2°C
05:55:39: 1800/1416MHz  6.14 100%   0%  99%   0%   0%   0%  58.3°C
05:56:02: 1800/1416MHz  6.10 100%   0%  99%   0%   0%   0%  58.3°C
05:56:25: 1800/1416MHz  6.12 100%   0%  99%   0%   0%   0%  58.3°C
05:56:47: 1800/1416MHz  6.09 100%   0%  99%   0%   0%   0%  58.3°C
05:57:10: 1800/1416MHz  6.11 100%   0%  99%   0%   0%   0%  58.3°C
05:57:33: 1800/1416MHz  6.08 100%   0%  99%   0%   0%   0%  59.4°C

Это означает, что охлаждение работает очень хорошо, и мы полагаем, что работа процессора на частоте 2,0 ГГц также может быть хорошей. Для сравнения, NanoPi R2S нагрелся до 85°C и немного снизился во время того же теста. Обратите внимание, что здесь зима, поэтому в то время как температура окружающей среды составляла 30 ° C для теста R2S против около 24 ° C сейчас.

Давайте проверим порт Gigabit Ethernet, который работает (eth0) с iperf, используя полнодуплексную передачу:

Client connecting to 192.168.1.2, TCP port 5001
TCP window size:  298 KByte (default)
------------------------------------------------------------
[  6] local 192.168.1.4 port 51780 connected with 192.168.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-60.0 sec  3.07 GBytes   439 Mbits/sec
[  6]  0.0-60.0 sec  6.14 GBytes   878 Mbits/sec

Только Upload:

Client connecting to 192.168.1.4, TCP port 5001
TCP window size:  391 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.2 port 38860 connected with 192.168.1.4 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.0 sec  6.44 GBytes   921 Mbits/sec

Только Download:

Client connecting to 192.168.1.2, TCP port 5001
TCP window size:  340 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.4 port 51820 connected with 192.168.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-60.0 sec  6.57 GBytes   941 Mbits/sec

FriendlyWrt (OpenWrt)

У FriendlyCore есть некоторые проблемы и ограниченная информация в NanoPi R2S Wiki, так что давайте лучше попробуем FriendlyWrt, и мы загрузили rk3399-sd-friendlywrt-5.4-20201111.img.zip на карту MicroSD. На этот раз у нас не возникло никаких проблем с получением IP-адреса, а WAN и светодиоды на плате работают должным образом (зеленый горит). Мы смогли войти в систему, используя SSH:

ssh root@192.168.1.2
The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established.
RSA key fingerprint is SHA256:BPBd3bkZXAHzM6S7s8oE883esQlNccHuuOuJzlqVADM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.2' (RSA) to the list of known hosts.
 
 
BusyBox v1.30.1 () built-in shell (ash)
 
  ___    _             _ _    __      _____ _____ 
 | __| _(_)___ _ _  __| | |_  \ \    / / _ \_   _|
 | _| '_| / -_) ' \/ _` | | || \ \/\/ /|   / | |  
 |_||_| |_\___|_||_\__,_|_|\_, |\_/\_/ |_|_\ |_|  
                           |__/                  
 -----------------------------------------------------
 FriendlyWRT 19.07.4, r11208-ce6496d796
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------

Но вместо того, чтобы продолжить выполнение команды, мы включили веб-браузер нашего ноутбука, чтобы получить доступ к веб-интерфейсу LuCi

Мы также можем увидеть, как настроены порты LAN и WAN. Порт WAN — это клиент DHCP и DHCPv6…

… А порт LAN настроен как мост для управления подсетью 192.168.2.0. Это нормально, и он должен быть настроен как маршрутизатор.

Но, для тестирования мы удалили мост и установили порт локальной сети eth1 в качестве DHCP-клиента, чтобы получить IP-адрес в той же сети:

Затем мы протестировали порт WAN с полнодуплексной передачей:

Client connecting to 192.168.1.2, TCP port 5001
TCP window size:  484 KByte (default)
------------------------------------------------------------
[  6] local 192.168.1.4 port 54200 connected with 192.168.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-60.0 sec  5.56 GBytes   796 Mbits/sec
[  6]  0.0-60.0 sec  5.90 GBytes   845 Mbits/sec

и повторили то же самое с портом LAN:

Client connecting to 192.168.1.10, TCP port 5001
TCP window size:  246 KByte (default)
------------------------------------------------------------
[  6] local 192.168.1.4 port 42058 connected with 192.168.1.10 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-60.0 sec  6.01 GBytes   860 Mbits/sec
[  6]  0.0-60.0 sec  5.83 GBytes   835 Mbits/sec

Все хорошо. Мы также протестировали порт USB 3.0, подключив жесткий диск USB 3.0 к порту рядом с картой MicroSD, но возникли ошибки:

[ 4016.615349] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4017.582838] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4018.534752] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4019.486422] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4020.438725] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4021.390783] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4022.342405] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4023.294942] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?
[ 4024.247236] usb usb8-port1: Cannot enable. Maybe the USB cable is bad?

Поэтому мы переключились на другой порт USB 3.0, и он работал нормально:

[ 4501.341310] usb 6-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[ 4501.367210] usb 6-1: New USB device found, idVendor=0bc2, idProduct=2312, bcdDevice= 6.36
[ 4501.368004] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4501.368674] usb 6-1: Product: Expansion
[ 4501.369152] usb 6-1: Manufacturer: Seagate 
[ 4501.369561] usb 6-1: SerialNumber: NA495NNC
[ 4501.390736] scsi host0: uas
[ 4501.394727] scsi 0:0:0:0: Direct-Access     Seagate  Expansion        0636 PQ: 0 ANSI: 6
[ 4501.401310] sd 0:0:0:0: [sda] Spinning up disk...
[ 4504.889125] .ready
[ 4504.891192] sd 0:0:0:0: [sda] 1953525167 512-byte logical blocks: (1.00 TB/932 GiB)
[ 4504.892476] sd 0:0:0:0: [sda] Write Protect is off
[ 4504.893052] sd 0:0:0:0: [sda] Mode Sense: 2b 00 10 08
[ 4504.894397] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
[ 4504.948967]  sda: sda1 sda2 sda3 sda4
[ 4504.957469] sd 0:0:0:0: [sda] Attached SCSI disk

Затем мы настроили общий ресурс SAMBA в LuCi и командную строку для передачи файлов с нашего ноутбука на USB-накопитель, подключенный к NanoPi R4S.

Он работает, но со скоростью около 16 МБ/с это очень медленно, особенно для накопителя USB 3.0. Другие платформы на базе Arm с Gigabit Ethernet и USB 3.0, работающие под управлением OpenWrt, могут достичь скорости около 50 МБ/с в том же тесте (и на том же жестком диске USB). Может, это просто вопрос оптимизации программного обеспечения.

Заключение

NanoPi R4S лучше, чем предыдущий NanoPi R2S, особенно с точки зрения теплового дизайна, так как плата, помещенная в металлический корпус, никогда не превышала 60 ° C под нагрузкой. С сетевой производительностью тоже все в порядке. Однако похоже, что FriendlyELEC на данный момент больше ориентирован на образ OpenWrt (FriendlyWrt), чем на Ubuntu Core, что приводит к некоторым проблемам. У нас также была одна проблема с одним из портов USB 3.0, но она может быть временной. Если вы планируете использовать OpenWrt с маршрутизатором/шлюзом, это может быть хорошо, но для дистрибутивов Linux на основе Debian ожидание образов Armbian может быть рекомендовано как для стабильности, так и для повышения производительности.

Нам хотелось бы поблагодарить FriendlyELEC за отправку NanoPi R4S для обзора, и если интересно, вы можете получить модель с 4 ГБ ОЗУ и металлическим корпусом, которую мы рассматривали в этом обзоре, за 69 долларов плюс доставка в магазине FriendlyELEC или на Aliexpress.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments