В начале месяца был запущен маршрутизатор 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
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 не работает. Однако даже если мы включим его, ссылка не будет обнаружена:
1 2 3 |
pi@NanoPi-R4S:~$ sudo ifconfig eth1 up pi@NanoPi-R4S:~$ sudo mii-tool eth1 eth1: no link |
Мы подумали, может быть, его можно настроить с помощью npi-config, который должен быть предустановлен в FriendlyCore, но:
1 2 |
pi@NanoPi-R4S:~$ sudo npi-config sudo: npi-config: command not found |
Мы также заметили, что температура странная – всего 26 ° C, но то же самое значение сообщает sbc-bench.sh:
1 2 3 4 5 |
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, мы увидим три температурные зоны:
1 2 3 4 5 6 |
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/:
1 2 |
cat /sys/class/hwmon/hwmon0/temp1_input 26000 |
Это также запрограммировано на 26C, поэтому мы прокомментируем часть, относящуюся к этому файлу в скрипте, вместо этого используем Therm_zone0.
1 2 3 |
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 |
Выглядит лучше. Давайте проведем тест:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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, используя полнодуплексную передачу:
1 2 3 4 5 6 7 |
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:
1 2 3 4 5 6 |
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:
1 2 3 4 5 6 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
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 с полнодуплексной передачей:
1 2 3 4 5 6 7 |
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:
1 2 3 4 5 6 7 |
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, но возникли ошибки:
1 2 3 4 5 6 7 8 9 |
[ 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, и он работал нормально:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[ 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.
Оригинал статьи вы можете прочитать здесь.