因此,如果我仅使用一个屏幕启动或使用 cinnamon 或其他桌面环境,一切看起来都不错,但如果我使用两个屏幕启动,则看起来像这样:
请注意,浏览器中的一切看起来都很正常,但是任务栏和小部件看起来非常大。我怀疑它们正在被缩放,就好像两个屏幕实际上是一个一样,所以这么大是有意义的。
Xrandr gives me:
Screen 0: minimum 8 x 8, current 1920 x 2160, maximum 32767 x 32767
DVI-D-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 160mm x 90mm
1360x768 60.02 +
1920x1080 60.00* 59.94 29.97 23.98 60.05 60.00
1280x720 60.00 59.94
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32
720x480 59.94
640x480 75.00 72.81 59.94
HDMI-0 connected primary 1920x1080+0+1080 (normal left inverted right x axis y axis) 480mm x 270mm
1920x1080 60.00*+ 59.94 50.00 60.05 60.00 50.04
1680x1050 59.95
1600x900 60.00
1440x900 59.89
1400x1050 59.98
1280x1024 75.02 60.02
1280x800 59.81
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 59.94
640x480 75.00 59.94 59.93
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
所以看来这个决议是正确的。
我怎样才能解决这个问题?
这是如果我用一个显示器启动,然后在 KDE 加载后连接第二个显示器的情况
答案1
这花了我很多天的时间来解决这个问题。事实证明,我的 DVI 显示器的 EDID 已损坏,因此它告诉我的电脑,它的显示尺寸明显小于实际尺寸,同时保持分辨率,从而造成了巨大的 DPI 差异。我不太确定到底是什么解决了这个问题,但确实有一些东西解决了这个问题。这就是我所做的:
我想将自己的 EDID 文件传递到计算机。
我首先得到了错误的 EDID 文件。为了做到这一点,我使用了 NVIDIA 设置工具。我将其保存到临时文件夹中。
然后我就跟着这些说明更正 EDID 文件。具体来说:
我使用十六进制编辑器打开了错误的 edid 文件。显示大小位于二进制文件的偏移量 0x15 和 0x16(分别是宽度和高度)。这些计算单位为厘米,这意味着 160 毫米 = 16 厘米 = 0x10 和 90 毫米 = 9 厘米 = 0x09。我手动更正它们并将它们保存到不同的地方。然而,它们有不同的校验和,所以我们需要解决这个问题。
我跑了
edid-checksum.py < correct-edid.bin
,它告诉我在哪里修复 edid(您需要修复偏移量 0x7f 上的校验和。ox75 是错误的,应该是 0x65)。然后我再次使用十六进制编辑器打开该文件,将值更新为正确的值并保存。运行以下命令
parse-edid < dvi-d.bin
向我表明校验和确实是正确的。现在:在这里我做了两件不同的事情,我不知道是什么解决了它:
首先,我运行 nvidia-xconfig --custom-edid="DVI-D-0:/path/to/ Correct/edid.bin" ,将 edid 添加到 /etc/X11 上的 xorg.conf 文件中。
然后我也在内核方面更新了它。为此,我将正确的 edid 保存在 /lib/firmware/edid/DVI.bin 上,然后转到 /etc/default 并将以下内容添加到 /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet drm.edid_firmware=DVI-D-0:edid/DVI.bin"
然后我使用更新了内核引导加载程序
grub-mkconfig -o /boot/grub/grub.cfg
并重新启动计算机。不知何故,它在 GNOME 上仍然不起作用,但在 Plasma 上,一切看起来都很好,所以这是一个优点。
更新:
我一直在使用gdm3,并且在上面给出的解决方案之后效果很好。今天我尝试切换到 sddm,但一切又失败了。我真的没有时间去追踪这个错误,所以如果有人遇到同样的问题,并且上面的解决方案似乎仍然不起作用,那么请尝试:sudo dpkg-重新配置 gdm3