Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Работа с несколькими экранами Alwinner A40i на новых ядрах
sasamy
Добавлено 20.12.2023 14:42 Редактировалось 20.12.2023 15:06
0
Сообщение: 1
sasamy
4.71

Пункты: 83012
Регистрация: 14.08.2009
В новых ядра используется новая графическая система DRM/KMS
ядро эмулирует только один фрэймбуфер /dev/fb0 для обратной совместимости
в частности для консоли fbcon, использовать /dev/fb0 для графики
можно но не оптимально. Для работы с новым API напрямую с libdrm
без сторонних библиотек есть примеры кода

https://github.com/dvdhrm/docs/tree/master/drm-howto

https://github.com/embear-engineering/drm-framebuffer

Сборка дефолтного конфига sk_qt5_defconfig использует
оконную систему weston и он сразу поддерживает использование
нескольких экранов без доп настроек

https://i.ibb.co/tJ9Xf4n/weston2s.jpg

Использовать два экрана с qt без оконной системы проще всего с QML.
Отключить оконную систему и сменить бэкенд

Цитата

killall weston
export QT_QPA_PLATFORM=eglfs


пример qml сценария с двумя экранами 2.qml

Код

import QtQuick 2.9
import QtQuick.Window 2.3

Window {
id: w1
visible: true
Rectangle {
anchors.fill: parent
color: "red"
Column {
Text {
font.pointSize: 18
color: "white"
text: "This scene is on Qt.application.screens[0]" +
"\nname: " + Qt.application.screens[0].name +
"\nwidth: " + Qt.application.screens[0].width +
"\nheight: " + Qt.application.screens[0].height
}
}
}

Window {
id: w2
screen: Qt.application.screens[1]
visible: true
Rectangle {
anchors.fill: parent
color: "blue"
Column {
Text {
font.pointSize: 18
color: "white"
text: "This scene is on Qt.application.screens[1]" +
"\nname: " + Qt.application.screens[1].name +
"\nwidth: " + Qt.application.screens[1].width +
"\nheight: " + Qt.application.screens[1].height
}
}
}
}
}


qmlscene 2.qml

https://i.ibb.co/CQXGHB2/qml2s.jpg

В документации qt описан пример с виджетами но он не работает

https://forum.qt.io/topic/135918/using-platform-eglfs-for-two-screens

https://doc.qt.io/qt-5/embedded-linux.html

теоретически есть патчи и другой пример но это не тестировалось

https://bugreports.qt.io/browse/QTBUG-67160
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux