如何调试 xrandr 未设置所需的分辨率?

如何调试 xrandr 未设置所需的分辨率?

我需要一些帮助来弄清楚为什么 xrandr 无法设置所需的分辨率。

我有双显示器设置:

  • 13 英寸笔记本电脑,分辨率为 2560x1440
  • 24 英寸显示器,分辨率为 1920x1200

由于高 dpi 的原因,我想将笔记本电脑的分辨率提高到 1920x1080,但显示管理器无法识别。

我只得到这个:

2560x1440     59.95*+
1920x1440     60.00  
1856x1392     60.01  
1792x1344     60.01  
1600x1200     60.00  
1400x1050     59.98  
1280x1024     60.02  
1280x960      60.00  
1024x768      60.00  
800x600       60.32    56.25  
640x480       59.94 

为了获取模式行,我使用:

cvt 1920 1080 

然后,为了使更改在会话之间持久,我将以下几行添加到以下文件夹中的脚本中,该脚本在 x11 初始化期间执行:

/etc/X11/xinit/xinitrc.d

内容(add-fullhd-to-edp1.sh):

xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode eDP1 1920x1080_60.00

之后我发现 xrandr 现在支持该分辨率

2560x1440     59.95*+
1920x1440     60.00  
1856x1392     60.01  
1792x1344     60.01  
1600x1200     60.00  
1400x1050     59.98  
1280x1024     60.02  
1280x960      60.00  
1024x768      60.00  
800x600       60.32    56.25  
640x480       59.94  
1920x1080_60.00  59.96

因此,当我使用 xrandr 或 GUI 选择分辨率后,屏幕会闪烁一次,因为它会尝试设置分辨率,然后第二次闪烁以恢复。发生这种情况时,Xorg.log 中的条目仅是帧缓冲区调整大小:

(II) intel(0): resizing framebuffer to 1920x2280
(II) intel(0): switch to mode [email protected] on HDMI1 using pipe 0, position (0, 0), rotation normal, reflection none
(II) intel(0): switch to mode [email protected] on eDP1 using pipe 1, position (0, 1200), rotation normal, reflection none
(II) intel(0): resizing framebuffer to 2560x2640
(II) intel(0): switch to mode [email protected] on HDMI1 using pipe 1, position (0, 0), rotation normal, reflection none
(II) intel(0): switch to mode [email protected] on eDP1 using pipe 0, position (0, 1200), rotation normal, reflection none
(II) intel(0): switch to mode [email protected] on HDMI1 using pipe 0, position (0, 0), rotation normal, reflection none
(II) intel(0): switch to mode [email protected] on eDP1 using pipe 1, position (0, 1200), rotation normal, reflection none

正如你所看到的,我有一个英特尔驱动程序,Iris 显卡。

00:02.0 VGA compatible controller: Intel Corporation Device 0a2e (rev 09)

有趣的是,它一直运行良好,直到某个更新推出,我才弄清楚是哪一个更新破坏了它。

有什么线索吗?非常感谢您的帮助。

答案1

我向 gdm 开发人员发布了这个错误并得到了使用静态配置的提示。

/etc/X11/xorg.conf.d/21-intel.conf

内容:

Section "Device"
    Identifier  "Intel Graphics"
        Driver      "intel"
        Option      "monitor-eDP1" "eDP1"
EndSection

Section "Monitor"
    Identifier      "eDP1"
    Modeline "1920x1080"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync
EndSection

并且成功了。有趣的是,我认为这确实是 xrandr 开发人员的一个错误。

相关内容