SMARC-R Быстрый старт
Модуль отладочный ELV-MC03-SMARC-R (RockPI N10) на основе СнК СКИФ.
В этой статье будет рассмотрен базовый и ознакомительный сценарий использования отладочного модуля.
В комплект поставки входят:
- Этикетка.
- Комплект ELV-SMARC-R. Он уже собран и готов к работе. Комплект состоит из трёх основных частей:
- Mодуль ELV-RPN10. Это отладочная плата ROCK Pi N10 с нашими доработками.
- На плату ROCK-Pi установлен модуль ELV-MC03-SMARC.
- Поверх смарка утановлена система охлаждения.
- Адаптер USB-UART.
- Кабель USB Type-C.
- Блок питания USB Type-C.
- Карта памяти microSD.
Первый запуск модуля
Прежде всего необходимо подключить модуль к компьютеру по UART. Для этого нужно подключить провода кабеля USB-UART к пинам 6, 8 и 10, как показано здесь. Красный провод подключать не нужно.
При подключении адаптера USB-UART к компьютеру он должен определиться в диспетчере устройств среди
COM-портов (Windows) или как устройство вида /dev/ttyUSBn (Linux). Если плата не определяется,
то, вероятнее всего, вам нужно установить драйвер преобразователя USB-UART. Обычно это драйвер от
Silabs, Prolific либо FDTI.
После того, как плата определилась, можно подключаться к ней по UART. Для этого открыть эмулятор терминала (например PuTTY или minicom).
Подключить в HDMI разъем монитор, USB клавиатуру и мышь, Ethernet-кабель (опционально)
При подаче питания сразу же стартует U-Boot и начинает загрузку Linux.
Наши модули поставляются с уже прошитыми в память eMMC образом ALT Linux.
По окончанию загрузки на монитор по HDMI выводится интерфейс xfce4 ALT Linux.
[elvees@skif ~]$ cat /etc/os-release
NAME="Simply Linux"
VERSION="9.1 (Destiny)"
ID=altlinux
VERSION_ID=9.1
PRETTY_NAME="Simply Linux 9.1 (Destiny)"
ANSI_COLOR="1;36"
CPE_NAME="cpe:/o:alt:slinux:9.1"
HOME_URL="https://www.basealt.ru/products/simplylinux/"
BUG_REPORT_URL="https://bugs.altlinux.org/"
[elvees@skif ~]$ uname -a
Linux skif 4.19.106 #1 SMP Wed Mar 22 02:22:37 UTC 2023 aarch64 GNU/Linux
Обновление Linux
Модуль прошивается текущим на момент отгрузки образом AltLinux. Но может возникнуть необходимость запустить на модуле более новую (или другую) версию Linux.
Для SMARC доступны два варианта дистрибутивов:
- Buildroot
- AltLinux
Исходники и образы лежат тут - https://dist.elvees.com/mcom03/
Buildroot собирается на ПК и полученный образ загружается на uSD или eMMC. Модификация образа (установка доп пакетов или модулей ядра) местами невозможна или затруднительна. Необходимые пакеты и модули конфигурируются на этапе сборки.
Обратите внимание на версии вида 2023-03 и т.п.
Загрузка Linux выполняется по следующей схеме:
POWER_ON --> BootROM --> SBL(U-Boot) --> Linux (подробнее bootflow)
SBL и Linux должны быть из одного выпуска и одной версии (например оба Alt 2023-03 и Buildroot).
Образ QSPI mcom03-rockpi-sbl-*.bin идентичен sbl.bin
Если версия sbl не соответствует версии Linux, могут возникать проблемы, самые частые из них:
- Uboot не может найти и правильно загрузить
extlinux.conf. - Linux не получает IP адрес по DHCP.
- Самопроизвольные перезагрузки.
- Не стартует драйвер DSP.
Прошивка QSPI-flash
Для прошивки QSPI образом sbl.bin используется утилита
mcom03-flash-tools.
Инструкция по использованию в README.
Краткий порядок действий:
- Снять джампер с 25-26 контактов.
- Подключить плату к ПК через USB-UART.
- Получить образ для прошивки
sbl.bin- Он собирается вместе с Linux в Buildroot либо его можно скачать с dist. - Включить питание и прошить модуль командой из инструкции выше.
- Отключить питание и установить перемычку.
Прошивка Linux на uSD
Для прошивки microSD образом Linux используется утилита tar2dev.
Подробное руководство тут - https://dist.elvees.com/mcom03/docs/linux-sdk/latest/components/buildroot.html#sd.
Прошивка Linux на USB-накопитель
Прошивка выполняется аналогично как на uSD, с учтом следующего:
При подключении нескольких USB-накопителей, в U-Boot нет возможности установить приоритет к онкретного накопителя. Загрузка произойдет с накопителя, который проинициализировался раньше остальных.
Параметр ROOT для утилиты tar2dev рекомендуется не указывать совсем.
В этом случае будет автоматически сгенерирован PARTUUID и подставлен в команду запуска ядра.
Запуск модуля после изменений
- Нужно убедиться, что перемычка 25-26 УСТАНОВЛЕНА.
- Подключить USB-UART.
- Включить питание модуля.
- В UART консоль должна начать показываться загрузка.
В QSPI памяти есть область под прошивку и область под переменные окружения (ENV).
При перепрошивки QSPI утилитой mcom03-flash область ENV не перезаписывается и данные в ней остаются прежними. Из-за этого при запуске могут возникнуть другие ошибки:
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
Reading file would overwrite reserved memory
Failed to load '/boot/extlinux/extlinux.conf'
Error reading config file
SCRIPT FAILED: continuing...
"Synchronous Abort" handler, esr 0x96000005
В таком случает надо выполнить сброс ENV (записываются дефолтные значения из прошивки)
- Перезагрузить плату.
- Зайти в консоль u-boot.
- Выполнить:
env default -asaveenvboot.