Linux下修复分辨率显示异常
目录
家里放了台老旧的台式机,显卡是GTX 660Ti,windows下必须安装特定的驱动版本才能显示最佳分辨率(1680x1050),如果更新到最新的Nvidia驱动,反而显示器无法正常显示(1024x768)。
没想到,这种情况在Linux下依然存在,不论是安装Debian还是Linux Mint或者Ubuntu,默认都是1024x768。
网上找到了修复分辨率异常的方法,整理如下。
检查当前显卡硬件情况 #
$ lspci |grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 660 Ti] (rev a2)
可以看到,显卡硬件识别正常。
检查显卡分辨率情况 #
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
VGA-1 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94
HDMI-1 disconnected (normal left inverted right x axis y axis)
可以看到,有三个视频输出,当前正在用的是DVI-I-1,分辨率就是1024x768,第一行显示最大支持8192x8192。
我们需要通过手动定义,将分辨率调整为最佳的1680x1050
新增分辨率模式 #
$ sudo cvt 1680 1050
# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
这里定义了一个1680x1050 60Hz的新分辨率模式。
下来将新的分辨率模式应用生效。
$sudo xrandr --newmode "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
$sudo xrandr --addmode DVI-I-1 1680x1050
$sudo xrandr --output DVI-I-1 --mode 1600x1050
执行完以上命令后,但前显示分辨率就调整为1680x1050了。
为了使新的分辨率模式每次启动都生效,需要将以下命令添加到~/.profile
中。
cvt 1680 1050
xrandr --newmode "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
xrandr --addmode DVI-I-1 1680x1050