В этом обзоре или превью материнской платы Shenzhen Milk-V Jupiter mini-ITX на RISC-V будет рассмотрена сборка платы в корпус mini-ITX, установка оптимизированной для RISC-V ОС Bianbu на базе Ubuntu 23.10 Mantic, а также тестирование устройства для оценки прогресса RISC-V с момента тестирования одноплатного компьютера StarFive VisionFive 2 с Debian 12 около 18 месяцев назад.
В первой части обзора были рассмотрены материнские платы mini-ITX Radxa ROCK 5 ITX (на базе Rockchip RK3588 Arm) и Jupiter (на базе SpacemIT K1 RISC-V) с их спецификациями и распаковкой, а также корпус mini-ITX Auriga 6-Bay NAS, используемый в этом обзоре. Изначально планировалось начать с Radxa ROCK 5 ITX, но из-за логистических и технических проблем тестирование началось с RISC-V материнской платы.
Установка Bianbu OS на материнскую плату Jupiter RISC-V
Плата не поставляется с накопителем, поэтому операционная система не установлена. Был установлен M.2 SSD на плату и выполнены инструкции из вики для прошивки Ubuntu-подобной ОС Bianbu. SpacemIT предоставляет утилиту Titanflasher для Windows и Linux, но на момент обзора интерфейс был доступен только на китайском языке, хотя англоязычная версия должна быть выпущена позже.
Поскольку ноутбук работает под управлением Ubuntu 22.04, был загружен titantools_for_linux-1.0.35-beta-AppImage.zip, и при запуске утилиты интерфейс действительно оказался на китайском.
Далее необходимо загрузить BianBu OS, как указано в вики, с файлами релиза доступными на GitHub .
Первоначально это вызвало затруднения, так как среди четырех релизов (Desktop, Kodbox, Minimal или NAS) было несколько файлов. В итоге было замечено предложение «перейти на страницу загрузки ресурсов, чтобы загрузить образ системы с суффиксом .zip (не .img.zip)».
Документация довольно скудная, и в итоге потребовалось загрузить два файла: milkv-jupiter-bianbu-23.10-desktop-k1-v1.0.9-release-2024-0719.zip.001 и milkv-jupiter-bianbu-23.10-desktop-k1-v1.0.9-release-2024-0719.zip.002 для установки десктопной версии ОС.
Также потребовалось установить 7zip-full и распаковать файлы:
1 2 |
sudo apt install p7zip-full 7za x milkv-jupiter-bianbu-23.10-desktop-k1-v1.0.9-release-2024-0719.zip.001 |
После выполнения команды остался файл «milkv-jupiter-bianbu-23.10-desktop-k1-v1.0.9-release-2024-0719.zip» размером 2,5 ГБ.
Все необходимые файлы для прошивки Bianbu OS готовы, поэтому можно подготовить плату Jupiter mini-iTX, установив две WiFi-антенны из комплекта и собственный M.2 NVMe SSD на 256 ГБ. Также потребовался блок питания на 12В и переходник с разъемом 5,5/2,5 мм, который был взят из набора для ноутбука.
Далее необходимо нажать кнопку восстановления, как показано на красном круге выше, подключить питание и отпустить кнопку восстановления, чтобы войти в режим загрузчика/прошивки. В логах ядра должен появиться DFU-устройство.
1 2 3 4 5 6 |
[106399.664718] usb 1-4: new high-speed USB device number 12 using xhci_hcd [106399.827853] usb 1-4: New USB device found, idVendor=361c, idProduct=1001, bcdDevice= 0.01 [106399.827858] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=10 [106399.827860] usb 1-4: Product: USB download gadget [106399.827861] usb 1-4: Manufacturer: DFU [106399.827862] usb 1-4: SerialNumber: dfu-device |
Теперь можно вернуться к утилите Titanflasher, выбрать второй пункт в левом меню и нажать кнопку «scan device». Должна появиться плата «1-4 VIPLPID=0x361c:0x1001».
После нажатия второй кнопки для выбора zip-файла появилось следующее сообщение:
Не зная китайского, сначала подумалось, что проблема в размере файла (более 1,5 ГБ), но Google Переводчик показал, что проблема в почти полном диске ноутбука. Была нажата левая кнопка (Отмена), удалены несколько больших файлов, после чего файл загрузился корректно.
После нажатия широкой синей кнопки начался процесс прошивки, который сначала шел хорошо…
… но быстро завершился ошибкой через несколько секунд:
После нескольких попыток был перемещен ползунок и выбраны все разделы.
Повторная попытка прошивки оказалась успешной… Хотя неясно, помогло ли это или просто повезло…
Теперь можно подключить RISC-V материнскую плату mini-ITX к монитору, беспроводной мыши и клавиатуре для начала работы. Bianbu 1.0.9 загружается без проблем.
Вот как выглядит рабочий стол Bianbu:
Не возникло проблем с подключением к WiFi 6 на 5 ГГц и веб-серфингом.
Вскоре было предложено обновление до Bianbu 1.0.12, которое, видимо, вышло после загрузки Bianbu 1.0.9.
Обновление началось нормально, но через некоторое время окно обновления вернулось к Bianbu 1.0.9. Повторная попытка дала тот же результат. Компания пояснила:
Функция автоматического обновления системы все еще тестируется. Пока рекомендуется не выполнять автоматическое обновление.
Повторять процесс прошивки не планируется, поэтому обзор будет проводиться на Bianbu 1.0.9.
Сборка RISC-V компьютера с платой Jupiter mini-ITX и корпусом Auriga
Теперь, когда работоспособность RISC-V материнской платы mini-ITX под Linux подтверждена, можно приступить к сборке. Изначально предполагалось пропустить тестирование слота PCIe, но вспомнилось, что есть старый ПК с видеокартой NVIDIA GeForce GT210. Первым шагом было снятие всех четырех панелей корпуса для удобного доступа к кабелям и монтажным отверстиям.
Материнская плата mini-ITX была установлена с задней панелью. Обратите внимание на два предварительно вырезанных отверстия слева, предназначенных для SMA-антенн. Подробнее об этом позже. Также была снята крышка слота PCIe.
Плата была закреплена четырьмя винтами из комплекта корпуса mini-ITX.
Сигнал от WiFi-антенн на стороне материнской платы будет блокироваться или ослабляться после установки металлической панели. Очевидно, это не лучший способ установки WiFi в данном корпусе, и SMA-антенны следует крепить к задней панели с подключением к плате через IPEX-кабели.
Следующие шаги включают подключение нескольких кабелей. Плата Jupiter mini-ITX не поддерживает SATA-накопители напрямую, но имеет разъемы питания SATA и может работать с PCIe-картой, имеющей SATA-разъемы. SATA-накопители здесь не используются, но кабели для двух плат с тремя SATA-портами каждая внутри корпуса были подключены.
Затем был подключен внутренний кабель USB 3.0 (белый с синим разъемом) к материнской плате.
Далее были подключены 24-контактный кабель ATX, кнопка питания и сигналы светодиода питания -/+.
Были соблюдены инструкции и схема распиновки из вики, как показано ниже.
Оставшиеся два кабеля предназначены для GPU. Видеокарта в них не нуждается, поэтому она была просто установлена в слот PCIe, как показано ниже. (Примечание: фото ниже было сделано до подключения других кабелей, но позже стало ясно, что кабель USB 3.0 следовало подключить до установки видеокарты…)
Вот как выглядит задняя панель после установки видеокарты PCIe.
Остались кабели для четырех вентиляторов… Плата Jupiter не имеет разъемов для вентиляторов, но они были установлены для будущих обзоров.
Это означает, что при создании NAS с жесткими дисками на базе Jupiter в этом корпусе вентиляторы охлаждения не будут работать, либо потребуется их подключение к 12В источнику.
Сборка почти завершена. Была проверена работоспособность системы перед установкой четырех панелей и окончательной сборкой.
Готово. RISC-V компьютер теперь работает. Наконец-то!
Информация о системе Bianbu
Кратко рассмотрим информацию о системе. Вот что отображается на рабочем столе.
Система оснащена восьмиядерным процессором SpacemIT X60 SoC с GPU PowerVR B-Series BXE-2-32, 15,5 ГБ ОЗУ (доступно для Linux), 256,1 ГБ памяти и Bianby 1.0.9 64-bit с оконной системой Wayland и Linux 6.1.15.
Но больше информации можно получить в терминале:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
jaufranc@milkv-jupiter:~$ cat /etc/lsb-release DISTRIB_ID=Bianbu DISTRIB_RELEASE=1.0.9 DISTRIB_CODENAME=mantic DISTRIB_DESCRIPTION="Bianbu 1.0.9" jaufranc@milkv-jupiter:~$ uname -a Linux milkv-jupiter 6.1.15 #1.0.12 SMP PREEMPT Fri Aug 2 08:53:21 UTC 2024 riscv64 riscv64 riscv64 GNU/Linux jaufranc@milkv-jupiter:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 1.6G 3.3M 1.6G 1% /run /dev/nvme0n1p6 235G 6.8G 216G 4% / tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 5.0M 12K 5.0M 1% /run/lock /dev/nvme0n1p5 224M 27M 180M 13% /boot tmpfs 1.6G 88K 1.6G 1% /run/user/120 tmpfs 1.6G 76K 1.6G 1% /run/user/1000 jaufranc@milkv-jupiter:~$ free -h total used free shared buff/cache available Mem: 15Gi 928Mi 14Gi 9.1Mi 465Mi 14Gi Swap: 0B 0B 0B |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
jaufranc@milkv-jupiter:~$ sudo inxi -Fc0 System: Host: milkv-jupiter Kernel: 6.1.15 arch: riscv64 bits: 64 Console: pty pts/1 Distro: Bianbu 1.0.9 (Mantic Minotaur) Machine: Type: RISCV System: Milk-V(M1) Jupiter details: N/A serial: 0123456789ABCDEF CPU: Info: quad core model: Spacemit X60 variant: riscv bits: 64 type: MT MCP cache: L2: 1024 KiB Speed (MHz): avg: 1800 min/max: 614/1800 cores: 1: 1800 2: 1800 3: 1800 4: 1800 5: 1800 6: 1800 7: 1800 8: 1800 Graphics: Device-1: NVIDIA GT218 [GeForce 210] driver: N/A Device-2: saturn-le driver: spacemit_drm_drv v: N/A Device-3: hdmi driver: spacemit_hdmi_drv v: N/A Device-4: saturn-hdmi driver: spacemit_drm_drv v: N/A Display: server: X.org v: 1.21.1.7 with: Xwayland v: 23.2.0 driver: N/A tty: 80x24 resolution: 1920x1080 API: OpenGL Message: GL data unavailable in console for root. Audio: Device-1: NVIDIA High Definition Audio driver: N/A Device-2: hdmi driver: spacemit_hdmi_drv Device-3: spacemit-snd-sspa driver: spacemit_snd_sspa Device-4: spacemit-snd-dma-hdmi driver: spacemit_snd_dma Device-5: spacemit-i2s0 driver: spacemit_snd_i2s Device-6: simple-audio-card driver: spacemit_audio_card Device-7: simple-audio-card driver: spacemit_audio_card Device-8: spacemit-snd-dma0 driver: spacemit_snd_dma Device-9: spacemit-snd-dma1 driver: spacemit_snd_dma API: ALSA v: k6.1.15 status: kernel-api Network: Device-1: k1x-emac driver: k1x_emac IF: end0 state: down mac: fe:fe:fe:0b:30:60 Device-2: k1x-emac driver: k1x_emac IF: end1 state: up speed: 1000 Mbps duplex: full mac: fe:fe:fe:0b:30:61 IF-ID-1: sit0 state: down mac: 00:00:00:00 IF-ID-2: wlan0 state: down mac: cc:64:1a:32:8d:04 Drives: Local Storage: total: 238.47 GiB used: 6.82 GiB (2.9%) ID-1: /dev/nvme0n1 model: PCIe SSD size: 238.47 GiB Partition: ID-1: / size: 234.36 GiB used: 6.79 GiB (2.9%) fs: ext4 dev: /dev/nvme0n1p6 ID-2: /boot size: 223.7 MiB used: 26.6 MiB (11.9%) fs: ext4 dev: /dev/nvme0n1p5 Swap: Alert: No swap data was found. Sensors: Src: lm-sensors+/sys Message: No sensor data found using /sys/class/hwmon or lm-sensors. Info: Processes: 251 Uptime: 37m Memory: total: 16 GiB available: 15.51 GiB used: 964.8 MiB (6.1%) Init: systemd target: graphical (5) Shell: Sudo inxi: 3.3.29 |
Оказалось, что система использует процессор M1 вместо K1. Оба идентичны, но M1 должен работать на более высокой частоте 1,8 ГГц. Обнаружено множество периферийных устройств, что является хорошей новостью, включая видеокарту NVIDIA Geforce 210. К сожалению, после тестирования HDMI-выхода выяснилось, что он не работает, и драйверы не были загружены. Компания пояснила: «Для видеокарты требуются некоторые патчи, нужно время для тестирования». Температура процессора также не отображается. Shenzhen Milk-V рекомендовала использовать s-tui , но, как и ожидалось, это не помогло, и отображается 0°C.
[Обновление: Следовало увеличить окно, так как температура действительно отображается на левой панели
]
Тестирование функций материнской платы Jupiter Mini-ITX в Bianbu/Ubuntu
При тестировании StarFive VisionFive 2 в прошлом году пришлось использовать его как headless-систему, так как ОС вылетала при подключении дисплея… Хорошая новость в том, что HDMI-выход Jupiter работает нормально, как видно на фото выше. Были протестированы другие функции для оценки прогресса RISC-V под Linux за последние 18 месяцев.
Подробности тестов приведены ниже, но сначала результаты. Проблемные моменты выделены красным, а требующие улучшения — оранжевым:
- GPU – OK. Тестировалось с glmark2-es2-wayland – Оценка: 453 балла
- Воспроизведение видео
- YouTube Full HD @ 60 FPS в Chromium (VP9) – Непригодно для просмотра. Частые зависания при загрузке, несмотря на буферизацию 30 секунд данных.
- YouTube 480p (854×480) @ 60 FPS в Chromium (VP9) – OK. При более высоких разрешениях видео периодически приостанавливается для загрузки, независимо от состояния буфера.
- Big Buck Bunny 1080p60 (H.264) с ffplay (FFMpeg) – Белое изображение в течение 30 секунд со звуком, затем видео воспроизводится в замедленном режиме, звук и видео рассинхронизированы.
- Хранилище – SSD – OK. Скорость: чтение 708 МБ/с; запись 731 МБ/с; Примечание: заявленные скорости SSD: чтение 2 050 МБ/с; запись 1 000 МБ/с, но это нормально, так как используется интерфейс PCIe 2.0 x2;
- HDMI
- Видео – OK. Тестировалось при разрешении 1920×1080.
- Аудио – OK. Тестировалось с видео YouTube и ffplay.
- Аудиоразъем
- Выход – OK. Тестировалось с видео YouTube и Bluetooth.
- Вход – Не тестировался, но отображается как «Analog Input – snd-es8316» в настройках.
- Сеть
- Ethernet #1 – OK – Результаты iperf3: DL: 942 Мбит/с; UL: 942 Мбит/с; Полный дуплекс: 727 Мбит/с/694 Мбит/с.
- Ethernet #2 – OK – Результаты iperf3: DL: 942 Мбит/с; UL: 941 Мбит/с; Полный дуплекс: 671 Мбит/с/729 Мбит/с.
- WiFi 6 – OK. Результаты iperf3: DL: 499 Мбит/с; UL: 462 Мбит/с.
- Bluetooth – OK. Тестировалось с аудио Bluetooth через динамики, подключенные к аудиоразъему.
- USB
- Порты USB 2.0: OK – Тестировалось с RF-приемниками для клавиатуры и мыши.
- Порты USB 3.0 (Верхний порт USB 3.0 подключен через внутренний кабель USB 3.0 и 2 порта USB 3.0 на задней панели)
- Корпус ORICO NVMe – Ошибка (Зеленый светодиод горит, но накопитель не отображается в логах ядра или команде lsblk).
- Жесткий диск SEAGATE USB 3.0 – Ошибка (диск не отображается в логах ядра или команде lsblk).
- RF-приемник для клавиатуры или мыши – OK.
- Порт USB 2.0 OTG – OK, тестировался при прошивке в начале обзора.
- Слот PCIe – Видеокарта NVIDIA GeForce 210 обнаружена для аудио и видео
123jaufranc@milkv-jupiter:~$ lspci | grep -i nvidia0002:01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)0002:01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
[Время форматирования: 0.0002 секунды]
- Но совместимый драйвер не загружен/не найден. (требуется патч).
- Прочее
- Кнопка питания – Да. Плата автоматически включается при подаче питания, но однократное нажатие кнопки вызывает появление окна выключения, а если система выключена, ее можно включить снова.
- Светодиод на корпусе – Не работает (всегда выключен). Не выделено цветом, так как неясно, проблема в корпусе или плате…
Не ожидалось, что 3D-графика с ускорением будет работать, и так и есть. Многое улучшилось, но система пока не готова для повседневного использования из-за проблем с воспроизведением видео, неработающей видеокартой PCIe и необнаруженными USB-накопителями. Сеть работает нормально, хотя полнодуплексный гигабитный Ethernet мог бы быть лучше. Результаты WiFi удивили, учитывая, что антенны находятся в металлическом корпусе. Но роутер находится всего в метре, и сигнал WiFi, вероятно, просачивается через вентиляционные отверстия на задней панели…
Для справки приведены результаты тестов.
Тестирование GPU с glmark2-es2-wayland
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
jaufranc@milkv-jupiter:~$ glmark2-es2-wayland ======================================================= glmark2 2023.01 ======================================================= OpenGL Information GL_VENDOR: Imagination Technologies GL_RENDERER: PowerVR B-Series BXE-2-32 GL_VERSION: OpenGL ES 3.2 build 23.2@6460340 Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=8 samples=0 Surface Size: 800x600 windowed ======================================================= [build] use-vbo=false: FPS: 290 FrameTime: 3.457 ms [build] use-vbo=true: FPS: 550 FrameTime: 1.820 ms [texture] texture-filter=nearest: FPS: 684 FrameTime: 1.464 ms [texture] texture-filter=linear: FPS: 657 FrameTime: 1.524 ms [texture] texture-filter=mipmap: FPS: 624 FrameTime: 1.604 ms [shading] shading=gouraud: FPS: 552 FrameTime: 1.813 ms [shading] shading=blinn-phong-inf: FPS: 564 FrameTime: 1.776 ms [shading] shading=phong: FPS: 475 FrameTime: 2.106 ms [shading] shading=cel: FPS: 460 FrameTime: 2.178 ms [bump] bump-render=high-poly: FPS: 316 FrameTime: 3.165 ms [bump] bump-render=normals: FPS: 742 FrameTime: 1.348 ms [bump] bump-render=height: FPS: 702 FrameTime: 1.425 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 384 FrameTime: 2.611 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 140 FrameTime: 7.158 ms [pulsar] light=false:quads=5:texture=false: FPS: 840 FrameTime: 1.191 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 143 FrameTime: 7.003 ms [desktop] effect=shadow:windows=4: FPS: 443 FrameTime: 2.259 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 151 FrameTime: 6.625 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 150 FrameTime: 6.672 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 204 FrameTime: 4.919 ms [ideas] speed=duration: FPS: 348 FrameTime: 2.877 ms [jellyfish] <default>: FPS: 267 FrameTime: 3.754 ms [terrain] <default>: FPS: 19 FrameTime: 53.146 ms [shadow] <default>: FPS: 335 FrameTime: 2.993 ms [refract] <default>: FPS: 41 FrameTime: 24.529 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 775 FrameTime: 1.290 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 536 FrameTime: 1.867 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 789 FrameTime: 1.268 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 604 FrameTime: 1.658 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 242 FrameTime: 4.143 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 641 FrameTime: 1.562 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 680 FrameTime: 1.471 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 654 FrameTime: 1.529 ms ======================================================= glmark2 Score: 453 ======================================================= warning: queue 0x2ae70c7240 destroyed while proxies still attached: wl_display@1 still attached |
Пакет iozone3 для RISC-V должен быть в репозитории multiverse Ubuntu, но по какой-то причине его не удалось установить, поэтому он был собран из исходников .
Результаты теста iozone3 для SSD:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
jaufranc@milkv-jupiter:~$ sudo 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-arm random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 102400 4 52525 125278 19555 19580 48093 130922 102400 16 167320 304285 67648 67552 134340 302666 102400 512 632286 663143 477102 476316 477093 638264 102400 1024 655691 643179 568294 568699 565905 673773 102400 16384 731995 727859 708685 708860 707722 725903 iozone test complete. |
Результаты тестирования сети.
Для справки приведены результаты iperf3 в полнодуплексном режиме на первом порту Ethernet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
jaufranc@milkv-jupiter:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 --bidir Connecting to host 192.168.31.12, port 5201 [ 5] local 192.168.31.74 port 55990 connected to 192.168.31.12 port 5201 [ 7] local 192.168.31.74 port 55992 connected to 192.168.31.12 port 5201 [ ID][Role] Interval Transfer Bitrate Retr Cwnd [ 5][TX-C] 0.00-10.00 sec 812 MBytes 681 Mbits/sec 0 1.44 MBytes [ 7][RX-C] 0.00-10.00 sec 895 MBytes 751 Mbits/sec [ 5][TX-C] 10.00-20.00 sec 806 MBytes 676 Mbits/sec 0 1.54 MBytes [ 7][RX-C] 10.00-20.00 sec 863 MBytes 724 Mbits/sec [ 5][TX-C] 20.00-30.00 sec 855 MBytes 717 Mbits/sec 0 2.17 MBytes [ 7][RX-C] 20.00-30.00 sec 829 MBytes 695 Mbits/sec [ 5][TX-C] 30.00-40.00 sec 884 MBytes 741 Mbits/sec 0 2.17 MBytes [ 7][RX-C] 30.00-40.00 sec 794 MBytes 666 Mbits/sec [ 5][TX-C] 40.00-50.00 sec 914 MBytes 766 Mbits/sec 0 2.17 MBytes [ 7][RX-C] 40.00-50.00 sec 785 MBytes 659 Mbits/sec [ 5][TX-C] 50.00-60.00 sec 929 MBytes 779 Mbits/sec 0 2.17 MBytes [ 7][RX-C] 50.00-60.00 sec 802 MBytes 673 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID][Role] Interval Transfer Bitrate Retr [ 5][TX-C] 0.00-60.00 sec 5.08 GBytes 727 Mbits/sec 0 sender [ 5][TX-C] 0.00-60.04 sec 5.08 GBytes 726 Mbits/sec receiver [ 7][RX-C] 0.00-60.00 sec 4.86 GBytes 695 Mbits/sec 148 sender [ 7][RX-C] 0.00-60.04 sec 4.85 GBytes 694 Mbits/sec receiver iperf Done. |
WiFi 6 протестирован с iperf3
- Загрузка:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
jaufranc@milkv-jupiter:~$ 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.162 port 41292 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 583 MBytes 489 Mbits/sec [ 5] 10.00-20.00 sec 601 MBytes 504 Mbits/sec [ 5] 20.00-30.00 sec 599 MBytes 502 Mbits/sec [ 5] 30.00-40.00 sec 595 MBytes 499 Mbits/sec [ 5] 40.00-50.00 sec 599 MBytes 503 Mbits/sec [ 5] 50.00-60.00 sec 596 MBytes 500 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.09 sec 3.49 GBytes 499 Mbits/sec 24 sender [ 5] 0.00-60.00 sec 3.49 GBytes 500 Mbits/sec receiver iperf Done. |
- Отправка:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
jaufranc@milkv-jupiter:~$ iperf3 -t 60 -c 192.168.31.12 -i 10 Connecting to host 192.168.31.12, port 5201 [ 5] local 192.168.31.162 port 43912 connected to 192.168.31.12 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-10.00 sec 466 MBytes 391 Mbits/sec 87 844 KBytes [ 5] 10.00-20.00 sec 549 MBytes 460 Mbits/sec 0 1.59 MBytes [ 5] 20.00-30.00 sec 590 MBytes 495 Mbits/sec 0 4.16 MBytes [ 5] 30.00-40.00 sec 585 MBytes 491 Mbits/sec 0 4.16 MBytes [ 5] 40.00-50.00 sec 556 MBytes 467 Mbits/sec 0 4.16 MBytes [ 5] 50.00-60.00 sec 561 MBytes 471 Mbits/sec 0 4.16 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 3.23 GBytes 462 Mbits/sec 87 sender [ 5] 0.00-60.09 sec 3.23 GBytes 461 Mbits/sec receiver iperf Done. |
Бенчмарки SpacemIT K1/M1
Учитывая состояние ПО платы, дополнительные тесты проводиться не будут, но приведены результаты скрипта sbc-bench.sh Томаса Кайзера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
jaufranc@milkv-jupiter:~$ sudo ./sbc-bench.sh -r Starting to examine hardware/software for review purposes... sbc-bench v0.9.67 Installing needed tools: ./sbc-bench.sh: line 2857: [: 1.0: integer expression expected apt-get -f -qq -y install curl git sysstat links mmc-utils smartmontools stress-ng..../sbc-bench.sh: line 2898: [: 1.0: integer expression expected , p7zip 16.02... , 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 (18 minutes elapsed). Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * Too much background activity (%system): 1% avg, 7% max -> https://tinyurl.com/mr2wy5uv * Too much other background activity: 5% avg, 40% max -> https://tinyurl.com/mr2wy5uv Full results uploaded to https://0x0.st/XWqm.bin # Milk-V(M1) Jupiter Tested with sbc-bench v0.9.67 on Sat, 10 Aug 2024 15:09:16 +0700. Full info: [https://0x0.st/XWqm.bin](http://0x0.st/XWqm.bin) ### General information: spacemit socs M1-8571 rev C, SpacemiT K1, Kernel: riscv64, Userland: riscv64 CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 1 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 2 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 3 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 4 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 5 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 6 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 7 0 0 614 1800 rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause 15883 KB available RAM ### Governors/policies (performance vs. idle consumption): Original governor settings: cpufreq-policy0: performance / 1800 MHz (conservative ondemand userspace powersave performance schedutil / 614 819 1000 1229 1600 1800) Tuned governor settings: cpufreq-policy0: performance / 1800 MHz Status of performance related policies found below /sys: /sys/module/pcie_aspm/parameters/policy: default [performance] powersave powersupersave ### Clockspeeds (idle vs. heated up): Before: cpu0 (rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause): OPP: 1800, Measured: 1797 After: cpu0 (rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause): OPP: 1800, Measured: 1797 ### Performance baseline * memcpy: 2636.1 MB/s, memchr: 2297.6 MB/s, memset: 7230.6 MB/s * 16M latency: 240.7 249.8 239.5 249.3 238.5 247.7 255.3 523.6 * 128M latency: 259.0 266.7 276.2 267.8 258.5 266.3 286.5 521.1 * 7-zip MIPS (3 consecutive runs): 7267, 7230, 7326 (7270 avg), single-threaded: 1090 * `aes-256-cbc 25112.86k 29120.83k 30254.17k 30437.97k 30649.00k 30525.41k` * `aes-256-cbc 25418.46k 29242.35k 30219.31k 30666.75k 30656.04k 29807.96k` ### PCIe and storage devices: * NVIDIA GT218 [GeForce 210]: Speed 2.5GT/s, Width x2 (downgraded), driver in use: , ASPM Disabled * 238.5GB "PCIe SSD" SSD as /dev/nvme0: Speed 5GT/s (downgraded), Width x2 (downgraded), 0% worn out, drive temp: 35°C, ASPM Disabled * Gigadevice GD25Q64 8MB SPI NOR flash, drivers in use: spi-nor/k1x-qspi/simple-pm-bus ### Software versions: * Bianbu 1.0.9 (mantic) * Compiler: /usr/bin/gcc (Ubuntu 13.2.0-4ubuntu3-bb2) 13.2.0 / riscv64-linux-gnu * OpenSSL 3.0.10, built on 1 Aug 2023 (Library: OpenSSL 3.0.10 1 Aug 2023) ### Kernel info: * `/proc/cmdline: earlycon=sbi earlyprintk console=tty1 console=ttyS0,115200 loglevel=8 clk_ignore_unused swiotlb=65536 rdinit=/init workqueue.default_affinity_scope=system mtdparts=spi-nor:64K@0(bootinfo),64K@64K(private),256K@128K(fsbl),64K@384K(env),192K@448K(opensbi),-@640K(uboot) root=/dev/nvme0n1p6 rootfstype=ext4` * Kernel 6.1.15 / CONFIG_HZ=250 Kernel 6.1.15 is not latest 6.1.103 LTS that was released on 2024-08-03. See https://endoflife.date/linux for details. It is somewhat likely that a lot of exploitable vulnerabilities exist for this kernel as well as many unfixed bugs. But this version string doesn't matter since this is not an official LTS Linux from kernel.org. This device runs a SpacemiT vendor/BSP kernel. 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 15:09:18: 1800MHz 8.25 22% 0% 20% 0% 0% 0% °C 15:10:18: 1800MHz 4.37 0% 0% 0% 0% 0% 0% °C 15:11:18: 1800MHz 2.91 0% 0% 0% 0% 0% 0% °C ^C |
Оценка в 7270 MIPS заметно выше, чем у Raspberry Pi 4 (около 5400) , но значительно ниже, чем у Raspberry Pi 5 (10930) на стандартных частотах. При 29807.96k хешей в секунду AES явно не реализован, так как это даже медленнее, чем в Raspberry Pi 4, где отсутствуют необходимые инструкции.
Последние официальные тесты представлены в превью версии Geekbench 6.3.0 для архитектуры RISC-V:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
wget https://cdn.geekbench.com/Geekbench-6.3.0-LinuxRISCVPreview.tar.gz tar xvf Geekbench-6.3.0-LinuxRISCVPreview.tar.gz cd Geekbench-6.3.0-LinuxRISCVPreview/ jaufranc@milkv-jupiter:~/Geekbench-6.3.0-LinuxRISCVPreview$ ./geekbench6 Geekbench 6.3.0 Preview : https://www.geekbench.com/ Geekbench 6 for Linux/RISC-V is a preview build. Preview builds require an active Internet connection and automatically upload benchmark results to the Geekbench Browser. System Information Operating System Bianbu 1.0.9 Kernel Linux 6.1.15 riscv64 Model Milk-V(M1) Jupiter Motherboard N/A CPU Information Name rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause Topology 1 Processor, 1 Core, 8 Threads Base Frequency 1.80 GHz Memory Information Size 15.5 GB |
Полные результаты доступны на сайте Geekbench. Эти цифры нельзя использовать для сравнения с другими системами из-за текущего состояния ПО. Но они могут помочь выявить области, требующие оптимизации.
Хотелось бы поделиться последним тестом, так как система все еще кажется медленной, особенно при запуске программ, несмотря на использование NVMe SSD. Например, Chromium открывается за 8–10 секунд. Ощущения больше похожи на Raspberry Pi 2 с microSD, чем на Raspberry Pi 4 с быстрым SSD в текущей версии Bianbu. Уверен, что со временем ситуация улучшится, так как аппаратная часть более производительна.
Потребление энергии
Приведены данные о потреблении энергии в режиме простоя. Сначала при питании материнской платы через разъем 12V DC (с подключенными HDMI и 2x USB для клавиатуры и мыши):
- Простой после первой загрузки – 4.5 Вт
- Простой после подключения к WiFi – 4.7 Вт
Установка платы в корпус со стандартным БП и видеокартой значительно увеличивает энергопотребление:
- Выключенное состояние – 4.6 – 4.7 Вт
- Простой (HDMI, Ethernet, USB мышь/клавиатура/GPU) – 17.8 – 18.4 Вт
- Простой (HDMI, Ethernet, USB мышь/клавиатура/без GPU) – 8.9 Вт
Заключение
Сборка первого мини-ITX компьютера оказалась интересным опытом. Milk-V Jupiter — это достаточно мощная материнская плата формата mini-ITX на RISC-V, и в сравнении с другими системами, которые рассматривались ранее, наблюдается значительный прогресс в программной части. HDMI-выход и аудио работают корректно, реализована поддержка 3D-ускоренной графики, большинство функций платы функционируют без проблем.
Однако использовать её в качестве основного компьютера пока невозможно: Bianbu 1.0.9 на RISC-V работает медленно, аппаратное декодирование видео не функционирует, YouTube-видео стабильно воспроизводятся только в разрешении 480p. Два USB-накопителя, которые были протестированы, не распознались системой. PCIe видеокарта была обнаружена, но не может быть использована из-за отсутствия программной реализации. Также присутствуют менее значительные проблемы: отсутствие данных о температуре CPU, отключенное автоматическое обновление пакетов, отсутствие поддержки AES-шифрования и, вероятно, другие недочеты, которые не были замечены в этом обзоре.
Благодарность Shenzhen Milk-V и Radxa за предоставленные для обзора материнскую плату Jupiter RISC-V mini-ITX и корпус Auriga 6-bay NAS. Материнскую плату Jupiter RISC-V можно приобрести на Arace от $59.99 и выше (но сейчас отсутствует в наличии), корпус Auriga продается примерно за $100 на Aliexpress , а БП на 350W, использованный в обзоре, доступен примерно за $100 на Aliexpress .
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.