Недавно получен ранний образец Radxa ROCK5 Model B (также известный как ROCK 5B) SBC из партии “Developer Edition” с 16 ГБ ОЗУ. Ранее уже были продемонстрированы аппаратные характеристики и успешная загрузка в Debian 11.
После дополнительного тестирования платы в рамках “debug party” проверены производительность и функциональность в Debian 11. Как и ожидалось, некоторые компоненты работают удовлетворительно, другие требуют доработки.
Тесты производительности Rock 5B
Для оценки производительности и стабильности запущен скрипт SBC Bench:
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 |
$ sudo ./sbc-bench.sh ./sbc-bench.sh: line 9: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory sbc-bench v0.9.8 Installing needed tools: Done. Checking cpufreq OPP. Done (results will be available in 27-41 minutes). Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Checking cpufreq OPP. Done (24 minutes elapsed). Memory performance (different CPU cores measured individually): memcpy: 5818.7 MB/s (0.2%) memset: 21920.2 MB/s memcpy: 10457.5 MB/s memset: 28493.1 MB/s (1.2%) memcpy: 10424.6 MB/s memset: 28501.9 MB/s (0.6%) 7-zip total scores (3 consecutive runs): 16243,16303,16200 OpenSSL results (different CPU cores measured individually): type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 166016.73k 481326.98k 935623.51k 1231227.90k 1355688.62k 1365895.85k (Cortex-A55) aes-128-cbc 635522.45k 1307613.63k 1670568.36k 1782235.82k 1826261.67k 1832135.34k (Cortex-A76) aes-128-cbc 638225.59k 1304051.80k 1665359.53k 1776506.20k 1820434.43k 1826379.09k (Cortex-A76) aes-192-cbc 157064.37k 431452.22k 764915.71k 948517.55k 1020783.27k 1026446.68k (Cortex-A55) aes-192-cbc 599479.94k 1143266.13k 1411767.89k 1470007.98k 1523758.42k 1527644.16k (Cortex-A76) aes-192-cbc 599362.62k 1139635.80k 1407392.09k 1465393.83k 1518720.34k 1522652.50k (Cortex-A76) aes-256-cbc 152304.29k 393035.69k 657636.10k 792066.39k 842295.98k 846255.45k (Cortex-A55) aes-256-cbc 600001.83k 1016406.98k 1223527.85k 1283264.85k 1307822.76k 1310501.55k (Cortex-A76) aes-256-cbc 597574.84k 1012813.76k 1219761.83k 1278820.69k 1303508.31k 1306198.02k (Cortex-A76) Full results uploaded to http://ix.io/44ua. |
При анализе полных результатов заметно, что ядра Cortex-A76 на данной плате работают на частоте лишь до 2304 МГц вместо заявленных 2.4 ГГц. Причины этого рассмотрены в посте о PTVM . Это указывает на возможные незначительные отклонения в скорости работы процессоров RK3588 из-за производственных допусков. Серийные платы, вероятно, будут поставляться с ОС, ограничивающей частоту процессора 2.2-2.3 ГГц по умолчанию. Температура CPU во время теста достигала 62.8 °C, что подтверждает эффективность связки радиатор/вентилятор в версии Developer Edition.
Rock 5B демонстрирует превосходство над другими SBC при сравнении с Raspberry Pi 4 , Khadas VIM4 и ODROID-N2+ , особенно в пропускной способности памяти. Четыре ядра Cortex-A76 и четыре Cortex-A55 в Rockchip RK3588 также обеспечивают высокую производительность в 7-zip. Результаты AES-256 показывают, что тип ядра (Cortex-A72 или Cortex-A76) не влияет на данную нагрузку – производительность масштабируется с частотой. Это справедливо для процессоров с расширением Armv8 Crypto, отсутствующим в Broadcom BCM2711 (Raspberry Pi).
Важное замечание: для завершения теста sbc-bench.sh потребовалось четыре запуска. Плата показала меньшую стабильность, чем у других тестеров, – происходили неожиданные перезагрузки. Сбои возникали как под нагрузкой, так и в режиме простоя. После тщательной проверки исключены причины: блок питания/USB-кабель, частота CPU, перегрев. Ошибки возникают спонтанно без вывода в serial console.
Предпринята попытка установки Phoronix:
1 2 3 |
sudo apt install php-cli php-gd php-xml php-zip wget https://phoronix-test-suite.com/releases/repo/pts.debian/files/phoronix-test-suite_10.8.4_all.deb dpkg -i phoronix-test-suite_10.8.4_all.deb |
и сравнения с платами UP 4000 (Intel N3350) и Raspberry Pi 4 .
1 |
sudo phoronix-test-suite benchmark 2207012-UPBO-201005966 |
Полный тест занял бы около двух часов, но плата не выдерживает такого времени без перезагрузки. Доступны лишь отдельные результаты:
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 |
SQLite 3.30.1: pts/sqlite-2.1.0 [Threads / Copies: 1] Test 1 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 2 Minutes Estimated Time To Completion: 1 Hour, 12 Minutes [10:32 UTC] Running Pre-Test Script @ 09:20:37 Started Run 1 @ 09:20:37 Running Interim Test Script @ 09:21:05 Started Run 2 @ 09:21:07 Running Interim Test Script @ 09:21:36 Started Run 3 @ 09:21:38 Running Post-Test Script @ 09:22:05 Threads / Copies: 1: 26.097 26.367 25.57 Average: 26.011 Seconds Deviation: 1.56% Seconds < Lower Is Better Jetson Nano 4GB ..... 103.21 |============================================== RPi4 4GB ............ 79.39 |=================================== UPboard 2GB ......... 64.54 |============================= Rock 5 Model B 16GB . 26.01 |============ UP 4000 2GB ......... 22.78 |========== |
Производительность SQLite сильно зависит от скорости накопителя, но Rock 5B приближается к результатам UP 4000.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
RAMspeed SMP 3.5.0: pts/ramspeed-1.4.3 [Type: Copy - Benchmark: Integer] Test 2 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 11 Minutes Estimated Time To Completion: 1 Hour, 11 Minutes [10:32 UTC] Started Run 1 @ 09:22:14 Started Run 2 @ 09:23:53 Started Run 3 @ 09:25:31 Type: Copy - Benchmark: Integer: 21521.29 21537.26 21418.27 Average: 21492.27 MB/s Deviation: 0.30% MB/s > Higher Is Better RPi4 4GB ............ 4394.59 |========= UPboard 2GB ......... 4493.08 |========= UP 4000 2GB ......... 7595.21 |================ Jetson Nano 4GB ..... 9078.36 |=================== Rock 5 Model B 16GB . 21492.27 |============================================ |
Тест RAMSpeed подтверждает высокую пропускную способность памяти, выявленную в sbc-bench.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
perf-bench: pts/perf-bench-1.0.2 [Benchmark: Sched Pipe] Test 3 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 3 Minutes Estimated Time To Completion: 1 Hour [10:27 UTC] Started Run 1 @ 09:27:17 Started Run 2 @ 09:28:33 Started Run 3 @ 09:29:49 Benchmark: Sched Pipe: 69891 68878 69117 Average: 69295 ops/sec Deviation: 0.76% ops/sec > Higher Is Better RPi4 4GB ............ 26108 |================= UPboard 2GB ......... 30201 |=================== Jetson Nano 4GB ..... 56811 |==================================== Rock 5 Model B 16GB . 69295 |============================================ UP 4000 2GB ......... 74060 |=============================================== |
Плата на Rockchip RK3588 близка к Intel Celeron N3350 (двухъядерный Apollo Lake) в perf-bench…
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 |
Go Benchmarks: pts/go-benchmark-1.1.4 [Test: build] Test 4 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 2 Minutes Estimated Time To Completion: 58 Minutes [10:28 UTC] Started Run 1 @ 09:31:12 Started Run 2 @ 09:32:03 Started Run 3 @ 09:32:51 Started Run 4 @ 09:33:39 * Started Run 5 @ 09:34:27 * Started Run 6 @ 09:35:14 * Started Run 7 @ 09:36:02 * Started Run 8 @ 09:36:50 * Started Run 9 @ 09:37:38 * Started Run 10 @ 09:38:26 * Test: build: 47112672907 43886576990 43751470061 43499157738 43674887716 43755782879 44108562449 43758243155 43733228264 43658320647 Average: 44093890281 Nanoseconds/Operation Deviation: 2.43% Samples: 10 Nanoseconds/Operation < Lower Is Better UPboard 2GB ......... 115898826367 |======================================== Jetson Nano 4GB ..... 75032734873 |========================== RPi4 4GB ............ 71596906538 |========================= UP 4000 2GB ......... 61460487908 |===================== Rock 5 Model B 16GB . 44093890281 |=============== |
…но значительно быстрее в тесте Go. Это последний завершенный тест.
Дополнительно проверено ограничение максимальной частоты ядер Cortex-A76 двумя методами: сначала до 2.21 ГГц:
1 2 3 4 |
sudo cpufreq-set -c 4 -u 2.21GHz sudo cpufreq-set -c 5 -u 2.21GHz sudo cpufreq-set -c 6 -u 2.21GHz sudo cpufreq-set -c 7 -u 2.21GHz |
затем до 2.02 ГГц с использованием регулятора userspace:
1 2 3 4 |
sudo cpufreq-set -c 4 -f 2.02GHz sudo cpufreq-set -c 5 -f 2.02GHz sudo cpufreq-set -c 6 -f 2.02GHz sudo cpufreq-set -c 7 -f 2.02GHz |
Проблема стабильности не решена, но обнаружен любопытный факт:
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 |
SQLite 3.30.1: pts/sqlite-2.1.0 [Threads / Copies: 1] Test 1 of 18 Estimated Trial Run Count: 3 Estimated Test Run-Time: 2 Minutes Estimated Time To Completion: 1 Hour, 9 Minutes [13:59 UTC] Running Pre-Test Script @ 12:50:15 Started Run 1 @ 12:50:15 Running Interim Test Script @ 12:50:37 Started Run 2 @ 12:50:39 Running Interim Test Script @ 12:51:02 Started Run 3 @ 12:51:04 Running Post-Test Script @ 12:51:27 Threads / Copies: 1: 20.276 20.942 21.303 Average: 20.840 Seconds Deviation: 2.50% Seconds < Lower Is Better Jetson Nano 4GB ....... 103.21 |============================================ RPi4 4GB .............. 79.39 |================================== UPboard 2GB ........... 64.54 |============================ Rock 5B 16GB 2.21 GHz . 29.77 |============= UP 4000 2GB ........... 22.78 |========== Rock 5B 16GB 2.02GHz .. 20.84 |========= |
На частоте 2.02 ГГц с регулятором userspace производительность Rock 5B выше, чем на 2.21 или 2.3 ГГц с регулятором ondemand.
Тестирование накопителей
Для проверки производительности 16 ГБ модуля eMMC установлен iozone3:
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 |
iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 1024000 kB Record Size 4 kB Record Size 16 kB Record Size 512 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 14921 17534 24739 24995 16692 11074 1024000 16 24050 34114 39251 36476 30879 29032 1024000 512 38959 38633 158941 152590 152197 37266 1024000 1024 39338 39944 170271 168652 169894 37979 1024000 16384 39434 40186 205950 203861 206698 40031 iozone test complete. |
Последовательная скорость чтения: 205 МБ/с, записи: 40 МБ/с. Показатели случайного чтения/записи выглядят приемлемыми.
Протестирован порт USB 3.0 Type-A (5 Гбит/с) с контейнером ORICO USB 3.2 Gen 1 , содержащим NVMe SSD Apacer (до 1800 МБ/с чтения, 1100 МБ/с записи):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 10240000 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 375484 382439 325848 329745 iozone test complete. |
Результаты: запись 375 МБ/с, чтение 320 МБ/с. Учитывая, что 375 МБ/с соответствуют 3 Гбит/с, возможна оптимизация для повышения скорости.
SSD M.2 перемещен из USB-контейнера непосредственно на плату Rock 5B с сохранением термопрокладки и “радиатора” от контейнера ORICO.
Плата перестала загружаться (отсутствие изображения и сетевой активности). Подключение отладочной платы USB-to-serial выявило ошибки eMMC:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ cat radxa-eemc-flash.txt [ 14.313676] mmc1: switch to bus width for hs400 failed, err:-84 [ 14.313696] mmc1: tried to HW reset card, got error -84 [ 14.313809] blk_update_request: I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 14.314014] vendor storage:20190527 ret = -1 [ 14.314292] sdhci-dwcmshc fe2e0000.mmc: error -84 requesting status [ 14.314303] mmcblk1: recovery failed! [ 14.314322] blk_update_request: I/O error, dev mmcblk1, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 14.314333] Buffer I/O error on dev mmcblk1, logical block 0, async page read [ 14.314742] sdhci-dwcmshc fe2e0000.mmc: error -84 requesting status [ 14.314749] mmcblk1: recovery failed! [ 14.314768] blk_update_request: I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 14.314775] Buffer I/O error on dev mmcblk1, logical block 0, async page read [ 14.314844] mmcblk1: unable to read partition table [ 14.317217] Waiting for root device PARTUUID=614E0000-0000-4B53-8000-1D28000054A9... [ 34.201408] vcc3v3_pcie30: disabling |
Из-за отсутствия адаптера USB eMMC подготовлена установка Debian 11 (1 мая 2022) на microSD. Позже обнаружено, что модуль eMMC отошел от разъема при установке SSD. Фиксация модуля устранила ошибку. Повторный запуск iozone3:
1 2 3 4 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 2299628 2249754 1976579 1977936 |
Потрясающе! 2.2 ГБ/с – выше теоретического предела SSD!!! Эти аномальные значения вызваны кэшированием. Повторный тест:
1 2 3 4 5 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 1063572 1050722 1622210 1635731 |
Скорость снизилась, но продолжим:
1 2 3 4 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 672053 664168 1424390 1429735 |
Финальный тест с файлом 100 ГБ (превышает объем ОЗУ):
1 2 3 4 |
rock@rock-5b:/media/rock/443c7b9a-38a0-46a2-a1d6-29a1066b50a9$ sudo iozone -e -I -a -s 100000M -r 16384k -i 0 -i 1 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400000 16384 666173 666870 1435104 1434803 |
Результаты аналогичны предыдущему тесту. Фактические показатели через NVMe/PCIe x4 Gen 3.0: ~1401 МБ/с последовательного чтения, 650 МБ/с записи.
Тестирование microSD невозможно – единственная доступная карта физически повреждена (I/O ошибки проявляются и на Raspberry Pi).
Видеовыход
Как показано в первой части обзора, HDMI-порт рядом с USB работает корректно, второй HDMI-порт – нет.
Попытка подключения док-станции MINIX USB Type-C для проверки DisplayPort alt mode не увенчалась успехом. В Debian 11 отображается только монитор, подключенный к первому HDMI-порту.
Сетевые возможности (WiFi и 2.5GbE)
Ключевое преимущество Rock 5B – сетевая функциональность: порт 2.5GbE и поддержка WiFi 6 M.2 карт.
Проверка порта 2.5GbE с iperf3.
- Загрузка на Rock 5B:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ iperf3 -t 60 -c 192.168.31.93 -i 10 Connecting to host 192.168.31.93, port 5201 [ 5] local 192.168.31.85 port 39384 connected to 192.168.31.93 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 2.73 GBytes 2.35 Gbits/sec 0 1.06 MBytes [ 5] 10.00-20.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.59 MBytes [ 5] 20.00-30.00 sec 2.74 GBytes 2.35 Gbits/sec 0 1.59 MBytes [ 5] 30.00-40.00 sec 2.73 GBytes 2.35 Gbits/sec 0 2.39 MBytes [ 5] 40.00-50.00 sec 2.74 GBytes 2.35 Gbits/sec 0 2.39 MBytes [ 5] 50.00-60.00 sec 2.74 GBytes 2.35 Gbits/sec 0 2.39 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec 0 sender [ 5] 0.00-60.05 sec 16.4 GBytes 2.35 Gbits/sec receiver iperf Done. |
- Отдача:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
iperf3 -t 60 -c 192.168.31.93 -i 10 -R Connecting to host 192.168.31.93, port 5201 Reverse mode, remote host 192.168.31.93 is sending [ 5] local 192.168.31.85 port 39388 connected to 192.168.31.93 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 10.00-20.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 20.00-30.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 30.00-40.00 sec 2.73 GBytes 2.35 Gbits/sec [ 5] 40.00-50.00 sec 2.74 GBytes 2.35 Gbits/sec [ 5] 50.00-60.00 sec 2.74 GBytes 2.35 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.05 sec 16.4 GBytes 2.35 Gbits/sec 81 sender [ 5] 0.00-60.00 sec 16.4 GBytes 2.35 Gbits/sec receiver |
В обоих направлениях достигнуто 2.35 Гбит/с – близко к максимуму. Тест в полно-дуплексном режиме:
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 |
$ iperf3 -t 60 -c 192.168.31.93 -i 10 --bidir Connecting to host 192.168.31.93, port 5201 [ 5] local 192.168.31.85 port 39392 connected to 192.168.31.93 port 5201 [ 7] local 192.168.31.85 port 39394 connected to 192.168.31.93 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.15 MBytes [ 7][RX-C] 0.00-10.00 sec 2.63 GBytes 2.26 Gbits/sec [ 5][TX-C] 10.00-20.00 sec 2.72 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 10.00-20.00 sec 2.41 GBytes 2.07 Gbits/sec [ 5][TX-C] 20.00-30.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 20.00-30.00 sec 2.45 GBytes 2.11 Gbits/sec [ 5][TX-C] 30.00-40.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 30.00-40.00 sec 2.50 GBytes 2.15 Gbits/sec [ 5][TX-C] 40.00-50.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 40.00-50.00 sec 2.48 GBytes 2.13 Gbits/sec [ 5][TX-C] 50.00-60.00 sec 2.73 GBytes 2.34 Gbits/sec 0 2.26 MBytes [ 7][RX-C] 50.00-60.00 sec 2.60 GBytes 2.23 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.00 sec 16.4 GBytes 2.34 Gbits/sec 0 sender [ 5][TX-C] 0.00-60.05 sec 16.4 GBytes 2.34 Gbits/sec receiver [ 7][RX-C] 0.00-60.00 sec 15.1 GBytes 2.16 Gbits/sec 145 sender [ 7][RX-C] 0.00-60.05 sec 15.1 GBytes 2.16 Gbits/sec receiver iperf Done. |
Результаты: 2.34 Гбит/с и 2.16 Гбит/с. Поддержка 2.5GbE реализована превосходно.
На плате установлен модуль WiFi 6 и Bluetooth 5.2 Fn-Link 6252M-PUB на базе Realtek RTL8852BE. Тест через WiFi 6:
- Загрузка на Rock 5B:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ iperf3 -t 60 -c 192.168.31.148 -i 10 Connecting to host 192.168.31.148, port 5201 [ 5] local 192.168.31.85 port 45848 connected to 192.168.31.148 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 769 MBytes 645 Mbits/sec 114 608 KBytes [ 5] 10.00-20.00 sec 280 MBytes 235 Mbits/sec 340 2.22 MBytes [ 5] 20.00-30.00 sec 295 MBytes 247 Mbits/sec 203 1.41 KBytes [ 5] 30.00-40.00 sec 674 MBytes 565 Mbits/sec 121 991 KBytes [ 5] 40.00-50.00 sec 489 MBytes 410 Mbits/sec 248 2.34 MBytes [ 5] 50.00-60.00 sec 496 MBytes 416 Mbits/sec 205 2.49 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 2.93 GBytes 420 Mbits/sec 1231 sender [ 5] 0.00-60.12 sec 2.93 GBytes 419 Mbits/sec receiver iperf Done. |
- Отдача:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ iperf3 -t 60 -c 192.168.31.148 -i 10 -R Connecting to host 192.168.31.148, port 5201 Reverse mode, remote host 192.168.31.148 is sending [ 5] local 192.168.31.85 port 45852 connected to 192.168.31.148 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 709 MBytes 594 Mbits/sec [ 5] 10.00-20.00 sec 1.01 GBytes 870 Mbits/sec [ 5] 20.00-30.00 sec 1.01 GBytes 871 Mbits/sec [ 5] 30.00-40.00 sec 1.02 GBytes 873 Mbits/sec [ 5] 40.00-50.00 sec 1.00 GBytes 863 Mbits/sec [ 5] 50.00-60.00 sec 1.00 GBytes 859 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.06 sec 5.74 GBytes 821 Mbits/sec 21 sender [ 5] 0.00-60.00 sec 5.74 GBytes 822 Mbits/sec receiver iperf Done. |
Скорость близка к Gigabit Ethernet (~870 Мбит/с), но в тесте загрузки наблюдаются колебания и повторы… Роутер Xiaomi Mi AX6000 расположен в метре от платы. На другой стороне – ноутбук Ubuntu 20.04 с адаптером Realtek RTL8156BG (2.5GbE/USB 3.0).
Bluetooth
Модуль поддерживает Bluetooth, но функциональность отключена по умолчанию. Тестирование со смартфоном не проведено.
USB на ROCK 5B
Дополнительные тесты USB (помимо разделов “Накопители” и “Видео”) с подключенной клавиатурой, мышью и док-станцией MINIX USB-C:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ lsusb -t /: Bus 10.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 09.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M |__ Port 5: Dev 4, If 0, Class=, Driver=, 480M /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 1: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 2: Dev 6, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |
Обнаружены устройства USB 2.0 (480 Мбит/с) и USB 3.0 (5000 Мбит/с), а также низкоскоростные HID-устройства (мышь/клавиатура).
При подключении док-станции MINIX USB-C возникают ошибки:
1 2 3 4 5 6 7 8 9 10 |
[ 179.375225] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 180.488474] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 182.258877] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 183.198591] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 184.308701] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 185.418519] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 186.698916] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 187.638708] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 188.785447] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 204.445990] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? |
и система не загружается (мигающий курсор в левом углу экрана). После отключения док-станции загрузка восстанавливается, а шины 09 и 10 исчезают:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ lsusb -t /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |
Использован блок питания Khadas VIM4 (5V/3A). После перехода на адаптер GaN USB-C 100W (на случай превышения потребления 480 ГБ SSD) плата загружается, но с ошибками:
1 2 3 4 |
[ 27.216985] usb 10-1: device not accepting address 6, error -71 [ 28.187045] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 29.827028] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? [ 30.770419] usb usb10-port1: Cannot enable. Maybe the USB cable is bad? |
Ошибки не проявляются постоянно. Потребление в простое: 10.1 Вт (с внутренним NVMe SSD 256 ГБ и док-станцией с SSD 480 ГБ). Проблемы сохраняются – SSD на 480 ГБ не определяется:
1 2 3 4 5 6 7 8 9 |
rock@rock-5b:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk1 179:0 0 14.5G 0 disk |-mmcblk1p1 179:1 0 512M 0 part `-mmcblk1p2 179:2 0 13.9G 0 part / mmcblk1boot0 179:32 0 4M 1 disk mmcblk1boot1 179:64 0 4M 1 disk nvme0n1 259:0 0 238.5G 0 disk `-nvme0n1p1 259:1 0 238.5G 0 part |
Порты USB 2.0/3.0 Type-A работают нормально, но USB-C порт имеет неполадки.
Тестирование GPIO
Rockchip RK3588 должен иметь пять банков GPIO (GPIO0-GPIO4), но в Debian отображается шесть:
1 2 3 4 5 6 7 |
$ ls -l /dev/gpiochip? crw------- 1 root root 254, 0 Jul 20 07:50 /dev/gpiochip0 crw------- 1 root root 254, 1 Jul 20 07:50 /dev/gpiochip1 crw------- 1 root root 254, 2 Jul 20 07:50 /dev/gpiochip2 crw------- 1 root root 254, 3 Jul 20 07:50 /dev/gpiochip3 crw------- 1 root root 254, 4 Jul 20 07:50 /dev/gpiochip4 crw------- 1 root root 254, 5 Jul 20 07:50 /dev/gpiochip5 |
Radxa предоставляет распиновку и методику расчета номеров выводов в Wiki .
Проверка управления GPIO4_C6 (пин 27 на 40-пиновом разъеме):
1 2 3 4 5 6 |
cd /sys/class/gpio sudo sh -c 'echo 150 > export' cd gpio150 sudo sh -c 'echo out > direction' sudo sh -c 'echo 1 > value' sudo sh -c 'echo 0 > value' |
Заявлена поддержка библиотеки libmraa, но документация пока отсутствует.
3D-ускорение GPU не активировано в Debian 11
Анализ полного вывода glxinfo показывает ключевой момент:
1 2 3 4 5 6 7 8 9 10 11 12 |
Extended renderer info (GLX_MESA_query_renderer): Vendor: Mesa/X.org (0xffffffff) Device: llvmpipe (LLVM 11.0.1, 128 bits) (0xffffffff) Version: 20.3.5 Accelerated: no Video memory: 15723MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 4.5 Max compat profile version: 3.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.2 |
llvmpipe указывает на программный рендеринг. В ядерном выводе присутствуют упоминания “mali”:
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 |
$ dmesg | grep -i mali [ 3.712680] mali fb000000.gpu: Kernel DDK version g11p0-01eac0 [ 3.712725] mali fb000000.gpu: Looking up mali-supply from device tree [ 3.712939] mali fb000000.gpu: Looking up mem-supply from device tree [ 3.713097] mali fb000000.gpu: Looking up mali-supply from device tree [ 3.713138] mali fb000000.gpu: Looking up mem-supply from device tree [ 3.713584] mali fb000000.gpu: leakage=22 [ 3.713635] mali fb000000.gpu: Looking up mali-supply from device tree [ 3.715452] mali fb000000.gpu: pvtm=874 [ 3.715991] mali fb000000.gpu: pvtm-volt-sel=3 [ 3.717178] mali fb000000.gpu: avs=0 [ 3.719315] W : [File] : drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c; [Line] : 136; [Func] : kbase_platform_rk_init(); power-off-delay-ms not available. [ 3.720480] mali fb000000.gpu: r0p0 status 5 is unknown; treating as r0p0 status 0 [ 3.720508] mali fb000000.gpu: GPU identified as 0x7 arch 10.8.6 r0p0 status 0 [ 3.720625] mali fb000000.gpu: No priority control manager is configured [ 3.720641] mali fb000000.gpu: No memory group manager is configured [ 3.720679] mali fb000000.gpu: Protected memory allocator not available [ 3.721767] mali fb000000.gpu: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=800000000 h_table=0 [ 3.723453] mali fb000000.gpu: Probed as mali0 [ 3.902449] I : [File] : drivers/gpu/arm/mali400/mali/linux/mali_kernel_linux.c; [Line] : 405; [Func] : mali_module_init(); svn_rev_string_from_arm of this mali_ko is '', rk_ko_ver is '5', built at '11:53:13', on 'Jun 24 2022'. [ 3.902916] Mali: [ 3.902920] Mali device driver loaded [ 29.166873] mali fb000000.gpu: Loading Mali firmware 0x1010000 [ 29.167347] mali fb000000.gpu: Protected memory allocator not found, Firmware protected mode entry will not be supported [ 29.167364] mali fb000000.gpu: Protected memory allocator not found, Firmware protected mode entry will not be supported [ 29.167371] mali fb000000.gpu: Protected memory allocator not found, Firmware protected mode entry will not be supported |
На текущий момент функциональность недоступна.
VPU (видеопроцессор)
Инструменты для аппаратного декодирования видео в Linux не обнаружены. Заметка: воспроизведение 4K отлично работает в Android 12 (кроме AV1). Процессор достаточно мощен для программного декодирования 1080p.
NPU / AI-ускоритель
Обнаружен 6 TOPS NPU, но с многочисленными ошибками:
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 |
[ 3.595733] vdd_npu_s0: supplied by vcc5v0_sys [ 3.599908] vdd_npu_s0: 550 <--> 950 mV at 812 mV, enabled [ 3.860468] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu-supply from device tree [ 3.860490] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu-supply property in node /power-management@fd8d8000/power-controller failed [ 3.862271] input: rk-headset as /devices/platform/rk-headset/input/input3 [ 3.863613] RKNPU fdab0000.npu: Adding to iommu group 0 [ 3.863879] RKNPU fdab0000.npu: RKNPU: rknpu iommu is enabled, using iommu mode [ 3.864012] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree [ 3.864696] RKNPU fdab0000.npu: Looking up mem-supply from device tree [ 3.865292] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdab0000-0xfdabffff] [ 3.865332] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdac0000-0xfdacffff] [ 3.865354] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdad0000-0xfdadffff] [ 3.866093] [drm] Initialized rknpu 0.7.2 20220428 for fdab0000.npu on minor 1 [ 3.866604] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up nputop-supply from device tree [ 3.866643] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up nputop-supply property in node /power-management@fd8d8000/power-controller failed [ 3.866731] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu1-supply from device tree [ 3.866766] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu1-supply property in node /power-management@fd8d8000/power-controller failed [ 3.866837] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu2-supply from device tree [ 3.866872] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu2-supply property in node /power-management@fd8d8000/power-controller failed [ 3.867039] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree [ 3.867098] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST [ 3.867104] vdd_npu_s0: Failed to create debugfs directory [ 3.867637] RKNPU fdab0000.npu: Looking up mem-supply from device tree [ 3.867671] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST [ 3.867675] vdd_npu_s0: Failed to create debugfs directory [ 3.868619] RKNPU fdab0000.npu: leakage=12 [ 3.868659] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree [ 3.868688] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST [ 3.868693] vdd_npu_s0: Failed to create debugfs directory [ 3.875746] RKNPU fdab0000.npu: pvtm=875 [ 3.880646] RKNPU fdab0000.npu: pvtm-volt-sel=3 [ 3.881693] RKNPU fdab0000.npu: avs=0 [ 3.881897] RKNPU fdab0000.npu: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=800000000 h_table=0 [ 3.891146] RKNPU fdab0000.npu: failed to find power_model node [ 3.891181] RKNPU fdab0000.npu: RKNPU: failed to initialize power model [ 3.891193] RKNPU fdab0000.npu: RKNPU: failed to get dynamic-coefficient |
Документация по NPU ограничена, ошибки указывают на проблемы. Тестирование отложено. SDK для RK3588/RK3566/68 отличается от RK1808 или RK3399Pro и доступен в репозитории RKNPU2 .
HDMI-вход на Rock 5B
Из-за отсутствия micro HDMI кабеля детальное тестирование невозможно. Согласно Firefly wiki , HDMI-вход работает в Linux и определяется на Rock 5B:
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 |
rock@rock-5b:/usr/local$ v4l2-ctl -d /dev/video0 -V -D Driver Info: Driver name : rk_hdmirx Card type : rk_hdmirx Bus info : fdee0000.hdmirx-controller Driver version : 5.10.66 Capabilities : 0x84201000 Video Capture Multiplanar Streaming Extended Pix Format Device Capabilities Device Caps : 0x04201000 Video Capture Multiplanar Streaming Extended Pix Format Format Video Capture Multiplanar: Width/Height : 640/480 Pixel Format : 'RGB3' (24-bit RGB 8-8-8) Field : None Number of planes : 1 Flags : premultiplied-alpha, 0x000000fe Colorspace : Unknown (0x08393800) Transfer Function : Default YCbCr/HSV Encoding: Unknown (0x000000ff) Quantization : Default Plane 0 : Bytes per Line : 1920 Size Image : 921600 |
Аудио HDMI-входа также определяется:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ sudo cat /proc/asound/card* cat: /proc/asound/card0: Is a directory cat: /proc/asound/card1: Is a directory cat: /proc/asound/card2: Is a directory cat: /proc/asound/card3: Is a directory 0 [rockchiphdmi0 ]: rockchip-hdmi0 - rockchip-hdmi0 rockchip-hdmi0 1 [rockchiphdmi1 ]: rockchip-hdmi1 - rockchip-hdmi1 rockchip-hdmi1 2 [rockchipes8316 ]: rockchip-es8316 - rockchip-es8316 rockchip-es8316 3 [rockchiphdmiin ]: rockchip_hdmiin - rockchip,hdmiin rockchip,hdmiin |
Функциональность выглядит перспективной. Наличие полноразмерного HDMI-порта было бы предпочтительнее, но это ограничено габаритами платы.
Потребление энергии
Референсные показатели потребления:
- Выключено с вентилятором – 1.5 Вт
- Выключено без вентилятора – 0.6 Вт
- Простой с вентилятором – 5 Вт
- Простой без вентилятора – 4.2 Вт
- Нагрузка на 8 ядер с вентилятором и NVMe SSD – 11.3 Вт
Версия Developer Edition использует простой вентилятор (~1 Вт потребления). Бесшумные решения возможны, как демонстрирует мини-ПК Mekotronics R58 .
Итоги
Сводка работоспособности компонентов в Debian 11 (предустановленная версия), включая непроверенные функции.
Feature | Remark |
---|---|
Storage | NVME OK with good performance eMMC flash OK microSD card (no working microSD, not tested) |
Video Output | HDMI (Next to USB ports) – OK Other HDMI ports and USB-C Displayport Alt mode – Failed |
HDMI input | Detected (video and audio) but not tested due to lack of cable |
Networking | 2.5GbE OK with great performance WiFi 6 OK with up to 870 Mbps, but highly varying throughput |
Bluetooth | Not working/not enabled |
USB | USB 2.0 and USB 3.0 Type-A ports – OK USB Type-C port had issues with a MINIX USB-C dock |
GPIO | OK, tested with sysfs |
GPU | Software rendering only |
VPU (Video Processing Unit) | Not tested, as unsure which tools to use for hardware video playback |
NPU | Shows up in kernel, but with plenty of errors |
MIPI CSI | Not tested, no hardware |
Плата отлично подходит для задач с высокой сетевой и дисковой нагрузкой, но требует доработки многих компонентов и документации. Развитие функциональности будет отслеживаться, включая исследование причин спонтанных перезагрузок.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.