Ubuntu修改分辨率 转

通常情况下,图形界面的发行版 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

MVCforum 支持多国语言

MVCforum支持多国语言。要创建一个更新的语言,你需要去您的管理面板 /admin/ adminlanguage 在这里,您可以添加新的语言键和关联的值。或...

2714
来自专栏老马寒门IT

开发者的如何优雅的使用OSX

Mac对于IT开发者来说是最好的开发工具,没有之一。 但是对于大部分人来说,第一个接触的PC操作系统都是Windows系统,此文将带大家优雅的快速学习和使用Ma...

2773
来自专栏互联网杂技

如何学习用Typescript写Reactjs?

首先扫盲一下,先从搭建环境开始: 1.安装node,因为ts的编译器是js/ts写的; 安装node后同时获得npm命令,这是nodejs世界里的包管理器...

57012
来自专栏GopherCoder

『Go 语言学习专栏』-- 第十期

1593
来自专栏君赏技术博客

怎么让继承的类直接使用XIB的布局试图

最近做的一个小工具,一键替换key,就是为了解放双手,不然每次运行测试和正式的版本都要手动的替换key。

1442
来自专栏Seebug漏洞平台

TCTF/0CTF2018 XSS Writeup

刚刚4月过去的TCTF/0CTF2018一如既往的给了我们惊喜,其中最大的惊喜莫过于多道xss中Bypass CSP的题目,其中有很多应用于现代网站的防御思路。

1K8
来自专栏Seebug漏洞平台

TCTF/0CTF2018 XSS Writeup

刚刚4月过去的TCTF/0CTF2018一如既往的给了我们惊喜,其中最大的惊喜莫过于多道xss中Bypass CSP的题目,其中有很多应用于现代网站的防御思路。...

1173
来自专栏向治洪

iOS 组件化之路由设计思路分析

前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高。为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM...

7166
来自专栏美团技术团队

基于 KIF 的 iOS UI 自动化测试和持续集成

客户端 UI 自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼 iOS 客户端实践的基于 KIF 的 UI 自动化测试和持续集成过程。 测试框架...

5076
来自专栏腾讯Bugly的专栏

移动App入侵与逆向破解技术-iOS篇

如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析、追踪、注入等实用的破解技术,另外,通过“入侵”,将帮助您理解如何规避常见的安全漏洞,文章大纲: 简单...

2.3K6

扫码关注云+社区