LINUX.ORG.RU

qt5 кросс-компиляция с поддержкой linuxfb

 ,


0

3

Подскажите гайд по сборке qt5 с поддержкой linuxfb фреймбуфером для arm доски beaglebone. На доске нужно запустить qui qt5 прогу на lcd экране, x сервер выключил там, то есть хочу, чтобы qt5 сделала прогу без xcb, а именно, чтобы рисовала во фреймбуфер. Подскажите гайды рабочие по этой теме, чтобы попробовать собрать так.

А разве Qt 5 по умолчанию не собирается с ним?

Проверь libqlinuxfb.so в plugins/platforms.

Если есть, запускай и тестируй своё Qt-приложение как-то так:

sudo QT_QPA_PLATFORM=linuxfb qbittorrent-qt5

(sudo для доступа ко всяким /dev/*, потом расставь правильно права, чтобы от юзера работало нормально)

P.S. у меня такие плагины:

$ ls /usr/lib/qt/plugins/platforms/ -1
KWinQpaPlugin.so
libqeglfs.so
libqlinuxfb.so
libqminimalegl.so
libqminimal.so
libqoffscreen.so
libqvnc.so
libqwayland-egl.so
libqwayland-generic.so
libqwayland-xcomposite-egl.so
libqwayland-xcomposite-glx.so
libqxcb.so

P.P.S. Если на платке имеется ускоритель, имеет смысл заюзать eglfs или wayland.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от EXL

Я пробую запускать мой пример, собранный просто в qt5 собранной разрабами, но он почему-то пытается грузить либу libqxcb.so, которая для х-сервера, а так как х-сервер отключен, то прога обламывается. Вот такой лог запуска:

export QT_DEBUG_PLUGINS=1 
root@beaglebone:~/CCBoot_angstrom# ./example QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed QFactoryLoader::QFactoryLoader() checking directory path «/usr/local/qt5/plugins/platforms» ... QFactoryLoader::QFactoryLoader() looking at «/usr/local/qt5/plugins/platforms/libqlinuxfb.so» Found metadata in lib /usr/local/qt5/plugins/platforms/libqlinuxfb.so, metadata= { «IID»: «org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3», «MetaData»: { «Keys»: [ «linuxfb» ] }, «className»: «QLinuxFbIntegrationPlugin», «debug»: false, «version»: 328960 }

Got keys from plugin meta data («linuxfb») QFactoryLoader::QFactoryLoader() looking at «/usr/local/qt5/plugins/platforms/libqminimal.so» Found metadata in lib /usr/local/qt5/plugins/platforms/libqminimal.so, metadata= { «IID»: «org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3», «MetaData»: { «Keys»: [ «minimal» ] }, «className»: «QMinimalIntegrationPlugin», «debug»: false, «version»: 328960 }

Got keys from plugin meta data («minimal») QFactoryLoader::QFactoryLoader() looking at «/usr/local/qt5/plugins/platforms/libqoffscreen.so» Found metadata in lib /usr/local/qt5/plugins/platforms/libqoffscreen.so, metadata= { «IID»: «org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3», «MetaData»: { «Keys»: [ «offscreen» ] }, «className»: «QOffscreenIntegrationPlugin», «debug»: false, «version»: 328960 }

Got keys from plugin meta data («offscreen») QFactoryLoader::QFactoryLoader() looking at «/usr/local/qt5/plugins/platforms/libqxcb.so» Found metadata in lib /usr/local/qt5/plugins/platforms/libqxcb.so, metadata= { «IID»: «org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3», «MetaData»: { «Keys»: [ «xcb» ] }, «className»: «QXcbIntegrationPlugin», «debug»: false, «version»: 328960 }

Got keys from plugin meta data («xcb») QFactoryLoader::QFactoryLoader() checking directory path «/home/root/CCBoot_angstrom/platforms» ... loaded library «/usr/local/qt5/plugins/platforms/libqxcb.so» QXcbConnection: Could not connect to display Aborted

Я правильно понимаю, что для того, чтобы прога не пыталась использовать libqxcb, ей надо принудительно в

QT_QPA_PLATFORM
выставить
linuxfb 
.

sudo на сборке angstrom нету, но есть root там.

user2132
() автор топика
Ответ на: комментарий от user2132

Я правильно понимаю, что для того, чтобы прога не пыталась использовать libqxcb, ей надо принудительно в

Да, конечно.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)

одскажите гайд по сборке qt5 с поддержкой linuxfb фреймбуфером для arm доски beaglebone.

собери нормальный конфиг в buildroot - не нужен тебе linuxfb, там все есть для eglfs

anonymous
()
Ответ на: комментарий от anonymous

Что имеется ввиду под нормальным конфигом, выбираю beaglebone_qt5_defconfig, какие галки еще в make menuconfig предлагаешь выставить ?

user2132
() автор топика
Ответ на: комментарий от user2132

выбираю beaglebone_qt5_defconfig

после сборки нужно записать получившийся имидж на SD и с нее грузить доску. Настроить креатор на кросс-тулзы из buildroot, собрать свое приложение этим кретором, задеплоить на доску и запустить.

anonymous
()
Ответ на: комментарий от EXL

А как на экране потом убрать прогу, после убивания ее процесса, она продолжает на экране рисоваться. Это именно когда с linuxfb.

user2132
() автор топика
Ответ на: комментарий от dhampire

Экран черный становится, а как снова отобразить там терминал чтобы. И ошибку выдает после команды no space left on device

user2132
() автор топика
Ответ на: комментарий от user2132

Не знаю, это не ко мне, я не использовал linuxfb в продакшене. На дворе 2019 год, GPU в каждой микроволновке.

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.