问题背景
- 电脑外接着一个 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"