【问题标题】:Raspberry Pi2 running Buildroot with QT5 Set screen resolutionRaspberry Pi2 运行 Buildroot 和 QT5 设置屏幕分辨率
【发布时间】:2016-04-05 11:11:12
【问题描述】:

我正在为运行构建根目录的 RPi2 开发 QT5 应用程序。最初我正在尝试使用 QML 的 QTQuick 2,并遇到了应用程序以 1280x720 的分辨率启动的问题,而不是在 8 英寸 HDMI 显示器上预期的 1920x1080。

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

在 QML 中记录 Screen.width 和 Screen.height 输出如下:

qml: x: 1280 y: 720

我已经尝试通过在 /etc/profiles.d/ 中创建一个文件来设置环境变量,如 similar post 中提到的那样。

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 已经看到了它们,但仍然没有反映任何变化。

我正在通过 SSH 连接到 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

【问题讨论】:

    标签: qt raspberry-pi qt5 raspberry-pi2 buildroot


    【解决方案1】:

    实现的 buildroot 没有通过 config.txt 复制到 SD 卡的引导分区。如this thread 所述,复制了一个最小配置并设置了一些配置参数。

    hdmi_ignore_edid=0xa5000080
    hdmi_group=1
    hdmi_mode=16
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      相关资源
      最近更新 更多