Практический опыт работы с одноплатным компьютером StarFive VisionFive 2 на архитектуре RISC-V под управлением Debian 12

Компания StarFive предоставила для тестирования и обзора одноплатный компьютер VisionFive 2 на RISC-V . В распоряжении оказалась модель с двумя портами Gigabit Ethernet и 8 ГБ оперативной памяти. В этом материале представлен опыт работы с образом Debian 12 “bookworm”. Стоит отметить, что это не полноценный обзор, поскольку плата на текущем этапе не готова для всесторонней оценки. Она ориентирована на ранних последователей, и существует множество нерешенных проблем. В статье описано, что работает, а что нет, а также сложности, возникшие при установке ОС…

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

Плата поставляется в упаковке с надписью “Embrace change, embrace the future”.

StarFive VisionFive 2 SBC package

На нижней стороне коробки размещены полезные ссылки и QR-коды. Наиболее важными являются репозиторий на GitHub с исходным кодом и инструкциями по сборке образа (рекомендуется Ubuntu 16.04, 18.04 или 20.04 x86_64), а также раздел форума RVspace, посвященный этой плате , где можно найти руководства по началу работы и отзывы других пользователей.

VisionFive 2 community GitHub

Компоновка платы и компоненты выглядят точно так же, как и при запуске на Kickstarter, за исключением того, что данная плата имеет версию VisionFive 2 V1.3B.

StarFive JH7110 RISC-V SBC

В центре расположен четырехъядерный процессор StarFive JH7110 на архитектуре RISC-V, микросхема оперативной памяти BIWIN BWMZCX32H2A-64G объемом 8 ГБ, мост VL805 PCIe to USB 3.0 (аналогичный используемому в Raspberry Pi 4), два трансивера Gigabit Ethernet MotorComm YT8531C и PMIC AXP15060. Все основные порты выведены на одну сторону: 3.5-мм аудиоразъем, четыре порта USB 3.0, выход HDMI 2.0 и два порта Gigabit Ethernet.

StarFive VisionFive 2 eMMC flash module M.2 socket

На нижней стороне расположен слот для карт MicroSD, который используется для загрузки ОС, разъемы для модуля eMMC и слот M.2 для NVMe SSD.

Установка Debian 12 на VisionFive 2

Образы Debian доступны на сайте StarFive с ссылками на Baidu Drive или Google Drive. Последний на данный момент образ — Image-69, выпущенный в конце декабря.

Несжатый образ не помещался на карту MicroSD объемом 8 ГБ, поэтому использовалась карта на 32 ГБ, процесс записи занял около 45 минут. Вероятно, карта скоро выйдет из строя, и придется приобретать новую партию. Постоянная трата времени на карты памяти, которые служат всего несколько месяцев, — одна из причин, по которой не нравятся платы, загружающиеся только с MicroSD

StarFive VisionFive 2 review

Затем были подключены USB-клавиатура, USB-мышь, кабель Ethernet и блок питания с разъемом USB Type-C. Сначала использовался адаптер 5В/2А, но этого оказалось недостаточно — плата постоянно перезагружалась. Блок питания Raspberry Pi 5В/3А также не справился, поэтому был взят GaN-адаптер на 100 Вт, чтобы исключить проблемы с питанием. Также были добавлены проставки для приподнимания платы, как рекомендуется.

Однако плата не загружалась, и в анонсе Image 69 на форуме было обнаружено объяснение:

Перед использованием этого образа Debian необходимо обновить SPL 46 и U-Boot 44 в соответствии с руководством: глава 4.3 77 . Это очень важно.

Поиск нужной документации занял некоторое время, поскольку она разбросана по разным источникам на китайском и/или английском языках. Лучшим вариантом оказалась страница статуса публикации документов с англоязычной документацией. Вход через SSH возможен, но учитывая вероятность проблем с загрузкой, рекомендуется подключить отладочную плату с последовательным интерфейсом — именно так была обнаружена проблема с циклической перезагрузкой, упомянутая выше.

VisionFive 2 Serial Console

Перед установкой Debian 12 необходимо обновить загрузчики SPL и U-boot на VisionFive 2, а также использовать минимальный образ Linux sdcard.img. Эти файлы можно найти на GitHub , использовались файлы из состава VisionFive2 Software v2.8.0. Первым шагом была запись образа sdcard.img на карту MicroSD. Этот образ помещается на карту объемом 8 ГБ.

Войти в систему можно под именем пользователя “root” и паролем “starfive”. Для любознательных приведен журнал загрузки .

Проверим подключение к сети:

Все в порядке. Теперь можно загрузить последние версии бинарных файлов SPL и U-boot с GitHub и передать их на плату через SCP с хостовой машины:

В терминале VisionFive 2 проверим разделы:

Все выглядит правильно, обновим бинарный файл SPL с помощью утилиты flashcp:

а затем U-boot:

Выключите плату VisionFive 2 и замените карту MicroSD на ту, где записан образ Debian 12. Образ удалось “успешно” загрузить.

Первая загрузка заняла более 3 минут, поэтому потребуется терпение:

Последующие загрузки происходят быстрее — около 90 секунд.

Еще одна проблема: экран телевизора остается черным, хотя телевизор определяет подключение кабеля HDMI, а в последовательной консоли фиксируется активность, связанная с HDMI:

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

Пришлось взять карту из камеры наблюдения и заказать пять карт MicroSD класса A1 для будущих обзоров…

После этого загрузка прошла нормально, но проблема с черным экраном HDMI сохранилась. Вероятная причина:

Произошла ошибка сегментации… У других пользователей возникала аналогичная проблема: либо черный экран с указателем мыши, либо без него. Сообщается, что это связано с отсутствием поддержки дисплеев 4K, и проблему можно обойти, принудительно установив разрешение 1920×1080 в конфигурации lightdm (/etc/lightdm/lightdm.conf), добавив следующую строку в раздел [Seat:*]:

Мои дисплеи уже работают с разрешениями 1920×1080 или 1280×800, но это не помогло. Был создан пост на форуме , где можно следить за развитием ситуации.

В этой части обзора VisionFive 2 тестирование ограничено работой в headless-режиме. Вторая часть, вероятно, будет написана после выхода нового образа Debian, когда станет доступен графический интерфейс.

Информация о системе VisionFive 2

Системную информацию можно проверить с помощью нескольких команд:

Все компоненты определяются корректно: четырехъядерный процессор JH7110, 8 ГБ оперативной памяти, карта SD на 32 ГБ, а также драйверы для дисплея, аудио и Ethernet.

Тестирование возможностей VisionFive 2

Из-за проблем с выводом изображения тестирование HDMI и других графических функций с этим образом невозможно, но можно проверить работу в headless-режиме.

GPIO

GPIO отображаются в sysfs:

Попробуем переключить GPIO 44 (контакт 40 на разъеме GPIO):

Мультиметр показал 3.27 В при измерении между контактами 40 и 39. Установим значение в ноль:

Мультиметр показывает 0.00 В. GPIO работает корректно. В документации описано использование интерфейсов I2C, SPI, PWM и UART.

Ethernet

Протестируем два порта Gigabit Ethernet с помощью iperf3, установленного через apt.

LAN1 (на краю платы):

  • Отправка:

  • Загрузка:

  • Полнодуплексный режим (двунаправленный):

Результаты идеальны в обоих направлениях, хотя и ниже максимальных в полнодуплексном режиме. Они схожи с результатами на некоторых Arm-платформах, таких как Khadas VIM4 SBC .

LAN2 (рядом с портом HDMI):

  • Загрузка:

  • Отправка:

Полнодуплексный режим:

Результаты практически идентичны другому порту Ethernet, что также можно считать успешным…

Хранилище M.2 NVMe

В слот M.2 на нижней стороне платы была установлена SSD Apacer M.2 2280 PCIe Gen3 x4 объемом 256 ГБ (AS2280P4), которая определилась корректно:

iozone3 недоступен через apt, поэтому пришлось загрузить его и собрать из исходного кода:

В Makefile нет опции для RISC-V, поэтому сначала была попытка использовать “make linux”, но сборка завершилась ошибкой при линковке. Команда “make linux-arm” завершилась успешно, поэтому использовалась она…

SSD должна обеспечивать скорость чтения до 1800 МБ/с и записи до 1100 МБ/с. При 169 МБ/с и 158 МБ/с это совершенно неприемлемо. Ранее этот накопитель тестировался с скоростью 1100 МБ/с при подключении через ORICO Thunderbolt/USB к мини-ПК на Intel . Повторный тест на VisionFive 2 показал такие же низкие скорости.

Для справки приведен вывод lscpi:

Скорость соединения не отображается, но при проверке более подробного вывода видно:

На данный момент это можно считать неудачей, поскольку производительность слишком низкая.

USB

Плата была выключена, NVMe SSD извлечен из слота M.2 и помещен в упомянутый выше корпус ORICO. После подключения SSD через USB и загрузки платы

вывод lsusb выглядит следующим образом (с корпусом, клавиатурой и мышью):

Запустим iozone:

Результаты странно близки к тем, что были получены при подключении через M.2: 173 МБ/с записи и 152 МБ/с чтения… Для порта USB 3.0 на 5 Гбит/с ожидались значения около 300–400 МБ/с. Возможно, iozone3 требует оптимизации для RISC-V, хотя это маловероятно.

Аудиоразъем

Хотя тестирование аудио через HDMI сейчас невозможно, можно проверить работу 3.5-мм аудиоразъема, подключив колонки, питающиеся от одного из USB-портов платы. USB используется только для питания, звук поступает через аудиоразъем.

VisionFive 2 speakers

Для воспроизведения лицензионно-свободного MP3 использовался предустановленный ffplay:

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

Добавим комментарий о карте MicroSD. Используемые карты обладают низкой производительностью при случайных операциях ввода-вывода, но с ними можно работать на Raspberry Pi и других одноплатниках без особых трудностей. Однако с образом Debian 12 на VisionFive 2 даже простые команды в терминале выполняются очень медленно — например, “ls” в корневом каталоге может занять 10 секунд.

Также приходится ждать около 5–10 минут после появления приглашения “starfive login: root”, прежде чем можно начать вводить команды. Использование более производительной карты MicroSD или модуля eMMC, безусловно, помогло бы, но очевидно, что образ Debian также требует оптимизации в этом отношении.

Бенчмарки SBC Bench

Обычно для оценки производительности одноплатных компьютеров и мини-ПК используется скрипт sbc-bench.sh. RISC-V — довольно новая платформа, поэтому больших надежд на его бесперебойную работу не было, но попытка все же была предпринята.

Информационная часть работает хорошо. Наблюдается высокая активность и операции ввода-вывода, поскольку в другом окне терминала устанавливается пакет.

Но даже в режиме простоя SBC bench не запускается из-за высокой загрузки процессора:

Также есть два других предупреждения. Первое связано с тем, что скрипт не тестировался на еще не выпущенной Debian 12 “Bookworm”. Второе вызвано тем, что вывод dmesg обрезан и не начинается с 00:00. Перезагрузка не производилась, так как полный цикл загрузки до момента появления приглашения командной строки занимает около 8 минут. Отключим проверку средней загрузки процессора и перезапустим скрипт, чтобы посмотреть, как далеко он пройдет:

Пакет 7-zip отсутствует в репозитории Debian RISCV64, и для работы на плате VisionFive 2 его пришлось бы собирать из исходного кода. На данный момент запуск SBC Bench без пропуска некоторых тестов невозможен. Вернемся к этому вопросу через несколько месяцев.

Заключение

На текущем этапе StarFive VisionFive 2 следует рассматривать как плату для разработки на RISC-V, и она не подходит для интеграции в проекты/продукты до дальнейшего прогресса в разработке программного обеспечения. Поскольку Linux для RISC-V все еще довольно нов, особенно с точки зрения видео/графики, это ожидаемо. Уже работают такие функции, как Gigabit Ethernet, GPIO, аудиоразъем и USB, но другие, такие как HDMI и производительность хранилища, требуют значительной доработки. Также необходимо улучшить стабильность системы — SSH-соединение несколько раз разрывалось, и не удавалось переподключиться, а последовательная консоль не работала, что требовало жесткой перезагрузки. Однако на форуме наблюдается активность, и компания работает над включением поддержки в основную ветку ядра Linux.

Благодарим StarFive за предоставленную плату. Разработчики, желающие помочь с программным обеспечением и/или тестированием, могут приобрести рассмотренную здесь плату VisionFive 2 за $70.40 плюс доставка (и, возможно, налоги). Также плата предлагается на Amazon за $112 с Wi-Fi.

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

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

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

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

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