2016-04-05 3 views
0

Я занимаюсь разработкой приложения QT5 для запуска root-скрипта RPi2. Первоначально я тестирую QTQuick 2 с QML и сталкиваюсь с проблемой, когда приложение запускается с разрешением 1280x720 вместо предполагаемого 1920x1080 на 8-дюймовом дисплее HDMI.Raspberry Pi2 running Buildroot с QT5 Установить разрешение экрана

Я не знаю, если изменение I . нужно сделать где-то в запущенной ОС, или какой-либо значение в пределах интервала QT приложение для того, чтобы исправить разрешение

Logging screen.Width и screen.height в QML выводит следующее:

QML: x: 1280 y: 720

Я попытался установить переменные env, как указано в этом документе similar post, создав файл в /etc/profiles.d/ со следующим.

export QT_QPA_EGLFS_WIDTH=1920 
export QT_QPA_EGLFS_HEIGHT=1080 
export QT_QPA_EGLFS_PHYSICAL_WIDTH=177 
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=100 
export QT_QPA_EGLFS_DEPTH=24 
export QT_QPA_EGLFS_ALWAYS_SET_MODE=1 

# Logging 
#export QT_DEBUG_PLUGINS=1 
export QT_QPA_EGLFS_DEBUG=1 
#export QSG_INFO=1 
export QT_LOGGING_RULES=qt.qpa.*=true 

Однако это приводит к тому, приложение не обнаруживает переменные установлены

Невозможно запросить физический размер экрана, по умолчанию 100 точек на дюйм. Чтобы переопределить, установите QT_QPA_EGLFS_PHYSICAL_WIDTH и QT_QPA_EGLFS_PHYSICAL_HEIGHT (в миллиметрах).

Если я вручную создаю файл, содержащий значения, приведенные выше ошибки не выводятся, что свидетельствует о том, что они были замечены QT, но все же никаких изменений не отражено.

Я SSH'ing в Pi, чтобы вносить изменения и запускать приложение QT, и я также попытался использовать fbset, чтобы изменить его разрешение, которое, похоже, устанавливает терминал в 1080p, но не приложение при запуске.

fbset -xres 1920 -yres 1080 

Ниже приведен вывод журнала при запуске приложения.

qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_brcm") qt.qpa.egldeviceintegration: EGL device integration plugin keys (sorted): ("eglfs_brcm") qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_brcm" qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_brcm" qt.qpa.input: evdevkeyboard: Using device discovery qt.qpa.input: udev device discovery for type QFlags(0x8) qt.qpa.input: Found matching devices() qt.qpa.input: evdevmouse: Using device discovery qt.qpa.input: udev device discovery for type QFlags(0x1|0x2) qt.qpa.input: Found matching devices() qt.qpa.input: evdevtouch: Using device discovery qt.qpa.input: udev device discovery for type QFlags(0x2|0x4) qt.qpa.input: Found matching devices() qml: x: 1280 y: 720 Created context for format QSurfaceFormat(version 2.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile 0) with config: EGL_BUFFER_SIZE: 16 EGL_ALPHA_SIZE: 0 EGL_BLUE_SIZE: 5 EGL_GREEN_SIZE: 6 EGL_RED_SIZE: 5 EGL_DEPTH_SIZE: 24 EGL_STENCIL_SIZE: 8 EGL_CONFIG_CAVEAT: 12344 EGL_CONFIG_ID: 17 EGL_LEVEL: 0 EGL_MAX_PBUFFER_HEIGHT: 2048 EGL_MAX_PBUFFER_PIXELS: 4194304 EGL_MAX_PBUFFER_WIDTH: 2048 EGL_NATIVE_RENDERABLE: 1 EGL_NATIVE_VISUAL_ID: 107544 EGL_NATIVE_VISUAL_TYPE: 12344 EGL_SAMPLES: 0 EGL_SAMPLE_BUFFERS: 0 EGL_SURFACE_TYPE: 1639 EGL_TRANSPARENT_TYPE: 12344 EGL_TRANSPARENT_BLUE_VALUE: 0 EGL_TRANSPARENT_GREEN_VALUE: 0 EGL_TRANSPARENT_RED_VALUE: 0 EGL_BIND_TO_TEXTURE_RGB: 1 EGL_BIND_TO_TEXTURE_RGBA: 1 EGL_MIN_SWAP_INTERVAL: 0 EGL_MAX_SWAP_INTERVAL: 2147483647

ответ

1

Реализованный Buildroot не копируются в config.txt в загрузочный раздел на SD-карте. Скопировано через минимальную конфигурацию и настроено несколько аргументов, как указано в this thread.

hdmi_ignore_edid=0xa5000080 
hdmi_group=1 
hdmi_mode=16 

Это заставило RPi работать в режиме 1080p, и теперь мое приложение QT отображается правильно в формате 1920x1080.

Смежные вопросы