MCom-03 (СКИФ) ALT Linux 2022.06¶
Обзор¶
MCom-03 ALT Linux — сборка операционной системы ALT Linux с поддержкой модулей на базе микросхемы 1892ВА018 (aka СКИФ, aka MCom-03). При включении питания модуля запускается рабочее окружение Xfce с выводом на HDMI-монитор. Управление ОС выполняется через терминал или через мышь, клавитуатуру, подключенные к модулю.
Пользователи ОС:
пользователь elvees, пароль elvees,
суперпользователь: root, пароль elvees.
Поддерживаемые модули:
ROCK Pi N10 с установленным ELV-MC03-SMARC r1.1,
ТрастФон_ОПН r1.0 с установленным ТрастФон_ПМ r1.0.
Примечания к выпуску¶
2022.06¶
Важно
Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI и eMMC/SD-карты модуля.
Образ флеш-памяти QSPI0 и ядро Linux бинарно идентичны Buildroot 2022.06. Список изменений в компонентах см. https://dist.elvees.com/mcom03/docs/linux-sdk/latest/release-notes.html#release-2022-06.
Сборка ALT Linux не содержит GStreamer-компонентов.
2022.03¶
Важно
Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI и eMMC/SD-карты модуля.
Общие изменения:
Вместо образа SD-карты теперь распространяется архив корневой файловой системы. Преимущества: отсутствует неразмеченная область на SD-карте после прошивки, прошивка выполняется быстрее в разы (не записывается неиспользуемая область файловой системы на SD-карту). Для прошивки используется утилита
tar2dev
, утилита распространяется в составе сборки ОС. Обновлена глава Прошивка SD-карты.Исправлена ошибка при установке пакетов (заменены неверные версии
/usr/lib/libdrm.so.2
иmodetest
):/usr/lib/libdrm.so.2: /lib64/libm.so.6: version /'GLIBC_2.29/' not found (required by /usr/lib/libdrm.so.2)
Разделы boot и root объединены в один.
Изменения в ядре Linux:
Улучшена поддержка runtime power management: ядро выключает частоты DSP, VPU если блоки не используются пользовательскими процессами.
Улучшена поддержка pinctrl: пады прерывания HDMI теперь настраиваются в ядре (вместо U-Boot).
Исправлена ошибка переполнения чтения температуры в драйвере PVT mr75202.
Добавлена поддержка I2C4.
Добавлена поддержка DSI-дисплеев совместимых с ROCK Pi N10: Raspberry Pi 7" DSI, Raspberry Pi Waveshare 4.3" DSI.
Увеличен таймаут обнаружения PCIe-устройств.
ТрастФон-Э: Управление HDMI перенесено на I2C4.
В
mcom03_defconfig
включена поддержка Docker, systemd, UBI/SquashFS, GPIO LED.
Изменения в инициализаторе DDR ddrinit:
Повышена частота LPDDR4 с 1066 до 2133 MT/s.
Добавлена поддержка низких частот до 66 MT/s.
Состав сборки¶
Файлы сборки MCom-03 ALT Linux размещены на сайте https://dist.elvees.com/mcom03/altlinux/2022.06. Состав сборки:
mcom03-altlinux-rootfs-....tar.gz
— архив корневой файловой системы для модуля ROCK Pi N10 с установленным ELV-MC03-SMARC r1.1, вextlinux.conf
настроено монтирование rootfs с eMMC;mcom03-rockpi-sbl-....bin
— образ QSPI0 для модуля ELV-MC03-SMARC r1.1;mcom03-trustphonepm-sbl-....bin
— образ QSPI0 для модуля ТрастФон_ПМ r1.0.tar2dev
— утилита для распаковки архива корневой файловой системы на блочное устройство.
Примечание
Возможен запуск образов SD-карты на других модулях на базе MCom-03: после
прошивки SD-карты необходимо изменить устройство для загрузки корневой файловой системы
(параметр ядра root
в файле extlinux.conf
).
Корневая файловая система¶
Корневая файловая система mcom03-altlinux-rootfs-....tar.gz
ALT Linux разработана следующим
образом:
Установлен ALT Linux P9 из образа slinux-9.1-aarch64.tar.xz (при установке созданы пользователи, настроен часовой пояс и т.д.).
Добавлены файлы:
/boot/extlinux/extlinux.conf
— конфигурационный файл схемы U-Boot GenericDistro./boot/Image
— образ ядра Linux./boot/elvees/*.dtb
— файлы для поддерживаемых модулей и комбинаций с подключенными устройствами (CSI-камера, DSI-дисплей и т.д.)./lib/modules/*
— модуля ядра Linux./usr/bin/modetest
— стандартное приложение вывода шаблона на HDMI-монитор./usr/bin/mcom03-demo-video.sh
— скрипт вывода видеофайла на HDMI-монитор без X-сервера./usr/sbin/mcom03-pixclk-pll-restart.sh
— скрипт перезапуска PLL3 подсистемы Media MCom-03./usr/sbin/mcom03-hdmi-setup.sh
— скрипт-обёртка перезапуска PLL3, скрипт опрашивает подтверждения стабильности вывода видео на HDMI-монитор (подробнее см. Поддержка HDMI)./usr/sbin/devmem
— бинарная утилита-аналог утилиты devmem из BusyBox./usr/share/pixmaps/gradient.png
— изображение для проверки стабильности вывода на HDMI-монитор.
Из стандартных репозиториев ALT Linux установлены дополнительные пакеты (mpv).
Установлен пакет МойОфис
myoffice-standard-documents-2020.03.1.25.0-0.aarch64.rpm
.На рабочем столе созданы ярлыки для запуска приложений Firefox, mpv, МойОфис,
mcom03-hdmi-setup.sh
.
Исходные коды¶
Репозитории с исходными кодам базовых компонентов (arm-trusted-firmware, ddrinit, mcom03-sbl, U-Boot, Linux) доступны на https://github.com/elvees.
Версии базовых компонентов, из которых собраны бинарные образы, перечислены в файле
git-info.json
в директории образов Buildroot (версия Buildroot приведена в release-notes).
Поддержка HDMI¶
При включении/сбросе СнК видео на HDMI может не выводиться или выводиться испорченным.
Для перезапуска HDMI требуется перезапуск процессора или перенастройка PLL СнК. Перенастройка PLL
выполняется скриптом mcom03-hdmi-setup.sh
(установлен в ОС).
Поддержка DDR¶
LPDDR4 1066 МГц (2133 MT/s), из-за ограничений ПО в Linux доступно суммарно 2 ГБ.
Обзор загрузки ОС (boot flow)¶
MCom-03 запускается в режиме QSPI0 XIP. Память QSPI0 содержит образы SBL, ddrinit, TF-A, U-Boot.
SD-карта содержит ядро, DTB, extlinux.conf
, подробнее см. rootfs.
U-Boot поддерживает загрузку Linux по схеме Generic Distro с использованием файла
extlinux.conf
:
U-Boot перебирает источники загрузки SDMMC0, SDMMC1, USB (порядок может отличаться в зависимости от используемой версии U-Boot),
U-Boot запускает ядро в соответствии с первым обнаруженным
extlinux.conf
(копирует DTB и ядро в ОЗУ, передаёт управление ядру).
Последовательность загрузки приведена на диаграмме:
Последовательность загрузки Linux (в скобках указан источник исполнения)¶
Поддержка ELV-MC03-SMARC r1.1¶
В ОС Linux поддерживаются следующие интерфейсы и компоненты модуля:
HDMI, поддерживается только видео, см. Поддержка HDMI,
eMMC (SDMMC0),
I2C0,
I2C1,
I2C2,
I2C3,
GBE0,
GBE1,
MIPI DSI,
PCIe A 4x (PCIe1),
SATA (SATA-контроллер подключен к контроллеру PCIe0 MCom-03),
SDIO (SDMMC1),
Serial I2C EEPROM (I2C2),
SER0,
SER1 (UART0),
SER2,
SER3,
USB0, USB1, USB2, USB4, USB5 поддерживается USB 2.0 (USB1 с поддержкой хаба),
USB3 поддерживается USB 3.0 (USB0).
Примечание:
Наименования интерфейсов приведены в соответствии со спецификацией SMARC 2.1.
В скобках указаны контроллеры MCom-03.
Прошивка eMMC¶
Память eMMC доступна как стандартное блочное устройство Linux /dev/mmcblk0p2
. eMMC может
прошиваться тем же образом, что и SD-карта.
Для прошивки достаточно:
загрузить Linux с карты памяти SD;
скопировать
rootfs.tar.gz
для прошивки eMMC на SD-карту;прошить eMMC утилитой
tar2dev
(см. howto-flash-sd);обновить корневую файловую систему в
extlinux.conf
на eMMC.
Поддержка ROCK Pi N10¶
В ОС Linux поддерживаются следующие интерфейсы и компоненты модуля:
Ethernet,
HDMI, поддерживается только видео, см. Поддержка HDMI,
I2C0,
I2C1,
I2C2,
I2C3,
DSI, поддерживается модуль
microSD (подключен к SDIO SMARC-модуля),
PCIe M.2 (подключен к PCIe_A 4x SMARC-модуля),
UART2 (подключен к SER1 SMARC-модуля),
USB 2.0 (2 порта),
USB 3.0 (1 порт).
Запуск ОС¶
Для запуска ОС необходимо:
Установить джампер режима Boot 0 (QSPI0).
Подключить переходник USB-to-UART к UART2 модуля (пример подключения), подключить переходник к ПК.
Подключить HDMI-дисплей к модулю.
Подключить блок питания USB type C.
На ПК открыть терминал, залогиниться (пользователь/пароль — см. intro).
Если на HDMI-дисплей не выводится видео, выполнить перезапуск HDMI, см. Поддержка HDMI.
Инструкции¶
Прошивка SD-карты¶
Прошивка SD-карты выполняется на ПК или на устройстве (при условии загрузки c eMMC):
Определить имя устройства SD-карты на ПК (извлечь SD-карту из считывателя карт ПЭВМ, считать список устройств командой
ls -la /dev/sd*
, установить SD-карту в ПК, повторно считать список устройств, обнаружить новое устройство/dev/sdX
).Записать архив корневой файловой системы на SD-карту с помощью утилиты
tar2dev
(утилита входит в состав сборки, см. firmware):sudo ./tar2dev mcom03-altlinux-rootfs-....tar.gz /dev/sdX
Для загрузки с SD-карты в
extlinux.conf
SD-карты требуется изменить путь до корневой файловой системы:root=/dev/sda1
— на модуле ТрастФон_ПМ,root=/dev/mmcblk1p1
— на модуле ELV-MC03-SMARC.
Утилита tar2dev
поддерживает опции и переменные для конфигурации файловой системы
при записи на блочное устройство. Пример создания SD-карты с установкой раздела root, fdt
в extlinux.conf
и имени хоста устройства:
ROOT=/dev/mmcblk1p1 FDT=board.dtb tar2dev -n newhostname rootfs.tar.gz /dev/sdX
Подробнее см. tar2dev -h
.
Прошивка QSPI-памяти¶
Прошивка QSPI-памяти выполняется с ПК. Python-пакет утилит для прошивки QSPI-памятей mcom03-flash-tools и инструкция по прошивке расположены по адресу https://github.com/elvees/mcom03-flash-tools.
Образы прошивок для QSPI-памятей соответствующих модулей перечислены в Состав сборки.