前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu修改分辨率 转

Ubuntu修改分辨率 转

作者头像
随风溜达的向日葵
发布2018-08-15 11:35:59
6.5K0
发布2018-08-15 11:35:59
举报
文章被收录于专栏:技术墨客技术墨客技术墨客

通常情况下,图形界面的发行版 linux 可以在 Setting->Device->Display 中直接设置多个屏幕的分辨率。但是坑总是无处不在的,有时候明明用得好好的分辨率就出毛病了,而且不能在界面上设置。此时可以通过 xrandr 命令来直接设置分辨率。

常规方法

1.查看显示模式参数:

#1440 900就是要修改的分辨率,根据需要可以使用1920 1080、1720 900等
$cvt 1440 900
#输出内容
1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync

Modeline之后的内容就是我们后面添加显示模式要使用的参数。

2.通过addMode命令增加一个现实模式:

#将Modeline的阿才能书复制到 --newmode之后即可
#后面的参数可以根据需要调整,请查阅cvt相关的说明
$xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync

3.增加到对应的显示器。

先用xrandr命令查询对应的显示器:

$xrandr
#输出类似以下的内容
WAYLAND0 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 173mm
   1366x768      60.00*+
   1360x768      59.80    59.96  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05
WAYLAND1 connected 1024x768+1366+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00* 
   800x600       60.32    56.25  
   848x480       60.00  
   640x480       59.94  

记住WAYLAND0\WAYLAND1的名称,这是我们显示器的代理名称。通常用手提的话WAYLAND0就是对应的手提电脑的显示器、其余的都是扩增屏幕。

然后向对应显示器下增加一个模式:

$xrandr --addmode WAYLAND1 "1440x900_60.00"

然后就OK了..........

遇到的问题

但是,要是天底下的事情都这么轻松世界就完美了。

问题一,xrand命令指针对当前用户

在使用 xrand命令时切记是针对当前用户的。例如我就是创建了一个管理员用户,然后把root账户禁用了。在执行命令时习惯性的加 sudo,最后会输出类似于 "MIT-MAGIC-COOKIE-1 keyCan't open display :0.0" 这样的内容。

问题二,最后一步输出 xrandr: Configure crtc 0 failed

在最后一行 $xrandr --addmode WAYLAND1 "1440x900_60.00" 命令之后并没有修改成功,而是输出了xrandr: Configure crtc 0 failed 或 xrandr: Configure crtc 1 failed这样的内容。查阅了一圈资料。在askubuntu找到说明。据说是升级到Ubuntu17.10之后,使用AMD/ATI的显卡容易遇到这个坑,wayland识别不了显示器。这个时候打开Setting的Displays面板显示的是 Unknown Display,最高分辨率只能到1024*768,最不费劲的方法是可以通过安装新的驱动源来解决(但是我安装了一次还是不行)。

实际上,只要显卡和显示器都支持某个分辨率,直接告诉显卡按照这个分辨率输出图像就好了,不用wayland去识别显示器。

首先关闭wayland服务,wayland是17.10之后新用的显示器服务(据说是可以在登陆界面选择和X.org切换,但是我的居然没有)。关闭方法:

1.打开配置文件:

#打开custom.conf文件,不同发行版文件位置可能有差异
vim /etc/gdm3/custom.conf

2.修改文件,找到 #WaylandEnable=false 这一行,然后去掉注释。

# Uncoment the line below to force the login screen to use Xorg
WaylandEnable=false
#......

3.最后reboot重启电脑。

4.启动完成后输入 xrandr 命令发现之前的 WAYLAND0 和 WAYLAND1 变成了输出端口的名称:

$xrandr
#输出
Screen 0: minimum 320 x 200, current 2806 x 900, maximum 8192 x 8192
eDP-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 173mm
   1366x768      60.00*+
   1360x768      59.80    59.96  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1440x900+1366+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00  
   800x600       60.32    56.25  
   848x480       60.00  
   640x480       59.94  
HDMI-2 disconnected (normal left inverted right x axis y axis)

这里的DP-1就是我用的外接显示器,但是现在只能显示到1024*768。然后按照前面介绍的方法依次执行$cvt 1440 900$xrandr newmode$xrandr addmode DP-1 "1440x900_60.00",仅仅是最后addmode的参数有些许差异。

修改后,在Displays里可以看到最新的分辨率。

永久性问题

最后,用这个方法有个最大的问题是没法保存。每次重启过后还是没法识别显示器的分辨率,又回到修改之前的状态。

有些地方说可以像下面这样添加或修改 /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

但是我修改之后没有任何效果。而且还多出一份 /etc/X11/xorg.conf.failsafe 文件。不知道是不是17.0.4特有的原因,毕竟我也是将系统升级为17.0.4之后分辨率才出问题的。

既然 xorg.conf 配置无法生效,我直接将命令创建为一个shell,然后开机运行即可:

#view-port-init.sh
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode DP-1 "1920x1080_60.00"
#DP-1这里请根据自己的参数修改。

参考:xrandr-configure-crtc-0-failed-when-trying-to-change-resolution

原文地址:http://www.chkui.com/article/linux/ubuntu_modify_view_port_by_xrandr

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常规方法
  • 遇到的问题
    • 问题一,xrand命令指针对当前用户
      • 问题二,最后一步输出 xrandr: Configure crtc 0 failed
      • 永久性问题
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档