为什么 Xorg 环境中的 Ubuntu 缺少显示分辨率,而 Ubuntu 环境中却没有?

为什么 Xorg 环境中的 Ubuntu 缺少显示分辨率,而 Ubuntu 环境中却没有?

我在 Dell XPS 13 2-in-1 2020 上运行 Ubuntu 22.10。它的显卡是 Mesa Intel® Xe (TGL GT2)。我注意到以下情况:

  • 当我登录到 Ubuntu 桌面环境(这是默认设置)时,我可以选择 1440x900 分辨率(16x10 的宽高比)。
  • 当我在 Xorg 桌面环境中登录 Ubuntu 时,没有提供 1440x900 分辨率选项。

我通过 GUI(设置 > 显示)和命令行 (xrandr) 看到了相同的行为。此外,上述分辨率在 Ubuntu 22.04 的 Xorg 上可用。

为什么会发生这种情况?如何为 Xorg 环境重新启用 1440x900 分辨率?

答案1

drm_info包中的工具可以drm-info帮助您调查此事。

它的输出非常冗长,所以我编写了一个工具来更容易地消化它:

格菲尼克斯

您可以仔细查看输出drm_info或使用该gfxi工具来查看哪些连接器、控制器和平面处于活动状态:

$ gfxi --annotate connector
236 # DP (connected)
249 # HDMI-A (disconnected)
255 # HDMI-A (disconnected)
$ gfxi --annotate crtc
80  # 3840x2160+0+0
131 # 0x0+0+0
182 # 0x0+0+0
233 # 0x0+0+0
$ gfxi --annotate plane type:Primary
31  # Primary (3840x2160)
82  # Primary (0x0)
133 # Primary (0x0)
184 # Primary (0x0)

如果分辨率不符合预期,请在输出中搜索“模式” drm_info,看看是否列出了您正在使用的特定连接器所需的分辨率。

答案2

硬件/驱动程序存在问题可能会导致检测显示器正确分辨率时出现问题。例如,从显示器查询的 EDID 数据块可能不正确。请按照以下文章中的步骤添加未检测到的屏幕分辨率:

获取主屏幕名称:

SCREENNAME=$(xrandr | grep "connected primary" | awk '{print $1}')

计算 1440x900 @60Hz 所需的模式线:

MODELINE=$(cvt 1440 900 60 | grep Modeline | awk '{sub($1 FS, ""); print $0}')

获取该命令的输出并添加新模式:

xrandr --newmode $MODELINE

将新模式与主屏幕关联:

xrandr --addmode $SCREENNAME $(echo $MODELINE | awk '{print$1}')

您可以在此处找到更多信息(包括如何实现自动化):https://wiki.ubuntu.com/X/Config/Resolution

相关内容