Raspberry Pi2运行Buildroot与QT5设置屏幕分辨率



我正在为运行build root的RPi2开发QT5应用程序。最初,我正在试用QML的QTQuick 2,但遇到了一个问题,即该应用程序在8"HDMI显示器上以1280x720的分辨率启动,而不是预期的1920x1080。

我不知道我需要做的更改是在运行的操作系统中,还是在QT应用程序中的某个值,以修复分辨率。

QML中的Logging Screen.width和Screen.height输出以下内容:

qml:x:1280 y:720

我在/etc/profiles.d/中创建了一个文件,并用以下内容设置了类似文章中提到的env变量。

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 dpi。若要覆盖,请设置QT_QPA_EGLFS_PHYSICAL_WIDTH和QT_QPA-EGLFS_PHYSICAL_HEIGHT(以毫米为单位)。

如果我手动获取包含值的文件,则不会输出上述错误,这表明我相信QT已经看到了这些值,但仍然没有反映出任何变化。

我正在进入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

实现的buildroot没有通过config.txt复制到SD卡的启动分区。复制了一个最小的配置,并设置了本线程中所述的几个参数。

hdmi_ignore_edid=0xa5000080
hdmi_group=1
hdmi_mode=16

这迫使RPi进入1080p模式,现在我的QT应用程序以1920x1080正确显示。

相关内容

  • 没有找到相关文章

最新更新