我在 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