利用 xrandr 命令修改屏幕分辨率

问题背景


  • 电脑外接着一个 23‘ 的显示器,分辨率为 1920*1080
  • 操作系统: ubuntu 14.04

今天,通过 Setting->Displays 中选择外接屏的分辨率时,发现最大只有 1024×768,并且外接屏显示 “Unknown Displays”,日了狗了。。。

解决方案


解决办法主要是给这个 "Unknown Displays" 设置一个 1920*1080 的选项,下面借助 xrandr 命令来实现。

先查看两个屏幕支持的分辨率情况


在终端输入 xrandr

$ xrandr
Screen 0: minimum 320 x 200, current 3286 x 1080, maximum 32767 x 32767
eDP1 connected primary 1366x768+0+312 (normal left inverted right x axis y axis) 309mm x 173mm
1366x768      60.1*+
1360x768      59.8    60.0
1024x768      60.0
800x600        60.3    56.2
640x480        59.9
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP2 connected 1024x768 (normal left inverted right x axis y axis) 0mm x 0mm
1024x768      60.0*
800x600        60.3    56.2
848x480        60.0
640x480        59.9
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

注释:

  • 上面显示了两个屏幕分辨率选项,后面标示 * 即为屏幕当前分辨率
  • 这里显示好几个接口:eDP1, DP1, HDMI1, DP2, HDMI2, VIRTUAL1,但是只有 eDP1 和 DP2 有连接,并且 DP2 对应我们外接屏(这个值后面会用到!)

利用 cvt 新建一个 modeline


代码如下:

$ cvt 1920 1080

然后屏幕上会返回两行内容,赋值第二行中 'Modeline' 后面的所有内容,并接到下面 xrandr --newmode 后面:

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

其中 ”DP2“ 即上面展示的外接端口,不用的接口这个名字可能不同,比如有的会是 VGA1,以上面 xrandr 的显示结果为准。

之后,再进入 Setting->Displays, 发现那个 “Unknown Display” 的分辨率中,有了 "1920x1080" 这个选项,选中它,并 Apply 即可。或者调用以下命令

$ xrandr --output DP2 --mode "1920x1080_60.00"

你可能感兴趣的:(利用 xrandr 命令修改屏幕分辨率)