Запуск Qt-приложений
Собрать Qt-приложение можно как в IDE Qt Creator, так и без неё. Будут продемонстрированы оба способа сборки.
Запуск приложений возможен несколькими способами:
- СКИФ/К1892ВМ21Я
- 1892ВМ14Я
- С исполь зованием оконной системы Wayland.
- Через Framebuffer.
- С использованием оконной системы (например X11).
- Через OpenGL.
- Через Framebuffer.

- СКИФ/К1892ВМ21Я
- 1892ВМ14Я
В данном руководстве описан только способ запуcка через Wayland.
В данном руководстве описан только способ запуcка через OpenGL - EGLFS.
Сборка приложения выполняется на хосте. Для этого нужен кросс-компилятор и образ для запуска на модуле.
Сборка кросс-компилятора и образа прошивки SD
Подготовка
- Настроить окружение сборки или установить Docker (см. мануалы на Вашу ОС).
- Добавить пользователя ОС в группу Docker (
usermod -a -G docker $USER). - Требуется доступ в Интернет (необходимо проверить настройки сети и/или корпоративных прокси).
- Свободного места на диске должно быть более 30ГБ.
Рекомендуется установить и настроить Docker для наилучшей воспроизводимости сборки. Необходимо ознакомиться с Руководством.
Для сборки нативно в ОС - нужно подготовить окружение см. https://dist.elvees.com/mcom03/docs/linux-sdk/latest/components/buildroot.html#native
- СКИФ/К1892ВМ21Я
- 1892ВМ14Я
В этом разделе мы будем собирать кросс-компилятор arm-mcom03. Он нужен для сборки приложений на хосте под тагрет-систему.
В этом разделе мы будем собирать кросс-компилятор arm-mcom02. Он нужен для сборки приложений
на хосте под тагрет-систему. Начиная с версии MCom-02 Buildroot 2025.05 Qt включен в
defconfig mcom02_defconfig.
Конфигурация Buildroot
- К1892ВМ21Я
- СКИФ
- 1892ВМ14Я
Потребуется архив с Buildroot (последнего релиза):
wget https://dist.elvees.com/mcom03r/buildroot/<vers>/mcom03r-defconfig-src.tar.gz && \
tar xzpf mcom03r-defconfig-src.tar.gz && \
cd mcom03r-defconfig-src
Необходимо установить и настроить docker. Корректная сборка возможна только в docker-контейнере. Необходимо ознакомиться с Руководством.
В версии 2024.06 добавлен фрагмент qt.fragment, включающий конфигурацию, описанную в этом
руководстве.
export ENABLE_NETWORK=1
./docker-build.sh make mcom03r_defconfig FRAGMENTS=qt
./docker-build.sh 'make sdk && make'
Если применить указанный фрагмент, то можно переходить к пункту Разработка Qt-приложений или Запуск на модуле. Дальнейшая конфигурация опциональна и для базового использования не требуется.
Ручная конфигурация описана ниже.
Применить файл конфигурации:
./docker-build.sh make mcom03r_defconfig
Не рекомендуется запускать сборку от имени root!
Потребуется архив с Buildroot (последнего релиза):
wget https://dist.elvees.com/mcom03/buildroot/<vers>/mcom03-defconfig-src.tar.gz && \
tar xzpf mcom03-defconfig-src.tar.gz && \
cd mcom03-defconfig-src
В версии 2024.06 добавлен фрагмент qt.fragment, включающий конфигурацию, описанную в этом
руководстве.
export ENABLE_NETWORK=1
./docker-build.sh make mcom03_defconfig FRAGMENTS=qt
./docker-build.sh 'make sdk && make'
Если применить указанный фрагмент, то можно переходить к пункту Разработка Qt-приложений или Запуск на модуле. Дальнейшая конфигурация опциональна и для базового использования не требуется.
Ручная конфигурация описана ниже.
Применить файл конфигурации:
./docker-build.sh make mcom03_defconfig
Не рекомендуется запускать сборку от имени root!
Потребуется архив с buildroot последней версии:
wget TBD && \
tar xzf mcom02-defconfig-src.tar.gz && \
cd mcom02-defconfig-src /
Применить стандартый файл конфигурации для MCom02:
export ENABLE_NETWORK=1
./docker-build.sh make mcom02_defconfig
Работа Qt не проверялась в ядре Linux 5.4 с драйвером Lima. Подробнее про разницу ядра 5.4 и 4.4
Добавить QWidgets
widgets по умолчанию не включены в defconfig:
./docker-build.sh make menuconfig
Там же можно включить и другие необходимые компоненты

Добавить python-пакет (опционально)
- СКИФ/К1892ВМ21Я
- 1892ВМ14Я
Дополнительно включить Qt Wayland (menuconfig):
- Target packages → Graphic libraries and applications → Qt5 → qt5wayland
- Target packages → Graphic libraries and applications → Qt5 → Oqt5base → gui module → OpenGL support → opengl module
Добавить шрифты DejaVu
Включить Event-ы в ядре Linux
Event-ы требуются, если в приложении нужно получать события устройств ввода, например, клавиатуру, мышь, тачпад и т.д.
make linux-menuconfig
Сборка
./docker-build.sh 'make sdk && make'
make sdk выполняет сборку переносимого тулчейна c ARM-компилятором для целевой платы.
Дальнейшая работа будет демонстрироваться с этим тулчейном.
Это полезно, если сборка Buildroot выполняется на одном ПК, а разработка Qt-приложения – на другом.
Если нужно что-нибудь включить в сборку - можно пересобрать только указанный
пакет: make <package>-rebuild:
./docker-build.sh 'make qt5base-rebuild && \
make python-rebuild && \
make dejavu && \
make sdk && \
make'
При добавлении нового элемента Qt нужно пересобрать SDK и образ
rootfs.tar.gz (далее - rootfs). Новый rootfs нужно загрузить на модуль.
Далее в руководстве будет использовано обозначение ARCH.
- Для 1892ВМ14Я это
arm. - Для СКИФ/К1892ВМ21Я это
aarch64.
Для совместимости с командами из этого руководства можно выполнить команду:
export ARCH=xxx # где xxx - выбранная архитектура.
После успешной сборки в директории buildroot/output/images/ создастся
архив ARCH-buildroot-linux-*_sdk-buildroot.tar.gz.
Разработка Qt-приложений
Подготовка ПК для разработки приложений с GUI Qt:
- Создать папку
~/cross-compile - Скопировать в нее архив с тулчейном и распаковать.
mkdir ~/cross-compile && cd ~/cross-compile
cp <path_to_buildroot_images>/$ARCH-buildroot-linux-*_sdk-buildroot.tar.gz .
tar xzpf $ARCH-buildroot*.tar.gz
Пути в файлах тулчейна остались относительно директории на ПК, где
выполнялась сборка. Выполнить relocate:
cd ~/cross-compile/$ARCH-buildroot-linux-*_sdk-buildroot
./relocate-sdk.sh
Теперь пути установлены верные.
Основные элементы, которые нам понадобятся для настройки Qt creator:
- SysRoot
-
~/cross-compile/$ARCH-buildroot-linux-*_sdk-buildroot/$ARCH-buildroot-linux-*/sysroot - GCC
-
~/cross-compile/$ARCH-buildroot-linux-*_sdk-buildroot/bin/$ARCH-buildroot-linux-*-gcc - G++
-
~/cross-compile/$ARCH-buildroot-linux-*_sdk-buildroot/bin/$ARCH-buildroot-linux-*-g++ - qmake
-
~/cross-compile/$ARCH-buildroot-linux-*_sdk-buildroot/bin/qmake
Вместо * — gnu для СКИФ/К1892ВМ21Я и gnueabihf для 1892ВМ14Я.
Настройка Qt Creator
Установка
Скачать Qt Creator open-source можно:
- в магаз ине приложений ОС (например "GNOME Центр приложений");
- в пакетном менеджере ОС;
- с зеркала;
- с официального сайта;
- в "Релизах" на GitHub.
Пример команды для загрузки в Linux:
wget http://www.mirrorservice.org/sites/download.qt-project.org/\
official_releases/qt/5.9/5.9.9/qt-opensource-linux-x64-5.9.9.run
Для установки без регистрации:
- Выключить интернет.
- Запустить
./qt-opensource-linux-x64-5.9.9.run
Версия 5.9 стала последней, где возможна оффлайн-установка.
Или с помощью пакетного менеджера (пример для Ubuntu/Debian):
sudo apt install qtcreator
Создать Kit
Пут и до элементов Sysroot, GCC/G++, qmake были указаны выше.
-
Tools --> Options --> Kits(либоEdit --> Preferences --> Kits). -
Во вкладке
KitsвыбратьAdd -
Ввести название, например
Smarc–Apply -
На вкладке
Qt VersionsAdd -
Указать путь до qmake, назвать
Qt-mcom03/Qt-mcom02.
-
На вкладке
CompilersAdd --> GCC --> C++ -
Назвать
mcom03-G++/mcom02-G++ -
В Compiler Path указать путь до G++
-
Аналогично добавить компилятор GCC

-
Вернуться на вкладку
Kits, заполнить оставшиеся поля:- СКИФ
- 1892ВМ14Я
- Device Type:
Generic Linux Device. - Sysroot:
<Path/to/sysroot>. - Compiler: C:
mcom03-GCC, C++:mcom03-G++. - Qt-version
Qt-mcom03.
- Device Type:
Generic Linux Device. - Sysroot:
<Path/to/sysroot>. - Compiler: C:
mcom02-GCC, C++:mcom02-G++. - Qt-version
Qt-mcom02.
-
Сохранить настройки –
Apply.
- СКИФ
- 1892ВМ14Я


Создать проект
File --> New File or Project --> Qt Widget Application --> Choose- Задать имя проекта и путь расположения
- Build system –
qmake - Далее
Nextдо этапа Kits: выбрать созданныйKit
Next --> Finish