在Linux中使用xrandr调整分辨率

本文最后更新于:November 5, 2019 pm

在CentOS8和Ubuntu18上使用xrandr调整显示器分辨率并设置重启后不失效。

最近在用主板自带的板载集显外接显示器的时候,最大应该是可以输出1080P的分辨率,但是由于各种原因好像不能自动识别出来,只能自己使用xrandr手动新建分辨率。

CentOS8Ubuntu18.04.3上面都实操过没有问题,步骤也都基本相同,只有最后一步的文件路径不太一样。(个人猜测CentOS7上面应该和CentOS8通用)

1、CentOS8操作记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 以下是CentOS8中的实际操作记录

# 使用xrandr查看目前支持的分辨率,这里我们可以看到只有三个,且和显示器的最佳分辨率都对不上
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 2048
VGA-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
640x480 59.94


# 使用cvt命令生成对应分辨率的数据,后面的三个参数分别是横向分辨率和纵向分辨率以及刷新率
# 这里我们使用最常见的1080p 60帧
# 注意这里生成的Modeline这一行参数我们后面要用到,需要提前保存一下
$ cvt 1920 1080 60
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

# 在xrandr中添加新的分辨率选项,参数直接照搬上面的即可
$ xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

# 再次查看分辨率,可以看到新增加的已经在列表中了
# 额外需要注意的是下面的VGA-1选项,后面要用到,这里是用来定位显示器的(如果有多个显示器的话)
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 2048
VGA-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
640x480 59.94
1920x1080_60.00 (0x3ad) 173.000MHz -HSync +VSync
h: width 1920 start 2048 end 2248 total 2576 skew 0 clock 67.16KHz
v: height 1080 start 1083 end 1088 total 1120 clock 59.96Hz

# 将刚刚生成的分辨率选项添加到VGA-1这个显示器中
$ xrandr --addmode VGA-1 "1920x1080_60.00"
# 再次查看可以发现已经是正常的了
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 2048
VGA-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
640x480 59.94
1920x1080_60.00 59.96

# 手动调整分辨率为1080P,这时候应该就可以感觉到分辨率的变化了
$ xrandr -s 1920x1080_60.00
$


# 为了保证重启后分辨率依旧生效,我们新建一个配置文件
# 需要注意的是文件中的Modeline这一行就是前面我们生成的参数,如果没保存的话再重新输一遍前面的cvt命令即可
[root@tiny-studio xorg.conf.d]# vim /etc/X11/xorg.conf.d/monitor.conf
[root@tiny-studio xorg.conf.d]# cat /etc/X11/xorg.conf.d/monitor.conf
Section "Monitor"
Identifier "Configured Monitor"
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
Option "PreferredMode" "1920x1080_60.00"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection
Section "Device"
Identifier "Configured Video Device"
EndSection

2、Ubuntu18.04.3操作记录

Ubuntu上面操作和CentOS8基本一样,除了最后的配置文件从/etc/X11/xorg.conf.d/monitor.conf变成了/etc/X11/xorg.conf.d/monitor.conf,其他的基本一样,这里就不再赘述。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 以下为ubuntu18.04.3上的操作记录

root@Tiny-Studio:~#
root@Tiny-Studio:~# xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 2048
VGA-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
640x480 59.94
root@Tiny-Studio:~# cvt 1920 1080 60
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
root@Tiny-Studio:~# xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
root@Tiny-Studio:~# xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 2048
VGA-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
640x480 59.94
1920x1080_60.00 (0x306) 173.000MHz -HSync +VSync
h: width 1920 start 2048 end 2248 total 2576 skew 0 clock 67.16KHz
v: height 1080 start 1083 end 1088 total 1120 clock 59.96Hz
root@Tiny-Studio:~# xrandr --addmode VGA-1 "1920x1080_60.00"
root@Tiny-Studio:~# xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 2048
VGA-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
640x480 59.94
1920x1080_60.00 59.96
root@Tiny-Studio:~# xrandr -s 1920x1080_60.00

root@Tiny-Studio:~# vim /etc/X11/xorg.conf
root@Tiny-Studio:~# cat /etc/X11/xorg.conf
Section "Monitor"
Identifier "Configured Monitor"
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
Option "PreferredMode" "1920x1080_60.00"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection
Section "Device"
Identifier "Configured Video Device"
EndSection
root@Tiny-Studio:~#