Rock 5B RK3588 SBC preview – Что работает, а что нет в Debian 11

Недавно получен ранний образец Radxa ROCK5 Model B (также известный как ROCK 5B) SBC из партии «Developer Edition» с 16 ГБ ОЗУ. Ранее уже были продемонстрированы аппаратные характеристики и успешная загрузка в Debian 11.

После дополнительного тестирования платы в рамках «debug party» проверены производительность и функциональность в Debian 11. Как и ожидалось, некоторые компоненты работают удовлетворительно, другие требуют доработки.

Тесты производительности Rock 5B

Для оценки производительности и стабильности запущен скрипт SBC Bench:

$ 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.

Raspberry Pi 4 vs Rock 5B vs Khadas VIM4 vs ODROID-N2+

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:

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 .

sudo phoronix-test-suite benchmark 2207012-UPBO-201005966

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

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.

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.

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…

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 ГГц:

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:

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

Проблема стабильности не решена, но обнаружен любопытный факт:

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:

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 МБ/с записи):

$ 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.

ROCK 5B NVMe SSD

Плата перестала загружаться (отсутствие изображения и сетевой активности). Подключение отладочной платы USB-to-serial выявило ошибки eMMC:

$ 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:

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!!! Эти аномальные значения вызваны кэшированием. Повторный тест:

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

Скорость снизилась, но продолжим:

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 ГБ (превышает объем ОЗУ):

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 МБ/с записи.

Rock 5B review Debian 11

Тестирование microSD невозможно — единственная доступная карта физически повреждена (I/O ошибки проявляются и на Raspberry Pi).

Видеовыход

Как показано в первой части обзора, HDMI-порт рядом с USB работает корректно, второй HDMI-порт — нет.

ROCK 5B Debian 11

Попытка подключения док-станции 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:
$ 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.

  • Отдача:
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 Гбит/с — близко к максимуму. Тест в полно-дуплексном режиме:

$ 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:
$ 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.

  • Отдача:
$ 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, но функциональность отключена по умолчанию. Тестирование со смартфоном не проведено.

No Bluetooth found

USB на ROCK 5B

Дополнительные тесты USB (помимо разделов «Накопители» и «Видео») с подключенной клавиатурой, мышью и док-станцией MINIX USB-C:

$ 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 возникают ошибки:

[  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 исчезают:

$ 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) плата загружается, но с ошибками:

[   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 ГБ не определяется:

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 отображается шесть:

$ 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-пиновом разъеме):

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 показывает ключевой момент:

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»:

$ 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, но с многочисленными ошибками:

[    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:

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-входа также определяется:

$ 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.

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

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

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

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