Обзор одноплатного компьютера VisionFive 2 Lite – Ubuntu 24.04 на недорогой RISC-V SBC в 2026 году

Компания StarFive предоставила образец одноплатного компьютера RISC-V VisionFive 2 Lite для обзора. Это недорогая плата размером с банковскую карту на основе однокристальной системы StarFive JH711S с четырьмя ядрами RISC-V, разработанная для недорогого знакомства с Linux на RISC-V.

Когда впервые тестировался более ранний VisionFive 2 на SoC StarFive JH7110 в феврале 2023 года, это не называлось обзором, а скорее практическим опытом, поскольку на тот момент многие функции всё ещё работали некорректно. С тех пор прошло почти три года, поэтому обзор VisionFive 2 Lite с Ubuntu 24.04 позволит оценить прогресс на стороне программного обеспечения. Если время ограничено, можно перейти к разделу «Что работает, что нет» .

VisionFive 2 Lite RISC-V SBC Ubuntu Review 2026

Распаковка VisionFive 2 Lite

Плата была получена в пластиковом боксе с крышкой, на которой написано «VisionFive 2 Lite Your Gateway to RISC-V» («VisionFive 2 Lite — ваш вход в мир RISC-V»).

VisionFive 2 Lite package

На нижней стороне содержится важная информация со ссылками на документацию , аккаунт на GitHub и сайт RVspace для получения более подробной информации и доступа к форуму поддержки.

VisionFive 2 Lite documentation GitHub

В пластиковом кейсе, в котором поставляется VisionFive 2 Lite, находится только сама плата и антенна типа IPEX.

StarFive VisionFive 2 Lite unboxing

На верхней стороне платы расположены: SoC StarFive JH7110S, чип памяти BIWIN BWMZAX32H2A-32Gb-X объёмом 4 ГБ, модуль двухдиапазонного WiFi 6 и Bluetooth 5.2 LB-LINK BL-M8800DS2-40 (на базе AIC8800 ), разъёмы MIPI DSI и CSI, заголовок для PoE и 40-контактный GPIO-заголовок, совместимый с Raspberry Pi.

StarFive JH7110S SBC

На нижней стороне находятся: слот M.2 PCIe Gen2 x1 для накопителя или расширения под ИИ, слот для карты microSD для загрузки ОС и PMIC AXP15060.

VisionFive 2 Lite M2 socket microSD card slot

Порты хорошо видны под углом. Слева направо: порт USB-C для питания, порт HDMI, порт Gigabit Ethernet, кнопка Reset и четыре USB-порта (3x USB 2.0, 1x USB 3.0).
VisionFive 2 Lite angle view

Установка антенны оказалась сложнее, чем ожидалось, но в итоге удалось. Пришлось использовать кончик карандаша, а не его ластик, чтобы вставить антенну в разъём IPEX на плате.

VisionFive 2 Lite antenna installation

Установка Ubuntu 24.04 на VisionFive 2 Lite

Для начала потребуются некоторые аксессуары: карта microSD, блок питания, беспроводной комплект клавиатуры/мыши, монитор с HDMI и, опционально, но рекомендуется, Ethernet-кабель.

Последнюю версию Ubuntu 24.04 для плат VisionFive 2 можно найти на GitHub . Была загружена ubuntu-24.04.3-preinstalled-desktop-riscv64+vf2-lite.img.bz2, выпущенная 16 октября 2025 года (последняя на момент обзора), и этот bz2-файл был записан с помощью последней версии программы USBImager на карту microSD Raspberry Pi Class A2 объёмом 64 ГБ, подключенную к ноутбуку с Ubuntu.

После этого карту microSD можно вставить в плату, подключить все периферийные устройства и включить её. Через некоторое время удалось войти в систему, используя имя пользователя по умолчанию (user) и пароль (starfive). Это огромный прогресс по сравнению с ситуацией примерно трёхлетней давности, когда даже не было видеовыхода, хотя и с другим дисплеем…

VisionFive 2 Lite First Boot to Ubuntu 24.04.3

При желании можно ознакомиться с полным журналом загрузки ядра для первой загрузки. Процесс занял около минуты, а если точнее, около 50 секунд до поднятия Ethernet-соединения, согласно журналу ядра.

Не следует запускать apt dist-upgrade для обновления

На этом этапе показалось хорошей идеей обновить все пакеты, так как образ был выпущен в октябре:

sudo apt update 
sudo apt dist-upgrade

Это обновило 207 пакетов. Всё по-прежнему работало нормально, можно было запускать несколько тестов. Так было до перезагрузки. Система стала едва отзывчивой, и была замечена 100% загрузка одного ядра процессом gnome-shell .

До перезагрузки можно было запустить glmark2-es2-wayland с драйверами GPU Imagination:

user@starfive:~$ glmark2-es2-wayland 
=======================================================
    glmark2 2021.12
=======================================================
    OpenGL Information
    GL_VENDOR:      Imagination Technologies
    GL_RENDERER:    PowerVR B-Series BXE-4-32
    GL_VERSION:     OpenGL ES 3.2 build 1.19@6345021
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=8
    Surface Size:   800x600 windowed
=======================================================

Но после перезагрузки работала только программная отрисовка:

user@starfive:~$ glmark2-es2-wayland 
libEGL warning: egl: failed to create dri2 screen
warning: queue 0x2ac6578e30 destroyed while proxies still attached:
  wl_display@1 still attached
=======================================================
    glmark2 2021.12
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa/X.org
    GL_RENDERER:    softpipe
    GL_VERSION:     OpenGL ES 3.1 Mesa 22.3.6 (git-63aa0a4aa3)
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0
    Surface Size:   800x600 windowed
=======================================================

Было замечено несколько ошибок в журнале ядра о неудачной загрузке прошивки GPU:

user@starfive:~$ dmesg | grep -i DRM
[    4.787094] [drm:pvr_drm_load] *ERROR* device 0000000062e502f8 initialisation failed (err=-19)
[    6.724804] starfive_jadard 2-0019: [drm:panel_probe] *ERROR* failed to get our reset GPIO
[    7.114372] innohdmi-starfive 29590000.hdmi: [drm:inno_hdmi_bind] registered Inno HDMI I2C bus driver success
[    7.167162] [drm] Initialized starfive 1.0.0 for display-subsystem on minor 0
[    7.344693] starfive display-subsystem: [drm] fb0: starfivedrmfb frame buffer device
[   15.381463] systemd[1]: Starting modprobe@drm.service - Load Kernel Module drm...
user@starfive:~$ dmesg | grep -i gpu
[    4.712229] pvrsrvkm 18000000.gpu: Direct firmware load for rgx.fw.36.50.54.182 failed with error -2
[    4.722474] pvrsrvkm 18000000.gpu: Direct firmware load for rgx.fw.36.50p.54.182 failed with error -2
[    4.732765] pvrsrvkm 18000000.gpu: Direct firmware load for rgx.fw failed with error -2
user@starfive:~$ dmesg | grep -i pvr
[    4.687871] PVR_K:  1: Read BVNC 36.50.54.182 from HW device registers
[    4.695182] PVR_K:  1: RGX Device registered BVNC 36.50.54.182 with 1 core in the system
[    4.712229] pvrsrvkm 18000000.gpu: Direct firmware load for rgx.fw.36.50.54.182 failed with error -2
[    4.722474] pvrsrvkm 18000000.gpu: Direct firmware load for rgx.fw.36.50p.54.182 failed with error -2
[    4.732765] pvrsrvkm 18000000.gpu: Direct firmware load for rgx.fw failed with error -2
[    4.741652] PVR_K:(Fatal):     1: All RGX Firmware image loads failed for 'rgx.fw.36.50.54.182' (PVRSRV_ERROR_NOT_FOUND) [1729]
[    4.754348] PVR_K:(Error):     1: RGXInit: InitFirmware failed (278) [1542]
[    4.762025] PVR_K:(Error):     1: RGXInit() failed (PVRSRV_ERROR_NOT_FOUND) in PVRSRVCommonDeviceInitialise() [2177]
[    4.773648] PVR_K:(Error):     1: PVRSRVDeviceFinalise() failed (PVRSRV_ERROR_NOT_INITIALISED) in PVRSRVCommonDeviceInitialise() [2191]
[    4.787094] [drm:pvr_drm_load] *ERROR* device 0000000062e502f8 initialisation failed (err=-19)

Предпринята попытка откатить изменения, но затем было замечено, что apt не удаётся обновить загрузочный раздел из-за нехватки места:

W: mkconf: MD subsystem is not loaded, thus I cannot scan for arrays.
W: mdadm: failed to auto-generate temporary mdadm.conf file.
zstd: error 70 : Write error : cannot write block : No space left on device 
E: mkinitramfs failure cpio 141
E: mkinitramfs failure zstd -q -1 -T0 70
update-initramfs: failed for /boot/initrd.img-6.12.5-starfive with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)

Поэтому попытки были оставлены, и образ был записан заново. Установка программ с помощью apt по-прежнему была безопасной, но было решено избегать системных обновлений до тех пор, пока поддержка PowerVR не будет включена в основную ветку (работа ведётся).

До тех пор, пока не был получен ответ от StarFive, в котором объяснялась возможность обновлений с помощью следующих команд:

sudo apt update -y
sudo apt upgrade -y --allow-downgrades
sudo dpkg-reconfigure linux-image-6.12.5-starfive

Впоследствии эта команда была опробована, и на этот раз она не нарушила работу системы.

Системная информация Ubuntu 24.04

Проверим системную информацию. Название процессора пустое, а ёмкость диска помечена как неизвестная, но по крайней мере отображается 3,8 ГиБ памяти.

StarFive VisionFive 2 Lite About Ubuntu 24.04

Перейдя в раздел «Сведения о системе», также можно увидеть GPU PowerVR B-Series BXE-4-32, а также информацию о том, что на плате запущена Ubuntu 24.04.3 LTS 64-bit с Wayland и относительно свежим ядром Linux 6.12 (с патчами от StarFive).

StarFive Linux 6.12 Ubuntu 24.04 PowerVR BXE-4-32 GPU

Запустим inxi для получения дополнительных деталей:

user@starfive:~$ sudo inxi -Fc0
System:
  Host: starfive Kernel: 6.12.5-starfive arch: riscv64 bits: 64
  Console: pty pts/2 Distro: Ubuntu 24.04.3 LTS (Noble Numbat)
Machine:
  Type: RISCV System: StarFive VisionFive 2 Lite details: N/A
    serial: VF7110SL-2539-D004E000-39000235
CPU:
  Info: quad core model: N/A variant-1: u74-mc variant-2: s7 bits: 64 type: MCP cache: L2: 2 MiB
  Speed (MHz): avg: 1250 min/max: 312/1250 cores: 1: 1250 2: 1250 3: 1250 4: 1250
Graphics:
  Device-1: img-gpu driver: pvrsrvkm v: kernel
  Device-2: jh7110-hdmi driver: innohdmi_starfive v: N/A
  Device-3: jh7110-display driver: starfive v: N/A
  Display: server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.6 driver: N/A tty: 211x50
    resolution: 1920x1080
  API: EGL v: 1.4,1.5 drivers: pvr,swrast platforms: gbm,surfaceless,device
  API: OpenGL v: 3.3 note: console (EGL sourced) renderer: softpipe
Audio:
  Device-1: jh7110-hdmi driver: innohdmi_starfive
  Device-2: simple-audio-card driver: asoc_simple_card
  Device-3: jh7110-pwmdac driver: N/A
  API: ALSA v: k6.12.5-starfive status: kernel-api
Network:
  Device-1: jh7110-dwmac driver: starfive_dwmac
  IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 6c:cf:39:00:88:94
  Device-2: dwmac-5.20 driver: N/A
  IF: eth0 state: up speed: 1000 Mbps duplex: full mac: 6c:cf:39:00:88:94
  IF-ID-1: docker0 state: down mac: 02:42:07:3e:32:e9
  IF-ID-2: dummy0 state: down mac: de:bf:e4:76:16:1b
  IF-ID-3: ip_vti0 state: down mac: 00:00:00:00
  IF-ID-4: sit0 state: down mac: 00:00:00:00
  IF-ID-5: wlan0 state: dormant mac: a8:b5:8e:77:da:d7
Bluetooth:
  Device-1: jh7110-uart driver: dw_apb_uart
  Report: hciconfig ID: hci0 state: up address: A8:B5:8E:77:DA:D8 bt-v: 5.4
Drives:
  Local Storage: total: 58.94 GiB used: 4.78 GiB (8.1%)
  ID-1: /dev/mmcblk0 model: USD00 size: 58.94 GiB type: Removable
Partition:
  ID-1: / size: 52.01 GiB used: 4.74 GiB (9.1%) fs: ext4 dev: /dev/mmcblk0p4
  ID-2: /boot size: 98.4 MiB used: 40.8 MiB (41.5%) fs: vfat dev: /dev/mmcblk0p3
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 67.5 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 4 GiB available: 3.77 GiB used: 1.7 GiB (44.9%)
  Processes: 253 Uptime: 2h 51m Init: systemd target: graphical (5) Shell: Sudo inxi: 3.3.34

Процессор содержит четыре ядра SiFive U74-MC с тактовой частотой до 1,25 ГГц, драйверы дисплея и звука, Gigabit Ethernet (непонятно, почему два), WiFi и Bluetooth, а также накопитель на 58,94 ГБ и 4 ГиБ памяти. Температура ЦП составляет 67,5°C. Следует отметить, что решение для охлаждения, такое как радиатор или вентилятор, не использовалось, так как в нём нет реальной необходимости.

Тесты производительности VisionFive 2 Lite

В 2023 году sbc-bench.sh не запускался должным образом на VisionFive 2 из-за отсутствующих пакетов и других проблем. Попробуем его на VisionFive 2 Lite:

user@starfive:~$ sudo ./sbc-bench.sh -r
Starting to examine hardware/software for review purposes...

Average load and/or CPU utilization too high (too much background activity). Waiting...

Too busy for benchmarking: 08:11:32 up 43 min,  3 users,  load average: 0.40, 1.31, 1.40,  cpu: 0%
Too busy for benchmarking: 08:11:37 up 43 min,  3 users,  load average: 0.37, 1.29, 1.39,  cpu: 1%

sbc-bench v0.9.72

Installing needed tools: distro packages already installed, tinymembench, ramlat, mhz, cpufetch (can't build cpuminer) Done.
Checking cpufreq OPP. Done.
Executing tinymembench. Done.
Executing RAM latency tester. Done.
Executing OpenSSL benchmark. Done.
Executing 7-zip benchmark. Done.
Throttling test: heating up the device, 5 more minutes to wait. Done.
Checking cpufreq OPP again. Done (17 minutes elapsed).

Results validation:

  * Measured clockspeed not lower than advertised max CPU clockspeed
  * Background activity (%system) OK
  * Too much other background activity: 1% avg, 10% max -> https://tinyurl.com/mr2wy5uv
  * No throttling

# StarFive VisionFive 2 Lite

Tested with sbc-bench v0.9.72 on Sat, 20 Dec 2025 08:30:50 +0000.

### General information:

    Information courtesy of cpufetch:
    
    SoC:                 StarFive VisionFive 2
    Technology:          28nm
    Microarchitecture:   U74
    Cores:               4 cores
    Max Frequency:       1.250 GHz
    Extensions:          rv64imafdc_zicntr_zicsr_zifencei_zihpm_zca_zcd_zba_zbb
     - (I) Integer Instruction Set
     - (M) Integer Multiplication and Division
     - (A) Atomic Instructions
     - (F) Single-Precision Floating-Point
     - (D) Double-Precision Floating-Point
     - (C) Compressed Instructions
     - (Zbb) Basic bit-manipulation
     - (Zba) Address Generation
     - (Zicntr) Base Counters and Timers
     - (Zicsr) Control and Status Register
     - (Zifencei) Instruction-Fetch Fence
     - (Zihpm) Hardware Performance Counters
     - (Zca) Compressed Integer Instructions
     - (Zcd) Compressed Double-Precision FP Instructions
    
    StarFive JH7110, Kernel: riscv64, Userland: riscv64
    
    CPU sysfs topology (clusters, cpufreq members, clockspeeds)
                     cpufreq   min    max
     CPU    cluster  policy   speed  speed   core type
      0        0        0      312    1250   sifive,u74-mc
      1        0        0      312    1250   sifive,u74-mc
      2        0        0      312    1250   sifive,u74-mc
      3        0        0      312    1250   sifive,u74-mc

3864 KB available RAM

### Governors/policies (performance vs. idle consumption):

Original governor settings:

    cpufreq-policy0: performance / 1250 MHz (conservative ondemand userspace powersave performance schedutil / 312 417 625 1250)

Tuned governor settings:

    cpufreq-policy0: performance / 1250 MHz

### Clockspeeds (idle vs. heated up):

Before at 66.8°C:

    cpu0 (sifive,u74-mc): OPP: 1250, Measured: 1247 

After at 78.3°C:

    cpu0 (sifive,u74-mc): OPP: 1250, Measured: 1247 

### Performance baseline

  * memcpy: 773.7 MB/s, memchr: 1157.8 MB/s, memset: 852.4 MB/s
  * 16M latency: 181.1 304.3 178.8 306.9 179.1 299.6 547.0 1042 
  * 128M latency: 187.3 310.5 187.1 310.9 189.5 309.2 568.5 1054 
  * 7-zip MIPS (3 consecutive runs): 3296, 3294, 3284 (3290 avg), single-threaded: 946
  * `aes-256-cbc      15346.42k    18519.72k    19547.99k    19839.66k    19917.48k    19928.41k`
  * `aes-256-cbc      15424.21k    18579.35k    19606.19k    19881.98k    19969.37k    19961.17k`

### Storage devices:

  * 58.9GB "Longsys USD00" HS SDXC card as /dev/mmcblk0: date 08/2024, manfid/oemid: 0x0000ad/0x4c53, hw/fw rev: 0x2/0x1
  * Gigadevice GD25LQ128D SPI NOR flash (3 partitions: spl: 960KB, uboot-env: 64KB, uboot: 15360KB), drivers in use: spi-nor/cadence-qspi/simple-pm-bus

### Software versions:

  * Ubuntu 24.04.3 LTS (noble)
  * Compiler: /usr/bin/gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 / riscv64-linux-gnu
  * OpenSSL 3.0.13, built on 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)    

### Kernel info:

  * `/proc/cmdline: root=/dev/mmcblk0p4 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0`
  * Kernel 6.12.5-starfive / CONFIG_HZ=100

All known settings adjusted for performance. Device now ready for benchmarking.
Once finished stop with [ctrl]-[c] to get info about throttling, frequency cap
and too high background activity all potentially invalidating benchmark scores.
All changes with storage and PCIe devices as well as suspicious dmesg contents
will be reported too.

Time        CPU    load %cpu %sys %usr %nice %io %irq   Temp
08:30:55: 1250MHz  3.39  39%   3%  33%   0%   1%   0%  75.3°C  
08:31:55: 1250MHz  1.31   0%   0%   0%   0%   0%   0%  72.0°C  
08:32:56: 1250MHz  0.48   0%   0%   0%   0%   0%   0%  70.7°C  
08:33:56: 1250MHz  0.17   0%   0%   0%   0%   0%   0%  69.8°C  
08:34:56: 1250MHz  0.06   0%   0%   0%   0%   0%   0%  69.2°C  
08:35:56: 1250MHz  0.13   0%   0%   0%   0%   0%   0%  68.9°C  
08:36:56: 1250MHz  0.05   0%   0%   0%   0%   0%   0%  68.6°C  
08:37:56: 1250MHz  0.02   0%   0%   0%   0%   0%   0%  68.3°C  
08:38:56: 1250MHz  0.12   0%   0%   0%   0%   0%   0%  68.1°C  
08:39:57: 1250MHz  0.04   0%   0%   0%   0%   0%   0%  67.9°C  
08:40:57: 1250MHz  0.12   0%   0%   0%   0%   0%   0%  67.8°C  
08:41:57: 1250MHz  0.04   0%   0%   0%   0%   0%   0%  67.6°C  
08:42:57: 1250MHz  0.05   0%   0%   0%   0%   0%   0%  67.6°C  
08:43:57: 1250MHz  0.02   0%   0%   0%   0%   0%   0%  67.5°C  
^C

Cleaning up. Done.
Checking cpufreq OPP again. Done.

Clockspeeds now at 68.0°C:

    cpu0 (sifive,u74-mc): OPP: 1250, Measured: 1247 

ATTENTION: some noise in kernel ring buffer since start of monitoring:

[ 3997.900925] loop0: detected capacity change from 0 to 8
[ 4297.875382] loop0: detected capacity change from 0 to 8

Results validation:

  * Measured clockspeed not lower than advertised max CPU clockspeed
  * Background activity (%system) OK
  * No throttling

Полный журнал загружен для тех, кому нужны детали . Максимальная температура ЦП составила 78,2°C во время стресс-теста stress-ng, и VisionFive 2 Lite не снижал производительность во время теста, несмотря на отсутствие радиатора для охлаждения.

С точки зрения производительности, она намного ниже, чем у Raspberry Pi 4 или 5 , и большинства современных одноплатных компьютеров на Arm, но этого и следовало ожидать. Для справки: оценка 7-zip в 3290 MIPS примерно соответствует производительности Raspberry Pi 3B+ .

Протестируем ускорение графики с помощью glmark2-es2-wayland.

StarFive JH7110S RISC-V VisionFive 2 Lite glmark2-es2-wayland

user@starfive:~$ glmark2-es2-wayland 
=======================================================
    glmark2 2021.12
=======================================================
    OpenGL Information
    GL_VENDOR:      Imagination Technologies
    GL_RENDERER:    PowerVR B-Series BXE-4-32
    GL_VERSION:     OpenGL ES 3.2 build 1.19@6345021
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=8
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 138 FrameTime: 7.246 ms
[build] use-vbo=true: FPS: 417 FrameTime: 2.398 ms
[texture] texture-filter=nearest: FPS: 608 FrameTime: 1.645 ms
[texture] texture-filter=linear: FPS: 528 FrameTime: 1.894 ms
[texture] texture-filter=mipmap: FPS: 428 FrameTime: 2.336 ms
[shading] shading=gouraud: FPS: 358 FrameTime: 2.793 ms
[shading] shading=blinn-phong-inf: FPS: 341 FrameTime: 2.933 ms
[shading] shading=phong: FPS: 299 FrameTime: 3.344 ms
[shading] shading=cel: FPS: 272 FrameTime: 3.676 ms
[bump] bump-render=high-poly: FPS: 232 FrameTime: 4.310 ms
[bump] bump-render=normals: FPS: 495 FrameTime: 2.020 ms
[bump] bump-render=height: FPS: 500 FrameTime: 2.000 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 246 FrameTime: 4.065 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 81 FrameTime: 12.346 ms
[pulsar] light=false:quads=5:texture=false: FPS: 693 FrameTime: 1.443 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 102 FrameTime: 9.804 ms
[desktop] effect=shadow:windows=4: FPS: 285 FrameTime: 3.509 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 50 FrameTime: 20.000 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 86 FrameTime: 11.628 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 122 FrameTime: 8.197 ms
[ideas] speed=duration: FPS: 229 FrameTime: 4.367 ms
[jellyfish] <default>: FPS: 188 FrameTime: 5.319 ms
[terrain] <default>: FPS: 15 FrameTime: 66.667 ms
[shadow] <default>: FPS: 222 FrameTime: 4.505 ms
[refract] <default>: FPS: 36 FrameTime: 27.778 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 558 FrameTime: 1.792 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 272 FrameTime: 3.676 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 546 FrameTime: 1.832 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 343 FrameTime: 2.915 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 140 FrameTime: 7.143 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 611 FrameTime: 1.637 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 624 FrameTime: 1.603 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 568 FrameTime: 1.761 ms
=======================================================
                                  glmark2 Score: 322 
=======================================================
warning: queue 0x2ad4a16650 destroyed while proxies still attached:
  wl_display@1 still attached

Хорошая новость заключается в том, что ускорение графики включено, хотя оценка в 322 балла довольно низкая. Для сравнения, Raspberry Pi 5 получает 2036 баллов в том же тесте, а одноплатный компьютер ODROID-M1S на SoC Rockchip RK3566 показывает 496 баллов . Следует отметить, что производительность может сильно различаться в зависимости от используемого драйвера GPU.

Сначала используем Speedometer 2.0 для проверки производительности в Firefox…

StarFive JH7110S Speedometer 2.0 Ubuntu 24.04 Firefox

3,56 прогона в минуту — довольно низкий показатель, в то время как ODROID-M1S и Raspberry Pi 4 могут выполнить тот же тест со скоростью 11 прогонов в минуту.

Наконец, была протестирована поддержка GPU в Firefox с помощью демо WebGL Aquarium.

VisionFive 2 Lite WebGL Aquarium Firefox

10 кадров в секунду при отрисовке 500 рыб — не самая высокая скорость, но удалось подтвердить, что «WebRender» использовал драйвер WebGL «Imagination Technologies – PowerVR B-Series BXE-4-32» для рендеринга сцены. Таким образом, ускорение 3D-графики также работает в Firefox. Производительность не впечатляет, но стоит вспомнить, что поддержка этого на Arm-оборудовании появилась спустя долгое время, поэтому приятно видеть её работающей и на RISC-V.

Firefox GPU accelerator Imagination PowerVR BXE- 4-32 GPU

Производительность накопителей и USB

Начнём тестирование производительности накопителя, запустив iozone3 на карте microSD с операционной системой:

user@starfive:~$ iozone -e -I -a -s 100M -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.506 $
		Compiled for 64 bit mode.
		Build: linux 
                                                                    random    random      bkwd     record     stride                                        
              kB  reclen    write    rewrite      read    reread      read     write      read    rewrite       read    fwrite  frewrite     fread   freread
          102400       4      3999      4862     10069     10078     10054      6050                                                                
          102400      16      7799      8476     15584     15482     14463     13286                                                                
          102400     512     19881     20206     22451     22510     22487     21628                                                                
          102400    1024     21352     21408     22724     22795     22797     22381                                                                
          102400   16384     21719     21781     23039     23070     23096     21696

Это примерно 23 МБ/с на чтение и 21 МБ/с на запись, с хорошими показателями случайных операций ввода-вывода благодаря рейтингу Class A2. Однако следует отметить, что 64-гигабайтная карта microSD от Raspberry Pi почти в четыре раза медленнее при подключении к более мощному одноплатному компьютеру Raspberry Pi 5. Для сравнения приведены результаты на Pi 5:

pi@raspberrypi:~ $  iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4    11110    11181    26694    26663    26655    15862                                                                
          102400      16    19897    20268    48230    49161    49074    41893                                                                
          102400     512    58357    59906    87240    87158    86930    73375                                                                
          102400    1024    69445    72518    90424    90334    90458    79276                                                                
          102400   16384    72909    74490    91769    91510    91656    74538

Затем к разъёму M.2 PCIe на плате был подключён NVMe SSD MAKERDISK на 128 ГБ .

128GB NVMe SSD StarFive VisionFive 2 Lite SBC

После повторной загрузки можно протестировать накопитель:

user@starfive:/media/nvme0n1p2$ sudo iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
                                                                    random    random      bkwd     record     stride                                        
              kB  reclen    write    rewrite      read    reread      read     write      read    rewrite       read    fwrite  frewrite     fread   freread
         1024000       4     28892     74286     72664     73054     28656     52898                                                                
         1024000      16    105102    132987    118840    120213     78550    113193                                                                
         1024000     512    277922    279135    146638    147432    146339    149333                                                                
         1024000    1024    143225    150840    148497    147818    147194    150713                                                                
         1024000   16384    109002    109199    103330    103374    103376    109167                                                                

iozone test complete.

Достаточно медленно, и результаты воспроизводятся при повторном запуске теста. Лучшая производительность достигается при длине записи 1024k, где скорость чтения составляет около 147 МБ/с, а скорость записи — около 143 МБ/с. Это довольно необычно, поскольку обычно лучшие результаты показывает 16M. По какой-то причине результаты сильно различаются, если изменить размер тестового файла с 1 ГБ на 100 МБ:

user@starfive:/media/nvme0n1p2$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
                                                                    random    random      bkwd     record     stride                                        
              kB  reclen    write    rewrite      read    reread      read     write      read    rewrite       read    fwrite  frewrite     fread   freread
          102400       4     13536     46454     50012     74952     37583     74094                                                                
          102400      16     85941    115844    120829    121238     79590    115552                                                                
          102400     512    254337    299081    284235    284877    280688    296263                                                                
          102400    1024    291424    301067    295593    297670    288366    299124                                                                
          102400   16384    183538    187377    172318    172556    169241    108812                                                                

iozone test complete.

Опять же, этот результат воспроизводится при повторном запуске теста. Предположительно, здесь задействовано кэширование, несмотря на использование опции прямого ввода-вывода в командной строке. Заявленная производительность теперь составляет 295 МБ/с для чтения и 291 МБ/с для записи. Это всё ещё не оптимально для слота PCIe Gen2 x1, который должен обеспечивать скорость передачи данных выше 400 МБ/с. Для справки: при подключении этого же SSD к Raspberry Pi 5 в режиме PCIe Gen2 была получена скорость чтения 434 МБ/с и записи 395 МБ/с.

Также был протестирован порт USB 3.0 (5 Гбит/с) с корпусом ORICO , в котором использовался NVMe-накопитель, и порты USB 2.0 с жёстким диском USB 3.0, оба с разделами EXT-4. Для подтверждения заявленной скорости и фактической пропускной способности использовались lsusb и iozone.

Для справки приведён вывод для порта USB 3.0:

user@starfive:/media/user/TB3-EXT4$ lsusb -t | grep uas
    |__ Port 001: Dev 002, If 0, Class=Mass Storage, Driver=uas, 5000M
user@starfive:/media/user/TB3-EXT4$ sudo iozone -e -I -a -s 1000M -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
         1024000   16384    149120    136217    103076    103053                                                                                  

user@starfive:/media/user/TB3-EXT4$ sudo iozone -e -I -a -s 1000M -r 1638
                                                                    random    random      bkwd     record     stride                                        
              kB  reclen    write    rewrite      read    reread      read     write      read    rewrite       read    fwrite  frewrite     fread   freread
         1024000   16384    141237    144372    103091    103135

А для порта USB 2.0 прямо над ним:

user@starfive:/media/user/USB3-2TB$ lsusb -t | grep storage
        |__ Port 003: Dev 004, If 0, Class=Mass Storage, Driver=usb-storage, 480M
user@starfive:/media/user/USB3-2TB$ sudo iozone -e -I -a -s 100M -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
          102400   16384     39527     39141     39377     39363

Сводка по всем четырём USB-портам:

  • Порт USB 3.0 – 5 Гбит/с – Скорость чтения: 103 МБ/с; скорость записи: 149 МБ/с (первая попытка) / 141 МБ/с (вторая попытка)
  • Порт USB 2.0 (над USB 3.0) – 480 Мбит/с – Скорость чтения: 39 МБ/с; скорость записи: 39 МБ/с
  • Порт USB 2.0 (справа вверху) – 480 Мбит/с – Скорость чтения: 38 МБ/с; скорость записи: 36 МБ/с
  • Порт USB 2.0 (справа внизу)  – 480 Мбит/с – Скорость чтения: 39 МБ/с; скорость записи: 39 МБ/с

Порт USB 3.0 работает не так хорошо, как ожидалось, поскольку порт USB 3.0 со скоростью 5 Гбит/с должен обеспечивать пропускную способность около 400 МБ/с с этим накопителем. Поэтому тест был повторён дважды. Порты USB 2.0 работают примерно так, как и ожидалось, хотя UAS не активирован.

Gigabit Ethernet, WiFi и Bluetooth

Время протестировать Ethernet и WiFi с помощью iperf3. Начнём с порта Gigabit Ethernet:

  • Загрузка
    iperf3 -c 192.168.1.10 -t 60 -i 10
    Connecting to host 192.168.1.10, port 5201
    [  5] local 192.168.1.6 port 52636 connected to 192.168.1.10 port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-10.01  sec  1.04 GBytes   893 Mbits/sec   27    744 KBytes       
    [  5]  10.01-20.01  sec  1.10 GBytes   941 Mbits/sec    3    542 KBytes       
    [  5]  20.01-30.01  sec  1.10 GBytes   941 Mbits/sec    0    816 KBytes       
    [  5]  30.01-40.01  sec  1.10 GBytes   941 Mbits/sec    0   1.10 MBytes       
    [  5]  40.01-50.01  sec  1.10 GBytes   941 Mbits/sec    0   1.67 MBytes       
    [  5]  50.01-60.01  sec  1.10 GBytes   941 Mbits/sec  193   1005 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-60.01  sec  6.52 GBytes   933 Mbits/sec  223             sender
    [  5]   0.00-60.01  sec  6.52 GBytes   933 Mbits/sec                  receiver

    [Время форматирования: 0.0008 секунд]

  • Отправка
    jaufranc@CNX-LAPTOP-5:~/edev/twentyseventeen-child$ iperf3 -c 192.168.1.10 -t 60 -i 10 -R
    Connecting to host 192.168.1.10, port 5201
    Reverse mode, remote host 192.168.1.10 is sending
    [  5] local 192.168.1.6 port 33996 connected to 192.168.1.10 port 5201
    [ ID] Interval           Transfer     Bitrate
    [  5]   0.00-10.01  sec  1.10 GBytes   941 Mbits/sec                  
    [  5]  10.01-20.01  sec  1.10 GBytes   942 Mbits/sec                  
    [  5]  20.01-30.01  sec  1.10 GBytes   941 Mbits/sec                  
    [  5]  30.01-40.01  sec  1.10 GBytes   941 Mbits/sec                  
    [  5]  40.01-50.01  sec  1.10 GBytes   941 Mbits/sec                  
    [  5]  50.01-60.01  sec  1.10 GBytes   942 Mbits/sec                  
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-60.01  sec  6.58 GBytes   942 Mbits/sec    0             sender
    [  5]   0.00-60.01  sec  6.58 GBytes   941 Mbits/sec                  receiver

    [Время форматирования: 0.0008 секунд]

  • Дуплексный режим (двунаправленный)
    aufranc@CNX-LAPTOP-5:~/edev/twentyseventeen-child$ iperf3 -c 192.168.1.10 -t 60 -i 10 --bidir
    Connecting to host 192.168.1.10, port 5201
    [  5] local 192.168.1.6 port 53804 connected to 192.168.1.10 port 5201
    [  7] local 192.168.1.6 port 53806 connected to 192.168.1.10 port 5201
    [ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5][TX-C]   0.00-10.01  sec  1.06 GBytes   911 Mbits/sec   52    269 KBytes       
    [  7][RX-C]   0.00-10.01  sec  1.02 GBytes   876 Mbits/sec                  
    [  5][TX-C]  10.01-20.01  sec  1.04 GBytes   893 Mbits/sec   45    260 KBytes       
    [  7][RX-C]  10.01-20.01  sec  1.04 GBytes   894 Mbits/sec                  
    [  5][TX-C]  20.01-30.01  sec  1.05 GBytes   904 Mbits/sec   33    573 KBytes       
    [  7][RX-C]  20.01-30.01  sec  1.02 GBytes   878 Mbits/sec                  
    [  5][TX-C]  30.01-40.01  sec  1.07 GBytes   921 Mbits/sec   18    447 KBytes       
    [  7][RX-C]  30.01-40.01  sec  1.01 GBytes   867 Mbits/sec                  
    [  5][TX-C]  40.01-50.01  sec  1.07 GBytes   917 Mbits/sec   58    229 KBytes       
    [  7][RX-C]  40.01-50.01  sec  1.01 GBytes   866 Mbits/sec                  
    [  5][TX-C]  50.01-60.01  sec  1.01 GBytes   867 Mbits/sec   34    397 KBytes       
    [  7][RX-C]  50.01-60.01  sec  1.02 GBytes   877 Mbits/sec                  
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID][Role] Interval           Transfer     Bitrate         Retr
    [  5][TX-C]   0.00-60.01  sec  6.30 GBytes   902 Mbits/sec  240             sender
    [  5][TX-C]   0.00-60.01  sec  6.30 GBytes   902 Mbits/sec                  receiver
    [  7][RX-C]   0.00-60.01  sec  6.13 GBytes   877 Mbits/sec   54             sender
    [  7][RX-C]   0.00-60.01  sec  6.12 GBytes   876 Mbits/sec                  receiver

    [Время форматирования: 0.0014 секунд]

Это вполне приемлемо для обычного использования, хотя первые десять секунд обычно медленнее. Тестирование проводилось трижды в обоих направлениях. Были низкие ожидания относительно полнодуплексного режима, но на самом деле он не так плох, и VisionFive 2 Lite справляется с ним довольно хорошо для недорогой RISC-V-платформы.

Затем плата была подключена к роутеру Xiaomi Mi AX6000 WiFi 6 с использованием SSID 5 ГГц, и iperf3 был запущен снова:

  • Загрузка
    user@starfive:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 -R
    Connecting to host 192.168.31.12, port 5201
    Reverse mode, remote host 192.168.31.12 is sending
    [  5] local 192.168.31.224 port 50220 connected to 192.168.31.12 port 5201
    [ ID] Interval           Transfer     Bitrate
    [  5]   0.00-10.00  sec  11.8 MBytes  9.86 Mbits/sec                  
    [  5]  10.00-20.00  sec  13.6 MBytes  11.4 Mbits/sec                  
    [  5]  20.00-30.01  sec  13.6 MBytes  11.4 Mbits/sec                  
    [  5]  30.01-40.01  sec  12.9 MBytes  10.8 Mbits/sec                  
    [  5]  40.01-50.01  sec  13.6 MBytes  11.4 Mbits/sec                  
    [  5]  50.01-60.01  sec  13.8 MBytes  11.5 Mbits/sec                  
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-60.07  sec  82.6 MBytes  11.5 Mbits/sec   25             sender
    [  5]   0.00-60.01  sec  79.2 MBytes  11.1 Mbits/sec                  receiver
    
    iperf Done.

    [Время форматирования: 0.0007 секунд]

  • Отправка
    user@starfive:~$ iperf3 -t 60 -c 192.168.31.12 -i 10
    Connecting to host 192.168.31.12, port 5201
    [  5] local 192.168.31.224 port 49620 connected to 192.168.31.12 port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-10.01  sec  20.8 MBytes  17.4 Mbits/sec    0    396 KBytes       
    [  5]  10.01-20.01  sec  19.5 MBytes  16.4 Mbits/sec    0    396 KBytes       
    [  5]  20.01-30.01  sec  19.5 MBytes  16.4 Mbits/sec    0    396 KBytes       
    [  5]  30.01-40.01  sec  19.5 MBytes  16.4 Mbits/sec    0    396 KBytes       
    [  5]  40.01-50.01  sec  19.4 MBytes  16.3 Mbits/sec    0    396 KBytes       
    [  5]  50.01-60.01  sec  19.0 MBytes  15.9 Mbits/sec    0    396 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-60.01  sec   118 MBytes  16.4 Mbits/sec    0             sender
    [  5]   0.00-60.09  sec   116 MBytes  16.2 Mbits/sec                  receiver
    
    iperf Done.

    [Время форматирования: 0.0008 секунд]

Скорости загрузки и выгрузки довольно низкие. Поэтому также проверил скорость соединения:

user@starfive:~$ iwconfig wlan0
wlan0     no wireless extensions.

user@starfive:~$ nmcli dev wifi
IN-USE  BSSID              SSID                    MODE   CHAN  RATE        SIG>
        42:CD:57:F5:AF:92  --                      Infra  1     270 Mbit/s  100>
        3C:CD:57:F5:AF:92  CNX_Software_Xiaomi     Infra  1     270 Mbit/s  100>
        00:23:63:AB:12:F6  RC028667                Infra  11    130 Mbit/s  100>
*       3C:CD:57:F5:AF:91  CNX_Software_Xiaomi_5G  Infra  36    540 Mbit/s  100>
        F4:3C:3B:97:63:83  CONSUMERB27915          Infra  6     65 Mbit/s   82 >
        A6:D7:3C:37:41:CB  DIRECT-3C-EPSON-37C1CB  Infra  1     65 Mbit/s   79 >

Для CNX_Software_Xiaomi_5G указано 540 Мбит/с. Попробуем подключиться к точке доступа 2.4 ГГц (270 Мбит/с) на случай, если это улучшит ситуацию:

  • Загрузка
    user@starfive:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 -R
    Connecting to host 192.168.31.12, port 5201
    Reverse mode, remote host 192.168.31.12 is sending
    [  5] local 192.168.31.224 port 37528 connected to 192.168.31.12 port 5201
    [ ID] Interval           Transfer     Bitrate
    [  5]   0.00-10.00  sec  13.5 MBytes  11.3 Mbits/sec                  
    [  5]  10.00-20.00  sec  13.5 MBytes  11.3 Mbits/sec                  
    [  5]  20.00-30.01  sec  13.5 MBytes  11.3 Mbits/sec                  
    [  5]  30.01-40.01  sec  13.6 MBytes  11.4 Mbits/sec                  
    [  5]  40.01-50.01  sec  13.4 MBytes  11.2 Mbits/sec                  
    [  5]  50.01-60.01  sec  13.6 MBytes  11.4 Mbits/sec                  
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-60.06  sec  84.0 MBytes  11.7 Mbits/sec    6             sender
    [  5]   0.00-60.01  sec  81.1 MBytes  11.3 Mbits/sec                  receiver
    
    iperf Done.

    [Format Time: 0.0007 seconds]

  • Выгрузка
    user@starfive:~$ iperf3 -t 60 -c 192.168.31.12 -i 10
    Connecting to host 192.168.31.12, port 5201
    [  5] local 192.168.31.224 port 46268 connected to 192.168.31.12 port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-10.01  sec  20.0 MBytes  16.8 Mbits/sec    0    263 KBytes       
    [  5]  10.01-20.01  sec  19.0 MBytes  15.9 Mbits/sec    0    263 KBytes       
    [  5]  20.01-30.01  sec  19.5 MBytes  16.4 Mbits/sec    0    413 KBytes       
    [  5]  30.01-40.01  sec  19.1 MBytes  16.0 Mbits/sec    0    413 KBytes       
    [  5]  40.01-50.01  sec  19.1 MBytes  16.0 Mbits/sec    0    413 KBytes       
    [  5]  50.01-60.01  sec  19.1 MBytes  16.0 Mbits/sec    0    413 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-60.01  sec   116 MBytes  16.2 Mbits/sec    0             sender
    [  5]   0.00-60.09  sec   114 MBytes  15.9 Mbits/sec                  receiver

    [Format Time: 0.0007 seconds]

Результаты практически одинаковые. Для справки, на этой тестовой установке многие (высокопроизводительные) платформы WiFi 6 могут обеспечивать пропускную способность 1 Гбит/с и выше. Предположительно, узким местом здесь может быть интерфейс SDIO (и его драйверы).

Модуль WiFi 6 также поддерживает Bluetooth 5.4. Его протестировали со смартфоном на Android (OPPO A98 5G). Подключение установилось довольно легко, и удалось передать фотографию размером 14,7 МБ по Bluetooth.

Ubuntu RISC-V Bluetooth File Transfer

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

StarFive VisionFive 2 Lite SBC Bluetooth Transfer Android

Хотя подключение работает, передача файлов со смартфона Android на одноплатный компьютер происходит очень медленно. Передача фотографии размером 14,7 МБ заняла 22 минуты, что эквивалентно скорости примерно 89,1 кбит/с.

Также попытались использовать VisionFive 2 Lite в качестве аудиоприёмника, воспроизводя музыку со смартфона на телевизор с HDMI, подключённый к плате, но из-за очень низкой скорости передачи это работало плохо, с постоянными прерываниями и неразборчивым звуком.

YouTube и воспроизведение видео 1080p60

Далее следуют видео-тесты, начиная с воспроизведения видео YouTube в Firefox. Обычно выполняется вход в Firefox для синхронизации учётной записи, но процесс завис, и стало ясно, что расширения не поддерживаются. Пришлось выйти из системы. Появилось предложение загрузить «новый Firefox» для получения расширений. Текущая версия, установленная на плате — Firefox Browser 126.0.1 64-bit, в то время как на ноутбуке с Ubuntu 24.04 стоит версия 146.0.1. Официальных бинарных сборок Firefox для RISC-V нет, поэтому, возможно, её нужно компилировать из исходного кода.

Firefox RISC-V cannot install add-ons

Это не помешало попробовать YouTube. Система с трудом загружала главную страницу YouTube, поэтому был выполнен поиск «4K video youtube» и оттуда загружено видео. Первое разрешение, которое более-менее заработало, было 480p, но это означает лишь то, что изображение не было статичной картинкой. Видео было невозможно смотреть: 784 кадра из 2269 были потеряны.

VisionFive 2 Lite Firefox 480p

Разрешение 360p показало небольшое улучшение, но видео всё равно было невозможно смотреть: 917 потерянных кадров из 4566.

VisionFive 2 Lite Firefox 360p

Разрешение 240p было почти пригодно для просмотра (если игнорировать низкое разрешение) с потерей 116 кадров из 4279. Звук также работал нормально.

VisionFive 2 Lite Firefox 240p

Таким образом, воспроизведение видео YouTube в Firefox практически непригодно для использования. Посмотрим, повезёт ли больше с локальными файлами и, возможно, с использованием VPU от RISC-V SoC JH7110S. Начали с файла big_buck_bunny_1080p_surround.avi с помощью ffplay.

VisionFive 2 Lite software video decoding

Видео воспроизводилось более-менее нормально, но использование ЦП было очень высоким, что указывает на программное декодирование видео. В этот момент стало ясно, что видео использует кодек MPEG-4, а VPU обеспечивает декодирование видео H.264 и H.265 с разрешением до 4Kp60, поэтому используется программный декодер. Вместо этого переключились на видео 4Kp30 с кодеком H.264.

JH7110S RISC-V H.264 hardware video decoding

Наблюдается более низкое использование ЦП, и используется декодер OMX AVC (H.264), что указывает на аппаратное декодирование видео. Это хорошая новость, но воспроизведение видео 4K на дисплее 1080p показывает только четверть видео, так как аппаратное масштабирование не реализовано автоматически.

Переключение на видео H.265 с глубиной цвета 10 бит даёт те же результаты: относительно низкое использование ЦП, декодер OMX HEVC (H.265) и отображение четверти видео на экране.

JH7110S RISC-V H.265 hardware video decoding

В итоге обнаружили, что можно просто переместить окно и нажать на значок полноэкранного режима, чтобы увидеть полное видео. Масштабирование, по-видимому, не оказывает существенного влияния на производительность.

VisionFive 2 Lite H.265 ffplay hardware video decoding full screen

Камера и дисплей Raspberry Pi

Расположение портов MIPI выглядит похожим на то, что используется в разъёмах MIPI DSI и CSI Raspberry Pi, поэтому были подключены
7-дюймовый сенсорный дисплей Raspberry Pi Touch Display 2 и камера Raspberry Pi AI camera
.

VisionFive 2 Lite MIPI DSI CSI Raspberry Pi display camera

Однако быстро выяснилось, что они не поддерживаются, и в
списке совместимого оборудования
упоминаются только дисплеи Waveshare и Radxa, а также сенсоры камер Sony iMX219. Поэтому тестирование MIPI было пропущено из-за отсутствия совместимого оборудования.

AI-нагрузки – Детектирование объектов

Хотя JH7110S не оснащён полноценным NPU, компания всё равно предоставляет примеры. Была предпринята краткая попытка запустить
демо детектирования объектов с использованием USB-камеры Full HD из комплекта разработчика AAEON NV8600-Nano
.

Демо можно установить следующим образом:

user@starfive:~$ wget https://github.com/starfive-tech/Debian/releases/download/v0.15.0-engineering-release-wayland/install_full.sh
user@starfive:~$ chmod +x install_full.sh 
user@starfive:~$ sudo ./install_full.sh

После первого раза последняя команда завершилась следующими ошибками:

Ign:3 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 libre2-9 riscv64 20220601+dfsg-1
Ign:4 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 v8 riscv64 10.2.154.13
Ign:2 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 chromium riscv64 103.0.5060.114
Ign:3 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 libre2-9 riscv64 20220601+dfsg-1
Ign:4 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 v8 riscv64 10.2.154.13
Err:2 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 chromium riscv64 103.0.5060.114
  Could not connect to debianrepo-t.starfivetech.com:443 (121.46.248.1), connection timed out
Err:3 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 libre2-9 riscv64 20220601+dfsg-1
  Unable to connect to debianrepo-t.starfivetech.com:https:
Err:4 https://debianrepo-t.starfivetech.com/ubuntu starfive-ubuntu/noble riscv64 v8 riscv64 10.2.154.13
  Unable to connect to debianrepo-t.starfivetech.com:https:
Fetched 71.3 kB in 38s (1887 B/s)
E: Failed to fetch https://debianrepo-t.starfivetech.com/ubuntu/pool/noble/c/chromium/chromium_103.0.5060.114_riscv64.deb  Could not connect to debianrepo-t.starfivetech.com:443 (121.46.248.1), connection timed out
E: Failed to fetch https://debianrepo-t.starfivetech.com/ubuntu/pool/noble/r/re2/libre2-9_20220601%2bdfsg-1_riscv64.deb  Unable to connect to debianrepo-t.starfivetech.com:https:
E: Failed to fetch https://debianrepo-t.starfivetech.com/ubuntu/pool/noble/v/v8/v8_10.2.154.13_riscv64.deb  Unable to connect to debianrepo-t.starfivetech.com:https:
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Install Success

Это была временная проблема с сервером. Пришлось подождать до следующего утра, после чего установку удалось завершить.

Запустили пример YOLO-V3 следующей командой:

example_dnn_object_detection --config=/usr/share/opencv4/yolo-v3/yolov3-tiny.cfg \
        --model=/usr/share/opencv4/yolo-v3/yolov3-tiny.weights \
        --classes=/usr/share/opencv4/yolo-v3/classes.txt \
--width=416 --height=416 --scale=0.00392 --rgb --target=1 --device=4

VisionFive 2 Lite RISC-V SBC Review Ubuntu AI Object Detection

Это сработало, но без AI-ускорителей время инференса довольно велико и составляет более 1100 мс. Отметим, что компания предоставляет
AI-комплект с модулем ускорения AI Hailo-8L формата M.2, поэтому AI можно использовать с более высокой производительностью. Это выходит за рамки данного обзора, поэтому этот аспект не изучался.

GPIO

Платы VisionFive 2 и VisionFive 2 Lite оснащены 40-контактным разъёмом GPIO с распиновкой, аналогичной той, что используется на одноплатных компьютерах Raspberry Pi.

StarFive VisionFive 2 Lite GPIO header pinout
Распиновка разъёма GPIO StarFive VisionFive 2 / VisionFive 2 Lite

Предлагаемая команда предоставляет ряд примеров на Python для управления GPIO, но по какой-то причине инструменты не удалось установить успешно:

user@starfive:~$ source myvenv/bin/activate
(myvenv) user@starfive:~$ python3 Install_VisionFive_gpio.py
(myvenv) user@starfive:~$ 

python3 -m pip show VisionFive.gpio

WARNING: Package(s) not found: VisionFive.gpio
(myvenv) user@starfive:~$

Поэтому вместо этого для быстрой проверки GPIO использовались sysfs и libgpio:

user@starfive:~$ ls -l /dev/gpiochip*
crw------- 1 root root 254, 0 Nov 25 18:16 /dev/gpiochip0
crw------- 1 root root 254, 1 Nov 25 18:16 /dev/gpiochip1
user@starfive:~$ sudo gpioinfo 0
gpiochip0 - 64 lines:
	line   0:      unnamed       unused   input  active-high 
	line   1:      unnamed       unused   input  active-high 
	line   2:      unnamed       unused   input  active-high 
	line   3:      unnamed       unused   input  active-high 
	line   4:      unnamed       unused   input  active-high 
	line   5:      unnamed       unused  output  active-high 
	line   6:      unnamed       unused   input  active-high 
	line   7:      unnamed       unused   input  active-high 
	line   8:      unnamed       unused   input  active-high 
	line   9:      unnamed       unused   input  active-high 
	line  10:      unnamed       unused  output  active-high 
	line  11:      unnamed       unused   input  active-high 
	line  12:      unnamed       unused   input  active-high 
	line  13:      unnamed       unused   input  active-high 
	line  14:      unnamed       unused   input  active-high 
	line  15:      unnamed        "hpd"   input  active-high [used]
	line  16:      unnamed       unused  output  active-high 
	line  17:      unnamed       unused  output  active-high 
	line  18:      unnamed       unused  output  active-high 
	line  19:      unnamed       unused   input  active-high 
	line  20:      unnamed       unused   input  active-high 
	line  21:      unnamed       unused  output  active-high 
	line  22:      unnamed       unused  output  active-high 
	line  23:      unnamed       unused  output  active-high 
	line  24:      unnamed       unused  output  active-high 
	line  25:      unnamed       unused  output  active-high 
	line  26:      unnamed       unused  output  active-high 
	line  27:      unnamed     "enable"  output  active-high [used]
	line  28:      unnamed      "perst"  output   active-low [used]
	line  29:      unnamed       unused  output  active-high 
	line  30:      unnamed       unused  output  active-high 
	line  31:      unnamed       unused  output  active-high 
	line  32:      unnamed       unused  output  active-high 
	line  33:      unnamed  "WL_REG_ON"  output  active-high [used]
	line  34:      unnamed       unused  output  active-high 
	line  35:      unnamed "gpio-restart" output active-high [used]
	line  36:      unnamed       unused   input  active-high 
	line  37:      unnamed       unused   input  active-high 
	line  38:      unnamed       unused   input  active-high 
	line  39:      unnamed       unused   input  active-high 
	line  40:      unnamed       unused   input  active-high 
	line  41:      unnamed         "cd"   input  active-high [used]
	line  42:      unnamed       unused  output  active-high 
	line  43:      unnamed       unused   input  active-high 
	line  44:      unnamed       unused   input  active-high 
	line  45:      unnamed       unused  output  active-high 
	line  46:      unnamed       unused  output  active-high 
	line  47:      unnamed       unused   input  active-high 
	line  48:      unnamed       unused   input  active-high 
	line  49:      unnamed       unused   input  active-high 
	line  50:      unnamed       unused   input  active-high 
	line  51:      unnamed       unused   input  active-high 
	line  52:      unnamed       unused   input  active-high 
	line  53:      unnamed       unused   input  active-high 
	line  54:      unnamed       unused   input  active-high 
	line  55:      unnamed       unused   input  active-high 
	line  56:      unnamed       unused   input  active-high 
	line  57:      unnamed       unused   input  active-high 
	line  58:      unnamed       unused   input  active-high 
	line  59:      unnamed       unused   input  active-high 
	line  60:      unnamed       unused   input  active-high 
	line  61:      unnamed       unused   input  active-high 
	line  62:      unnamed       unused  output  active-high 
	line  63:      unnamed       unused   input  active-high 
user@starfive:~$ sudo gpioinfo 1
gpiochip1 - 4 lines:
	line   0:      unnamed       unused   input  active-high 
	line   1:      unnamed       unused   input  active-high 
	line   2:      unnamed       unused   input  active-high 
	line   3:      unnamed        "ack"  output  active-high [used]
user@starfive:~$

Здесь всё выглядит хорошо.

Итог: что работает, что нет

Теперь, когда тестирование почти завершено, подведём итоги тестов, чтобы увидеть, что работает, а что нет, в конце 2025 — начале 2026 года на недорогой RISC-V плате StarFive:

  • Накопители
    • Слот для карт MicroSD — OK, но
      карта microSD Raspberry Pi на 64 ГБ (A2) значительно медленнее
      , чем при использовании на Raspberry Pi 5.
    • NVMe SSD — Работает,
      но относительно медленно
      (до 295 МБ/с в определённых условиях)
  • Интерфейсы отображения
    • HDMI — Видео OK (протестировано до разрешения 4K), Аудио OK
    • MIPI DSI — Не тестировалось из-за отсутствия совместимого оборудования.
  • GPU — 3D-ускорение графики включено, протестировано с glmark2-es2-wayland и WebGL в Firefox. Но
    производительность находится на низком уровне
    .
  • VPU — Работает с ffplay
  • Интерфейс камеры — MIPI CSI не тестировалось из-за отсутствия совместимого оборудования.
  • Сетевые интерфейсы
    • Гигабитный Ethernet — OK (iperf3 DL: 933 Мбит/с, UL: 942 Мбит/с, полный дуплекс: 902/877 Мбит/с)
    • WiFi 6 — Работает,
      но очень медленно
      (16 Мбит/с на 2,4 и 5 ГГц)
    • Bluetooth — OK,
      но очень медленно и практически непригодно для использования
      при передаче файла или воспроизведении музыки со смартфона Android OPPO A98 5G
  • USB — Порт USB 3.0 протестирован с корпусом для NVMe SSD от ORICO, порты USB 2.0 — с USB HDD (оба с разделом EXT-4) и RF-адаптером для комбо беспроводной клавиатуры/мыши. Спереди слева направо
    • USB 2.0 (верхний) — 480 Мбит/с; протестирована скорость до 39 МБ/с с iozone3
    • USB 3.0 (нижний) — 10 Гбит/с; протестирована скорость до 103 МБ/с (чтение)/149 МБ/с (запись) с iozone3;
      работает, но медленнее, чем ожидалось
    • USB 2.0 (верхний) — 480 Мбит/с; протестирована скорость до 38 МБ/с с iozone3
    • USB 2.0 (нижний) — 480 Мбит/с; протестирована скорость до 38 МБ/с с iozone3
  • GPIO — OK — Быстро проверено с помощью sysfs и libgpio.

Потребляемая мощность

Потребляемая мощность VisionFive 2 Lite измерялась с помощью сетевого ваттметра:

  • Выключено — 1,7 Вт
  • Простой
    • 3,0 Вт (без монитора, карта microSD, SSD M.2, WiFi 6)
    • 3,4 Вт (как выше + гигабитный Ethernet)
    • 4,2 Вт (как выше + RF-адаптер для мыши и клавиатуры, монитор HDMI)
  • Видео 4K H.265 (ffplay) — 6,1 – 7,0 Вт
  • Стресс-тест на всех 4 ядрах (stress -c 4) — 6,1 – 6,4 Вт

Заключение

С момента обзора VisionFive 2 в 2023 году был достигнут значительный прогресс, и всё, что тестировалось на Ubuntu 24.04, работало, почти как на достаточно хорошо поддерживаемом Arm SBC. Однако, не сказано, что всё работало хорошо, поскольку по-прежнему существует множество оговорок и ограничений.

Как и ожидалось, StarFive JH7110S — это начальный четырёхъядерный RISC-V SoC, и его производительность аналогична производительности Raspberry Pi 3 Model B+ или одноплатного компьютера на Rockchip RK3566 с пониженной частотой. Эта часть не удивляет. Однако производительность интерфейсов накопителей (слота для карт microSD и M.2 NVMe SSD), интерфейса USB 3.0, а также WiFi 6 и Bluetooth находится на низком уровне, и неясно, является ли это ограничением кремния или драйверов, хотя есть надежда, что дальнейшая программная оптимизация может улучшить всё это. Тем не менее, гигабитный Ethernet работает хорошо, на уровне примерно 930/940 Мбит/с.

Также приятно было увидеть, что 3D-ускорение графики (glmark2-es2-wayland и WebGL в Firefox) и аппаратное декодирование видео H.264/H.265 (ffplay/ffmpeg) были реализованы должным образом, хотя производительность GPU также была на низком уровне, но это может быть связано с самим GPU PowerVR BXE-4-32. GPIO также определялись через sysfs и libgpio. Также порадовало использование свежего ядра Linux 6.12 (пусть и с патчами). Однако некоторые программные ограничения для RISC-V всё ещё существуют, например, нельзя просто запустить apt dist-upgrade, не нарушив работу системы (предоставлен альтернативный метод), а предоставленная версия Firefox достаточно старая (126), чтобы нельзя было устанавливать расширения.

Мы ещё не достигли точки, когда использование RISC-V SBC вместо Arm SBC является очевидным решением из-за перечисленных выше ограничений, но мы движемся к этому, и если будущие RISC-V SoC станут мощнее, предложат лучшие интерфейсы ввода-вывода и соответствующие драйверы, а также будет поддерживаться больше пакетов для RISC-V, можно представить, что RISC-V SBC будут напрямую конкурировать с аналогами на Arm. В настоящее время, если производительность не является проблемой и вы осведомлены о различных ограничениях, VisionFive 2 Lite всё ещё можно использовать для некоторых проектов в качестве альтернативы Arm SBC, таким как Pi 3 или платы на RK3566, а также для экспериментов с RISC-V.

Благодарим StarFive за предоставление одноплатного компьютера VisionFive 2 Lite для обзора, чтобы ещё раз взглянуть на экосистему RISC-V в конце 2025 — начале 2026 года. Рассмотренная здесь модель с 4 ГБ ОЗУ и WiFI может быть приобретена
на AliExpress (около 64$), Amazon (63,99$) и Waveshare (62,99$)
.

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

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

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

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

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