我的笔记本电脑屏幕坏了,左侧有裂缝。因此,只有 2/3 的屏幕宽度可以正常显示图像,而左侧的 1/3 有黑点。
我使用的是 Debian 11 操作系统,因此我尝试通过将分辨率更改为 1150x1080(而不是 1920x1080)并将图片向右偏移 770px 来应用解决方法。
首先我尝试使用 xrandr 切换模式:
victor@pc524:~$ gtf 1150 1080 60
# 1152x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 104.11 MHz
Modeline "1152x1080_60.00" 104.11 1152 1224 1352 1552 1080 1081 1084 1118 -HSync +Vsync
victor@pc524:~$ xrandr --newmode "BROKENSCREEN" 104.11 1152 1224 1352 1552 1080 1081 1084 1118 -HSync +Vsync~
victor@pc524:~$ xrandr --addmode XWAYLAND0 BROKENSCREEN
victor@pc524:~$ xrandr
Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767
XWAYLAND0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 340mm x 190mm
1920x1080 60.05*+
BROKENSCREEN 60.00
victor@pc524:~$ xrandr --output XWAYLAND0 --mode BROKENSCREEN
xrandr: Configure crtc 0 failed
出现“配置 crtc 0 失败”错误,这看起来像是固件的一些问题,但我无法找到如何克服这个问题的确切解决方案。
然后我至少尝试移动图片,但也失败了:
victor@pc524:~$ xrandr --output XWAYLAND0 --pos 770x0
此命令对图片没有任何作用。
什么是正确的 xrandr 命令来获得所需的结果(缩小到 1150px 并在 770px 处向右移动),以及如何克服 crtc 问题?
我使用的图形硬件和驱动程序是:
victor@pc524:~$ lspci -knn | grep -iA3 'vga\|3d\|display'
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 630 [8086:591b] (rev 04)
DeviceName: Intel Kabylake HD Graphics GT2
Subsystem: Hewlett-Packard Company HD Graphics 630 [103c:836b]
Kernel driver in use: i915
--
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] [10de:1c8d] (rev a1)
DeviceName: NVIDIA GeForce GTX 1050
Subsystem: Hewlett-Packard Company GP107M [GeForce GTX 1050 Mobile] [103c:836b]
Kernel driver in use: nouveau
答案1
最后,我终于得到了想要的结果。看来在 Debian 10 及更高版本中,默认情况下使用的是 WAYLAND 而不是 X,因此 xrandr 实际上不起作用。虽然 WAYLAND 实际上有很多优点,但它的支持仍然很弱,尤其是在保守的 Debian 中。所以我决定通过禁用 WAYLAND 切换回 X:
sudo gedit /etc/gdm3/daemon.conf
取消此行的注释(删除#):
WaylandEnable=false
它允许我将以下设置应用于 X:
xrandr --output eDP-1 --fb 1150x1080 --transform 1,0,-770,0,1,0,0,0,1
其中 eDP-1 是我的默认屏幕。我甚至不需要添加或更改任何模式。