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

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)

Пакеты в latest RPM-репозиториях обновляются после принятия коммитов в соответствующие репозитории с исходными кодами (пакеты модулей ядра пересобираются после обновления ядра).

Подключение репозиториев (списки репозиториев могут отсутствовать в выпускаемом rootfs):

sudo wget --directory-prefix=/etc/apt/sources.list.d \
  http://dist.elvees.com/mcom03/altlinux/2023.10/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 релиза данные пакеты не установлены.

Репозиторий релиза содержится в составе директории релиза. Пример подключения репозитория релиза 2023.10 (выполнять в ОС на модуле):

sudo wget --directory-prefix=/etc/apt/sources.list.d \
  http://dist.elvees.com/mcom03/altlinux/2023.10/sources.list.d/elvees-2023.10.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/.

Поддержка аудио

В зависимости от модуля может требоваться дополнительная настройка 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

Для запуска ОС необходимо:

  1. Установить джампер режима Boot 0 (QSPI0).

  2. Подключить переходник USB-to-UART к UART2 модуля (пример подключения), подключить переходник к ПК.

  3. Подключить HDMI-дисплей к модулю.

  4. Подключить блок питания USB type C.

  5. На ПК открыть терминал, залогиниться (пользователь/пароль — см. Обзор).

  6. Если на HDMI-дисплей не выводится видео, выполнить перезапуск HDMI, см. Поддержка HDMI.

Прошивка SD-карты

Прошивка SD-карты выполняется на ПК или на устройстве (при условии загрузки c eMMC):

  1. Определить имя устройства SD-карты на ПК (извлечь SD-карту из считывателя карт ПЭВМ, считать список устройств командой ls -la /dev/sd*, установить SD-карту в ПК, повторно считать список устройств, обнаружить новое устройство /dev/sdX).

  2. Записать архив корневой файловой системы на 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-памятей соответствующих модулей перечислены в Состав сборки.

Примечания к выпуску

2023.10

Важно

Ядро Linux данной сборки несовместимо с загрузчиком U-Boot предыдущих версий. Для корректной работы требуется перепрошивка QSPI и eMMC/SD-карты модуля.

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.