我的 Dell Vostro 3360 笔记本电脑上有 xUbuntu 18.04.4 LTS(XFCE 4.12 + 4.15.0-111 Linux 内核)。当我通过 VGA 电缆连接外部显示器 (Samsung SyncMaster T240) 时,一切都很好,我得到了这样的 xrandr 输出:
xrandr -q
***
VGA-1 connected 1920x1200+1366+0 (normal left inverted right x axis y axis) 518mm x 324mm
1920x1200 59.95*+
***
但是当我通过 HDMI 电缆连接此显示器时,无法正确检测到该显示器的尺寸(在 XFCE 显示窗口中它显示为 Samsung 7"),并且我得到了这样的输出:
***
xrandr -q
HDMI-1 connected 1920x1200+1366+0 (normal left inverted right x axis y axis) 160mm x 90mm
1920x1200 59.95*+
***
因此,一些应用程序(例如 Viber 或 Calibre)会显示“巨大的控件”。
我该如何解决这个问题(理想的 - 不仅适用于该显示器,而且适用于 HDMI 连接)?
更新。目前看来问题出在外部显示器通过 HDMI 发送的 EDID 信息中(不,xrandr --fbmm
不起作用......)
答案1
所以,我用这样的方式解决了我的问题:
- 下载为现有显示器准备好的 EDID 存储库(https://github.com/linuxhw/EDID/)
- 从那里找到最合适的型号(按供应商+分辨率+屏幕尺寸+频率)
- 将我之前通过 get-edid 实用程序获得的 edid-binary.file 的内容更改为我找到的 edid 文件中的 EDID 字符串
- 将该新文件分配为 Linux 内核的参数(并为 dmesg 添加了一些调试信息),因此我进入了 /etc/default/grub 字符串
GRUB_CMDLINE_LINUX_DEFAULT="drm.debug=14 log_buf_len=20M debug drm.edid_firmware=HDMI-A-1:edid/edid1.bin quiet splash"
(然后执行了 sudo update-grub ) - 做得好 :)