MCom-03 (СКИФ) ALT Linux¶
Обзор¶
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,
ELV-SMARC-CB r1.0 с установленным ELV-MC03-SMARC r1.1,
ELV-SMARC-CB r2.10.3 с установленным ELV-MC03-SMARC r1.1.
Состав сборки¶
Файлы сборки MCom-03 ALT Linux размещены в соответствующей директории https://dist.elvees.com/mcom03/altlinux/. Состав сборки:
efi-part/
— файлы поддержки загрузки по UEFI, подробнее см. Поддержка UEFI;repo/
— директория с RPM-репозиторием релиза, подробнее см. RPM-репозитории;sources.list.d/
— директория со стандартными list-файлами описания RPM-репозиториев, подробнее см. RPM-репозитории;mcom03-altlinux-p10-rootfs.tar.gz
— архив корневой файловой системы для модуля ROCK Pi N10 с установленным ELV-MC03-SMARC r1.1;mcom03-altlinux-p10-rootfs.txt
— список всех файлов архиваmcom03-altlinux-p10-rootfs.tar.gz
;sbl/sbl-xip-mcom03-*.bin
— образы SPI для загрузки в режиме QSPI0 XIP для соответствующих модулей;packages-all.txt
— список всех пакетов из rootfs;packages-elvees.txt
— список пакетов из rootfs, разработанных в компании;tar2dev
— утилита для распаковки архива корневой файловой системы на блочное устройство;tar2dev-uefi
— утилита для распаковки архива корневой файловой системы на блочное устройство в режиме UEFI.
Примечание
Возможен запуск образов SD-карты на других модулях на базе MCom-03: после
прошивки SD-карты необходимо изменить устройство для загрузки корневой файловой системы
(параметр ядра root
в файле extlinux.conf
).
Корневая файловая система¶
Корневая файловая система mcom03-altlinux-p10-rootfs.tar.gz
разработана следующим образом:
Установлен ALT Linux P10 из образа slinux-10.1-aarch64.tar.xz (при установке созданы пользователи, настроен часовой пояс и т.д.).
Установлены RPM-пакеты поддержки микросхемы (фактический список пакетов см. packages-elvees.txt в Состав сборки:
devmem
dmabuf-exporter-mcom03
elcore50-mcom03
elcorecl
elcorecl-extra
elcorenn
elcorenn-examples
felix-mcom03
gst-felix
gst-omx
kernel-image-mcom03
kernel-modules-dmabuf-exporter-mcom03
kernel-modules-elcore50-mcom03
kernel-modules-felix-mcom03
kernel-modules-sensor-phy-mcom03
kernel-modules-vpu-mcom03
mcom03-demo
mcom03-dsp-kernels
mcom03-linux-utils
mcom03-vpu-libs
sensor-phy-mcom03
vpu-modules-mcom03
Добавлен systemd-сервис
set-hostname
, который генерирует имя хоста из названия модуля и серийного номера из device-tree. Подробнее см. главу «Установка имени хоста» в документации на Buildroot.
RPM-репозитории¶
Различают следующие репозитории:
- Апстрим-репозиторий ALT Linux P10 aarch64
http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/branch/aarch64/
Важно
rootfs релиза тестировался с дополнительными пакетами из апстрим-репозиториев ALT Linux, дополнительные пакеты не входят в репозиторий релиза.
На момент фактического использования релиза в апстрим-репозиториях ALT Linux пакеты могут обновиться до такого состояния, что будет нарушена бинарная совместимость с пакетами поддержки микросхемы (например, обновлена базовая версия GStreamer).
- latest-репозитории поддержки микросхемы (совместимы с ALT Linux P10)
http://dist.elvees.com/mcom03/altlinux/repo/p10/common/latest — пакеты пространства пользователя независящие от версии ядра Linux.
Директория
RPMS.contrib/
содержит пакеты:пакеты доступные в апстриме, но незначительно исправленные c применением патчей,
прочие пакеты публичных проектов, недоступные в апстрим-репозиториях, используются для внутреннего применения.
http://dist.elvees.com/mcom03/altlinux/repo/p10/linux-5.10/latest — пакеты образа и модулей ядра.
Пакеты в latest RPM-репозиториях обновляются после принятия коммитов в соответствующие репозитории с исходными кодами (пакеты модулей ядра пересобираются после обновления ядра).
Подключение репозиториев (списки репозиториев могут отсутствовать в выпускаемом rootfs):
sudo wget --directory-prefix=/etc/apt/sources.list.d \ http://dist.elvees.com/mcom03/altlinux/2024.06/sources.list.d/elvees.list
Примечание
Устаревшие RPM-пакеты в latest-репозиториях автоудаляются.
Примечание
Требуется использовать протокол http вместо https в list-файлах для apt-get.
- Репозиторий релиза
rootfs релиза дистрибутива содержит набор RPM-пакетов, содержащихся на момент сборки образа в latest-репозиториях. Для каждого релиза MCom-03 ALT Linux дополнительно публикуется репозиторий релиза, содержащий RPM-пакеты с исходными кодами (*-src.rpm), отладочной информацией (*-debuginfo.rpm) и файлами разработки (*-devel.rpm). В rootfs релиза данные пакеты не установлены.
Репозиторий релиза содержится в составе директории релиза. Пример подключения репозитория соответствующего релиза (выполнять в ОС на модуле):
sudo wget --directory-prefix=/etc/apt/sources.list.d \ http://dist.elvees.com/mcom03/altlinux/2024.06/sources.list.d/elvees-2024.06.list
Исходные коды¶
Репозитории с исходными кодам базовых компонентов (arm-trusted-firmware, ddrinit, mcom03-sbl, U-Boot, Linux) доступны на https://github.com/elvees.
Версии базовых компонентов, из которых собраны бинарные образы, перечислены в файле
git-info.json
в директории образов Buildroot (версия Buildroot приведена в
Примечания к выпуску).
Поддержка HDMI¶
При включении/сбросе СнК видео на HDMI может не выводиться или выводиться испорченным.
Для перезапуска HDMI требуется перезапуск процессора или перенастройка PLL СнК. Перенастройка PLL
выполняется скриптом mcom03-hdmi-setup.sh
(установлен в ОС).
Поддержка DSP¶
В RPM-репозиториях доступен пакет тулчейна Elcore-50 DSP elcore50-toolchain
. По умолчанию
тулчейн не устанавливается в rootfs релизов.
Подробнее про использование тулчейна см. https://dist.elvees.com/elcorecl/docs/.
Поддержка GPU¶
В дистрибутиве отсутствуют драйверы GPU.
Поддержка VPU¶
В дистрибутиве добавлены GStreamer-плагины поддержки VPU. Возможен запуск конвейеров GStreamer. Аппаратно ускоренное декодирование видео в плейерах ffplay, vlc, браузерах не поддерживается из-за отсутствия драйверов GPU.
Поддержка аудио¶
В зависимости от модуля может требоваться дополнительная настройка ALSA.
Для включения микрофона на модуле ROCK Pi N10 выполнить:
amixer -c 1 sset "Differential Mux" "lin2-rin2 with 20db Boost"
Поддержка UEFI¶
Для поддержки загрузки по UEFI используются файлы efi-part
и скрипт прошивки
tar2dev-uefi
, инструкции по прошивке файлов см. главу «Загрузка ОС по UEFI» в документации
на Buildroot.
Инструкции¶
Запуск ОС на ROCK Pi N10¶
Для запуска ОС необходимо:
Установить джампер режима Boot 0 (QSPI0).
Подключить переходник USB-to-UART к UART2 модуля (пример подключения), подключить переходник к ПК.
Подключить HDMI-дисплей к модулю.
Подключить блок питания USB type C.
На ПК открыть терминал, залогиниться (пользователь/пароль — см. Обзор).
Если на HDMI-дисплей не выводится видео, выполнить перезапуск HDMI, см. Поддержка HDMI.
Прошивка SD-карты¶
Прошивка SD-карты выполняется на ПК или на устройстве (при условии загрузки c eMMC):
Определить имя устройства SD-карты на ПК (извлечь SD-карту из считывателя карт ПЭВМ, считать список устройств командой
ls -la /dev/sd*
, установить SD-карту в ПК, повторно считать список устройств, обнаружить новое устройство/dev/sdX
).Записать архив корневой файловой системы на SD-карту с помощью утилиты
tar2dev
(утилита входит в состав сборки, см. Состав сборки):sudo ./tar2dev mcom03-altlinux-p10-rootfs.tar.gz /dev/sdX
Утилита tar2dev
поддерживает опции и переменные для конфигурации файловой системы
при записи на блочное устройство. Пример создания SD-карты с установкой раздела root, fdt
в extlinux.conf
и имени хоста устройства:
ROOT=/dev/mmcblk1p1 FDT=board.dtb tar2dev -n newhostname mcom03-altlinux-p10-rootfs.tar.gz /dev/sdX
Подробнее см. tar2dev -h
.
Прошивка eMMC¶
Память eMMC на ELV-MC03-SMARC доступна как стандартное блочное устройство Linux
/dev/mmcblk0
. eMMC может прошиваться тем же образом, что и SD-карта.
Для прошивки достаточно:
загрузить Linux с карты памяти SD;
скопировать
mcom03-altlinux-p10-rootfs.tar.gz
для прошивки eMMC иtar2dev
на SD-карту;прошить eMMC утилитой
tar2dev
(см. Прошивка SD-карты);при необходимости обновить корневую файловую систему в
extlinux.conf
на eMMC.
Прошивка QSPI-памяти¶
Прошивка QSPI-памяти выполняется с ПК. Python-пакет утилит для прошивки QSPI-памятей mcom03-flash-tools и инструкция по прошивке расположены по адресу https://github.com/elvees/mcom03-flash-tools.
Образы прошивок для QSPI-памятей соответствующих модулей перечислены в Состав сборки.
Примечания к выпуску¶
2024.06¶
Важно
Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI и eMMC/SD-карты модуля.
Обновлены пакеты поддержки MCom-03 версиями, соответствующими Buildroot 2024.06. Список изменений в пакетах см. https://dist.elvees.com/mcom03/docs/linux-sdk/latest/release-notes.html#release-2024-06.
Драйверы GPU, добавленные в Buildroot, не добавлены в ALT Linux по причине несовместимости версий Mesa.
Образы флеш-памяти QSPI0 и ядро Linux бинарно идентичны соответствующей версии Buildroot.
Добавлен systemd-сервис
set-hostname
, который генерирует имя хоста из названия модуля и серийного номера из Devicetree. Подробнее см. главу «Установка имени хоста» в документации на Buildroot.
Обновлён базовый образ до Simply Linux 10.2.
Добавлен репозиторий contrib для пакетов, которые исправлены незачительно (патчи) или просто собраны как RPM, для удобства установки в ALT Linux. Добавлено описание репозитория в документации.
Исправлены ошибки доступа к dev-устройствам DSP/VPU/ISP.
Исправлен скрипт extlinux-gen для установки FDT при вызове tar2dev.
2023.10¶
Важно
Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI и eMMC/SD-карты модуля.
Базовый дистрибутив обновлён с ALT Linux с P9 до P10.
Ядро Linux обновлено с 4.19 до 5.10. Ядро запакетировано в RPM-пакет.
Добавлены RPM-пакеты поддержки ISP, VPU, DSP (пакеты аналогичны соответствующим пакетам из MCom-03 Buildroot), список пакетов перечислен в Состав сборки.
Добавлены RPM-репозитории, см. RPM-репозитории.
Образы флеш-памяти QSPI0 и ядро Linux бинарно идентичны Buildroot 2023.10. Список изменений в компонентах см. https://dist.elvees.com/mcom03/docs/linux-sdk/latest/release-notes.html#release-2023-10.
В документации добавлены главы RPM-репозитории, Поддержка DSP.
2023.03¶
Важно
Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI и eMMC/SD-карты модуля.
Образ флеш-памяти QSPI0 и ядро Linux бинарно идентичны Buildroot 2023.03. Список изменений в компонентах см. https://dist.elvees.com/mcom03/docs/linux-sdk/latest/release-notes.html#release-2023-03.
Сборка ALT Linux не содержит GStreamer-компонентов.
2022.09¶
Важно
Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI и eMMC/SD-карты модуля.
Образ флеш-памяти QSPI0 и ядро Linux бинарно идентичны Buildroot 2022.09. Список изменений в компонентах см. https://dist.elvees.com/mcom03/docs/linux-sdk/latest/release-notes.html#release-2022-09.
Сборка ALT Linux не содержит GStreamer-компонентов.
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.