利用 xrandr 命令修改螢幕解析度

think0909發表於2016-07-20

問題背景

  • 電腦外接著一個 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 即可。

相關文章