Linux DRM(六) -- xrandr

  • 通过xrandr查询当前所能支持的分别率,通过cvt来创建所需要的分辨率

1.xrandr

  xrandr是一款官方的扩展配置工具。它可以设置屏幕显示的大小、方向、镜像等,包括对多屏的设置。使用xrandr -q或者xrandr命令可以查询当前的显示状态,使用xrandr --verbose将会显示更详细的信息。

$ xrandr
   Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
   LVDS-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 277mm x 156mm
      1366x768      60.10*+
      1360x768      59.80    59.96  
      1024x768      60.04    60.00  
      960x720       60.00  
      928x696       60.05  
      896x672       60.01  
      960x600       60.00  
      960x540       59.99  
      800x600       60.00    60.32    56.25  
      840x525       60.01    59.88  
      800x512       60.17  
      700x525       59.98  
      640x512       60.02  
      720x450       59.89  
      640x480       60.00    59.94  
      680x384       59.80    59.96  
      576x432       60.06  
      512x384       60.00  
      400x300       60.32    56.34  
      320x240       60.05  
   VGA-1 disconnected (normal left inverted right x axis y axis)
   HDMI-1 disconnected (normal left inverted right x axis y axis)
   DP-1 disconnected (normal left inverted right x axis y axis)
   HDMI-2 disconnected (normal left inverted right x axis y axis)
   HDMI-3 disconnected (normal left inverted right x axis y axis)
   DP-2 disconnected (normal left inverted right x axis y axis)
   DP-3 disconnected (normal left inverted right x axis y axis)

以上结果表明LVDS-1为主屏,且分辨率为1366x768 ,起始位置为0+0。

2.设置分辨率

  设置分辨率时需要指定设置的output及mode,如将LVDS-1的分辨率改为1920x1080,命令就是:

 xrandr --output eDP1 --mode 1920x1080 
 --output:指定显示器。 
 --mode:指定一种有效的分辨率。 
 --rate:指定刷新率。

Note:
但是单屏时不用这么麻烦, 可以直接使用命令 xrandr -s 1920x1080 来更改.

3.添加分辨率

3.1.查看本机显示器分辨率:

uos@uos-PC:~$ xrandr
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 16384 x 16384
HDMI-0 disconnected (normal left inverted right x axis y axis)
DVI-0 disconnected (normal left inverted right x axis y axis)
VGA-0 connected primary 1600x1200+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00 +
   1600x1200     60.00* 
   1680x1050     59.95  
   1600x900      59.99  
   1280x1024     75.02    60.02  
   1440x900      59.89  
   1280x960      60.00  
   1280x800      59.81  
   1024x768      75.03    70.07    60.00  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    59.94  
   720x400       70.08  
  • 标示 * 即为屏幕当前分辨率,这里显示好几个接口:HDMI-0 DVI-0 VGA-0,但是只有 VGA-0 有连接。

3.2.利用 cvt 新建一个 modeline:

uos@uos-PC:~$ cvt 2560 1440
# 2560x1440 59.96 Hz (CVT 3.69M9) hsync: 89.52 kHz; pclk: 312.25 MHz
Modeline "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

然后使用xrandr 创建新的mode,模式为"xrandr --newmode后面跟刚刚cvt产生的modeline信息"。比如:

uos@uos-PC:~$ xrandr --newmode "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

把新建的输出分辨率添加到当前输出设备上,模式为”xrandr --addmode后面第一个参数是xrandr显示出来的列表中:

uos@uos-PC:~$ xrandr --addmode VGA-02560x1440_60.00"

查看添加的分辨率:

uos@uos-PC:~$ xrandr
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 16384 x 16384                                                                                                          
HDMI-0 disconnected (normal left inverted right x axis y axis)                                                                                                                   
DVI-0 disconnected (normal left inverted right x axis y axis)                                                                                                                    
VGA-0 connected primary 1600x1200+0+0 (normal left inverted right x axis y axis) 477mm x 268mm                                                                                   
   1920x1080     60.00 +                                                                                                                                                         
   1600x1200     60.00*                                                                                                                                                          
   1680x1050     59.95                                                                                                                                                           
   1600x900      59.99                                                                                                                                                           
   1280x1024     75.02    60.02                                                                                                                                                  
   1440x900      59.89                                                                                                                                                           
   1280x960      60.00                                                                                                                                                           
   1280x800      59.81                                                                                                                                                           
   1024x768      75.03    70.07    60.00  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    59.94  
   720x400       70.08  
   2560x1440_60.00  59.96

3.3.选择该分辨率:

$ xrandr --output VGA-0 --mode “2560x1440_60.00” 或者 $ xrandr -s 2560x1440_60.00

3.4.因为此设置当前会话有效,重启就恢复初始设置了,需要配置文件搞一下,命令为"gedit ~/.profile"

cvt 2560 1440
xrandr --newmode "2560x1440_60.00" 312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync
xrandr --addmode VGA-02560x1440_60.00"
xrandr --output VGA-0 --mode "2560x1440_60.00" 

refer to

  • https://www.jianshu.com/p/08c127007831
  • https://blog.csdn.net/FoxBryant/article/details/80524959
  • https://blog.csdn.net/qq_42351346/article/details/80716193
  • https://xorg-team.pages.debian.net/xorg/howto/use-xrandr.html

猜你喜欢

转载自blog.csdn.net/weixin_41028621/article/details/109808591