Xrandr:配置显示器的强大工具

借此机会,我们解释了如何使用 xrandr,一种用于 正确 la 决议 您的显示器,他们的 茶点率等甚至可以操纵多个显示器。

MiguelSuárezPatiño是另一个 优胜者 我们每周比赛的内容:分享您对Linux的了解«。 祝贺米格尔!

普通用户,主要是Windows或Apple,对Linux充满热情并在命令控制台中花费大量时间键入“奇怪的东西”的人不太了解。

今天我要告诉您的是那些您特别为Linux感到骄傲的日子之一。 这是故事:

我亲爱的老式HP pavilion mx70品牌CRT显示器,它为我提供了多种分辨率,但是我的Linux Mint LXDE无法识别它,它显示了1024×768的良好分辨率,但只有60 Hz的刷新率,这不是对眼睛很好。 理论上讲,该分辨率的显示器可以达到85 Hz。

我现在该怎么办? 好吧,通常,转到命令行并播放!

使用xrandr

要修改分辨率,请使用命令“ xrandr”(X调整大小和旋转)。 使用此命令可以配置屏幕分辨率,但是只要监视器支持这些分辨率,还可以添加新的分辨率。

注释有几个图形界面:grandr,arandr。

要查看系统检测到的分辨率,就我而言,只需调用此命令并查看结果:

信息〜$ xrandr屏幕0:最小320 x 200,当前1024 x 768,最大4096 x 4096连接的VGA-0 1024x768 + 0 + 0(正常左x轴和右轴反转)0mm x 0mm 1024x768 60.0 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S视频断开(正常左反转右x轴y轴)

如您所见,对于1024×768的分辨率,它只能提供60.0 Hz。

好吧,我将添加我所能提供的最好的分辨率,这是我的显示器所提供的:1024 Hz时768×85。

问题是要创建新的分辨率,您需要“非常奇怪”的数据,例如垂直,水平,最大,最小,总频率等。但是,Linux也提供了“ cvt”命令(一种用于计算的实用程序)的解决方案达到分辨率所需的VESA模式。 好吧,如果我想在1024 Hz下为768×85,我会写:

信息〜$ cvt 1024 768 85#1024x768 84.89 Hz(CVT 0.79M3)hsync:68.68 kHz; pclk:94.50 Mhz Modeline“ 1024x768_85.00” 94.50 1024 1096 1200 1376 768 771 775 809 -hsync + vsync

您也可以尝试“ gtf”,其效果大致相同:

信息〜$ gtf 1024 768 85#1024x768 @ 85.00 Hz(GTF)hsync:68.60 kHz; pclk:94.39 MHz Modeline“ 1024x768_85.00” 94.39 1024 1088 1200 1376 768 769 772 -HSync + Vsync

这样,我必须与“ xrandr”一起使用的“ Modeline”出现了。 如果hz值不太匹配(94.50而不是85),请不要害怕。

通过复制获得的“模式行”来添加该分辨率的步骤:(详细信息,当您将一个带有其长名称的选项(如“ newmode”)放在其前面时,会出现2个破折号,但它们可能不会引起太大的注意,而其他时候只有1个破折号就像“ hsync”一样)

通知信息〜$ xrandr --newmode“ 1024x768_85.00” 94.50 1024 1096 1200 1376 768 771 775 809 -hsync + vsync

如果我们检查结果:

信息〜$ xrandr屏幕0:最小320 x 200,当前1024 x 768,最大4096 x 4096 VGA-0已连接1024x768 + 0 + 0(正常左反转右x轴y轴)0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S视频断开(正常左反转右x轴y轴)1024x768_85.00(0x137)94.5Mhz h:宽度1024开始1096结束1200总计1376偏斜0时钟68.7KHz v:高度768开始771结束775总计809时钟84.9Hz

您可以看到新创建的“ Modeline”。 我喜欢“ Modeline”的发音方式! 如果有一天我有一只猫,我会称呼它。

好吧,我们继续,现在我必须将此新模式添加到可用模式列表中:

信息〜$ xrandr –addmode VGA-0 1024x768_85.00

如果您查看“ xrandr”的结果,那么“ VGA-0”就是我的图形卡。 我们看到了完美的结果!

信息〜$ xrandr屏幕0:最小320 x 200,当前1024 x 768,最大4096 x 4096 VGA-0已连接1024x768 + 0 + 0(正常向左反转向右1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 1024x768_85.00 84.9 S -视频断开连接(正常的左反转右x轴y轴)

现在只需要将该分辨率应用于监视器即可:

信息〜$ xrandr-输出VGA-0-模式1024x768_85.00

一眨眼,监视器看上去比以往任何时候都更帅。

如果我想将分辨率设为800×600,刷新率为60 hz(我看到在此模式下有2种刷新,分别为60.3和56.2),该怎么办? 可以通过以下方式完成:

通知〜$ xrandr -s 800x600 -r 60

请注意,软饮料使用60代替60.3,因为后者不接受。 现在让我们回到漂亮的分辨率:

通知〜$ xrandr -s 1024x768_85.00

如果我默认在60 hz进行茶点,那么我们写:

信息〜$ xrandr -s 1024x768_85.00 -r 85

如果我错了并且想要删除所有内容该怎么办? 好吧,让我们去那里。 要从可用模式列表中删除此分辨率,请执行以下操作:

信息〜$ xrandr --delmode VGA-0 1024x768_85.00

如果我查看结果:

信息〜$ xrandr屏幕0:最小320 x 200,当前1024 x 768,最大4096 x 4096 VGA-0已连接1024x768 + 0 + 0(正常左反转右x轴y轴)0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S视频断开(正常左反转右x轴y轴)1024x768_85.00(0x136)94.5Mhz h:宽度1024开始1096结束1200总计1376偏斜0时钟68.7KHz v:高度768开始771结束775总计809时钟84.9Hz

它已从列表中删除,但是现在数据显示为以前创建时的方式(–newmode)。 也要删除它:

信息〜$ xrandr --rmmode 1024x768_85.00

我们看到结果:

信息〜$ xrandr屏幕0:最小320 x 200,当前1024 x 768,最大4096 x 4096 VGA-0已连接1024x768 + 0 + 0(正常左反转右x轴y轴)0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S视频断开(正常左反转右x轴y轴)

一切都与文章开始时一样...

最后,我知道您是一个小丑,所以请尝试以下操作:
首先编写此代码,此刻目前不做任何更改:

信息〜$ xrandr-输出VGA-0-正常旋转

现在,请考虑以下因素,以消除笑话,您必须重复上一条指令(只需使用光标键选择它即可):

信息〜$ xrandr-输出VGA-0-向左旋转

到目前为止,一切都很好,但是有一个问题,当重新启动计算机时,配置会丢失。 我认为每次进入计算机时调整屏幕刷新不是一个好主意,必须有一种方法来保持它固定不变。 去吧。

在Linux中,有一点点的配置文件,并且由于硬件可以更好地被发行版识别,因此该配置文件已被遗忘。 它的完整路径名称是“ /etc/X11/xorg.conf”。 使图形环境正常工作的所有参数的配置文件。

在LXDE(轻量级X11桌面环境)中,该文件不存在,因此必须创建它,这并不容易。 一种可能的解决方案是执行以下操作:

我们离开图形环境,然后按CTRL + ALT + F1进入终端,请记住图形环境为CTRL + ALT + F7)。 我们验证并“关闭”图形环境:

通知〜$ sudo /etc/init.d/lxdm停止

接下来,我们执行X配置:

通知〜$ sudo X-配置

创建了一个名为“ xorg.conf.new”的文件,我们必须将其移至您的站点并进行修改:

通知〜$ mv xorg.conf.new /etc/X11/xorg.conf

如果一切正确,我们想重新启动图形环境:

通知〜$ sudo /etc/init.d/lxdm开始

还有另一种更好的解决方案,您可以从“ CD Live”上的Linux发行版开始,然后复制完整路径为“ /etc/X11/xorg.conf”的文件并将其粘贴到您的发行版中。 如果该发行版正确检测到显示器,则问题就解决了,否则,您必须使用所需的屏幕刷新和分辨率数据来修饰文件。 例如,我必须添加以下内容以使苏打水足够:

“监控器”部分“通用监控器”选项“ DPMS”选项HorizSync 30-70 VertRefresh 50-120机型“ 1024x768_85.00” 94.39 1024 1088 1200 1376 768 769 772 -HSync + Vsync选项“ PreferredMode”“ 807x1024_768” EndSection “屏幕”部分“默认屏幕”设备“ ATI Technologies,Inc. Radeon RV85.00如果[Radeon 250 Pro]”监视器“通用监视器” DefaultDepth 9000选项“ AddARGBGLXVisuals”“ True”选项“元模式”“ 24x1024_768 +85.00+ 0“ Option” UseEdid“” False“ SubSection”显示“深度0模式” 1x1024“” 768x800“” 600x640“ EndSubSec .....等

非常重要的是,寻找显示器的技术特性以了解垂直和水平同步。 如图中所示,“ Modeline”是使用“ cvt”命令计算的。

进行必要的更改后,下次启动计算机时,一切准备就绪即可自动运行。 问题解决了。

现在,您如何向Windows或Mac中的一个解释当感觉到对计算机的“控制”(而不是相反)时的感受?

在我看来,我们是濒临灭绝的物种...🙁

那些想要继续加深对xrandr的了解的人,请不要停止阅读这些内容 旧物品 在此博客上发布。

谢谢MiguelSuárezPatiño!
您想参加我们的每月竞赛吗? 为社区做贡献?
您只需要给我们发送一个 邮件 包括您自己的技巧或小型教程。

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   电子博览会

    您好朋友,您好吗?感谢您的教程,对它进行了很好的解释,但对我而言确实不起作用。

    让我解释一下,在添加屏幕并放置vga的那部分中,它对我不起作用,因为在开始的配置列表中,我没有vga监视器,只有默认情况下的东西,我也没有怎么做这是因为我认为操作系统不存在可识别视频驱动程序的情况,在这种情况下为linux maint 10 lts,请不要安装最新的视频驱动程序,因为操作系统给pc处理器带来了错误,这是utech minilaptoc

    1.    胡安 - 帕布洛

      我也发生了同样的事情,而不是默认的VGA-0。

  2.   甘博里姆博

    我想在新安装的solusOS中调整32台监视器/电视的分辨率,您的文章非常明确,明确,解决方案也是您提出的问题(监视器自动调整)
    我祝贺你。

    问候

  3.   Donatien

    大量的ROLL配置屏幕分辨率和赫兹!!! ...在Windows中,只需单击三下即可解决!!! ...,而且我还可以控制«Machine»!!!!

    1.    Mig27

      错误:在Windows中,如果显示器由于缺少驱动程序而无法识别您,您将无能为力。
      在Linux中,如果驱动程序识别出它,则也不需要这样做。

      抱歉,在这种情况下您尝试“赞” Windows的尝试失败了...

  4.   米格尔

    错误。在 Windows 中,与在 Linux 中一样,您可以通过图形屏幕配置应用程序执行一些常规操作,但是当您想要充分利用显示器或操作系统不能完全很好地检测到它时,您将无法从 Windows 中执行以下操作:做任何事情, desde Linux 如果身体条件允许的话,你还有另一次机会。事实上,在 Windows 上,撰写本文的显示器只能在带有制造商驱动程序的 Windows 98 上正常工作。从更高版本开始,屏幕刷新效果非常差。

  5.   马里

    很好的教程,但我问你一个问题。 如果应用所有命令,并且屏幕保持在所需的分辨率,但移到一侧,该怎么办?

    1.    Mig27

      这可以通过显示器上的按钮解决。 通常有一个带有菜单的按钮,您可以在其中“移动”屏幕进行调整。

      问候

  6.   让我们使用Linux

    这是一个好问题。 我不确定是否可以使用软件来更正此错误。 通常,我似乎记得可以使用显示器上的按钮进行纠正。
    拥抱! 保罗

  7.   汤米·明特

    您真是个天才……我一直整天都在尝试设置显示器,但是没有成功……直到现在。 谢谢。

  8.   让我们使用Linux

    那么好! 我很高兴它为您服务。

    一个拥抱! 保罗

  9.   卡洛斯

    优秀且非常完整的教程!

  10.   otto06

    巨大的教程...

  11.   布希女士

    一份文件.. Mancantado !!!!!

  12.   贾斯汀的力量

    哇,真棒 !!!! 本文和Linux新手的好主意。

  13.   乔治·迪亚兹·蒙泰克萨诺

    我遵循了所有步骤。 而且他绝对不会救我任何东西。 每当我重新启动PC时,它都处于旧配置,并且我必须手动重置所有内容。 请…。 一点帮助 ...

  14.   尔万多瓦尔

    当您的分辨率较差并且找不到改变它的方法时,使用此推荐工具摆脱麻烦,使用xrandr -s 0就足够了!

  15.   卡洛斯

    谢谢,这对我有很大帮助。

  16.   艾尔·罗德

    谢谢,
    我已经尝试解决问题很多天了,我在5分钟内就解决了,很好的解释了

    感谢您分享您的知识,像您这样的人使Free Software更加易于访问且功能强大

    拥抱

  17.   max.

    非常感谢。

    我发现它非常有用。

    问候。

  18.   让·皮埃尔·

    它给了我一个错误,告诉我找不到vga,我把vga-1 vga-2 vga-0都没了,我放了VGA它没有告诉我它找不到我做什么

  19.   阿尔贝托

    关于xrandr命令的非常完整的说明。 在gnome中,每次登录时,“ xorg.conf”文件的配置都会更改,因此我可以创建一个脚本,以便正确设置每次重新启动。

    您好!

  20.   威灵桑塔纳

    经过长时间的网上搜索和研究,我可以使用本教程解决我的问题,该教程已经很好地解释和清楚了。

    谢谢

  21.   纳乔

    好吧,我一直使用Debian和零戏剧来配置事物,而不必进行那么详细的介绍。

    但是现在在Mint中,我找不到使监视器恢复正常的方法,并且在控制台中使用“ xrandr -s 0”可以很好地工作。

    事实是,是的,正如Donatien所说,有很多吊舱,尤其是当您更改发行版以使事情“更轻松”时。

    好 ...

    .

  22.   埃尔卡巴尔82

    该死,您太好了,非常感谢您使用1920X1080 60hz外接显示器的分辨率,我在本教程中仍然保持100。

    1.    让我们使用linux

      不客气,冠军! 一个拥抱! 保罗

  23.   圣地亚哥·阿莱西奥

    它对我来说非常完美,只是代替了VGA LVDS出现在我身上,所以我复制了所有内容,但更改了LVDS的VGA-0,一切正常

  24.   能源

    简直太完美了,如果可以的话,我请您喝杯咖啡。

    1.    让我们使用linux

      哈哈! 谢谢!
      拥抱,巴勃罗。

  25.   德拉克

    您好,您能帮我吗,我的显示器没有居中,它的分辨率为1920×1080 of 60.1 * +,这不是正确的选择,因为它没有居中,我的计算机的分辨率为1600×900,但是我没有不知道我必须将其设置为多少赫兹,而在执行cvt时,我需要将其设置为多少赫兹?
    drakkpac德拉克#cvt 1600 900 60
    #1600×900 59.95 Hz(CVT 1.44M9)hsync:55.99 kHz; pclk:118.25 MHz
    Modeline«1600x900_60.00»118.25 1600 1696 1856 2112 900 -hsync + vsync

    1.    让我们使用linux

      嗨,德拉克!

      我们建议您在我们的问答服务中问这个问题 询问供应商 DesdeLinux 这样整个社区都可以帮助您解决问题。

      拥抱,巴勃罗。

  26.   埃利亚斯

    非常感谢您,它运作完美。 问题是我不知道如何编辑文件(或要编辑的文件),使它永远保持这样的配置,有人可以帮助我吗? 我正在使用ubuntu studio 14.04(如果我没记错的话,它会使用xfce)

  27.   阿德里安

    当执行此步骤»informiguel〜$ xrandr –newmode«1024x768_85.00»94.50 1024 1096 1200 1376 768 771 775 809 -hsync + vsync»时出现错误«xrandr:无法获取默认输出的伽玛大小»

  28.   乔纳森·加西巴

    下午好朋友,

    出色的教程,我达到了分辨率和一切的目的,但是当我选择它时,它给了我一个错误,例如虚拟空间不足,我的显示器给了我1920×1080的分辨率,我想降低这个分辨率。但是,当我执行xrendr时,我看到的最小电流和最大值都等于1920×1080,我尝试了一些命令来告诉我视频是否正常工作,就像这样,出现齿轮,并且消息告诉我是! 。

    我想知道是否有一种方法可以将最小分辨率设置为另一个分辨率,而不是同一分辨率,以便通过我告诉我的具有分辨率的屏幕频率来输入我想要的值它是0。

  29.   安德列斯·奥斯普

    多亏了您,它对我非常有用,而且我已经是解决问题的专家! 我将分享博客,非常感谢…。 salu2

  30.   朱利安·D

    您好,您好,很好的解释,但是我有一个问题,要创建永久配置文件,您决定需要此文件(我在KaliLinux中,并且xorg.conf文件不存在

    通知〜$ sudo /etc/init.d/lxdm停止

    但是lxdm文件不存在,当我继续操作时,它告诉我必须停止服务器才能创建xorg.conf文件……因此,我必须停止该文件。

  31.   胆碱

    很好的文章,我可以添加所需的分辨率(1360×768),但不允许我选择该分辨率,这会给我带来以下错误:

    我可以在其中添加分辨率的图像:

    屏幕0:最小640 x 480,当前1024 x 768,最大1360 x 768
    默认连接1024×768 + 0 + 0 0mm x 0mm
    1024×768 0.00 *
    800×600 0.00
    640×480 0.00
    1360x768_60.00 60.00

    尝试选择该分辨率时出现错误
    :〜$ xrandr –输出默认值–模式1360x768_60.00 –primary
    xrandr:无法获得默认输出的伽玛大小
    xrandr:配置crtc 0失败

    像sudo这样的错误:

    sudo xrandr –输出默认–模式1360x768_60.00 –主要
    未指定协议
    无法打开显示:0

    有人知道这会是什么吗? 事实是,我读过很多论坛并尝试了很多事情,但我无法修复,最糟糕的是,由于此设置的分辨率,我无法关闭X服务器(或按ctrl + alt + f1),整个屏幕以彩色正方形像素化。

    从已经非常感谢你

  32.   卡斯德

    嗨,非常感谢您参加这种类型的教程,但是我有一个小问题。

    当应用命令〜$ xrandr -addmode 1336x768_85.00时,终端告诉我

    xrandr:无法识别的选项“ -addmode”

    在这里会发生什么?,我已经在没有脚本的情况下尝试了addmode,它告诉了我同样的事情。 我澄清说我拥有Debian 8.5以及之前的所有步骤都可以正常工作。

    感谢在前进。

  33.   耶稣爱德华多

    是“ -addmode”,不带引号,写这篇文章时出错。

  34.   何塞·希门尼斯

    兄弟,您是一个天才,非常感谢您使用本教程,我已经厌倦了寻找如何在1280 Hz时获得960×60的分辨率的方法,并且在使用本教程之前,我在xubuntu中是不可能的,非常感谢

  35.   匿名

    完美! ! !
    谢谢,太好了。
    很好的解释,一步一步来。 也有人学习。

  36.   丹尼尔·莫雷诺

    好吧,我按照他们告诉我的做了一切,但是当我添加它时,它会产生此错误,我不知道这意味着什么:
    X失败的请求错误:BadMatch(无效的参数属性)
    失败请求的主要操作码:140(RANDR)
    失败请求的次操作码:18(RRAddOutputMode)
    请求失败的序列号:30
    输出流中的当前序列号:31

    你能帮助我吗?

    我全屏显示

    根@ d4m:〜#xrandr
    屏幕0:最小8 x 8,当前1024 x 600,最大32767 x 32767
    LVDS1连接的主1024×600 + 0 + 0(法向左反转右x轴y轴)220mm x 130mm
    1024×600 60.19 * +
    800×600 60.32 56.25
    640×480 59.94
    512×300 60.00
    VGA1断开连接(正常左反转右x轴y轴)
    VIRTUAL1断开连接(法向左反转右x轴y轴)
    root @ d4m:〜#xrandr –newmode 1024x768_60.00 63.50 1024 1072 1176 1328 768 771 775 798 XNUMX -hsync + vsync
    根@ d4m:〜#xrandr –addmode LVDS1 1024x768_60.00
    X失败的请求错误:BadMatch(无效的参数属性)
    失败请求的主要操作码:140(RANDR)
    失败请求的次操作码:18(RRAddOutputMode)
    请求失败的序列号:30
    输出流中的当前序列号:31
    根@ d4m:〜#cvt 1024 768 60
    #1024×768 59.92 Hz(CVT 0.79M3)hsync:47.82 kHz; pclk:63.50 MHz
    Modeline«1024x768_60.00»63.50 1024 1072 1176 1328 768 771 -hsync + vsync
    根@ d4m:〜#

    只要您能帮助我,我会很感激,因为我是一名老师,我正在帮助我的学生。

  37.   苏索

    你救了我!!。 精彩的教程。

    我有两台笔记本电脑外部的显示器(我不输入原因,大声笑),一台通过HDMI连接,另一台通过VGA连接。 后者的分辨率为1024×768,由于您的教程,我设法将其设置为1920×1080。

    非常感谢你everything

  38.   VARO

    xrandr:无法获得默认输出的伽玛大小
    屏幕0:最小640 x 480,当前640 x 480,最大640 x 480
    默认连接的初级640×480 + 0 + 0 0mm x 0mm
    640×480 73.00 *
    好,我在终端中应用“ xrandr”时得到了这个。 当前我的分辨率非常大,设置中的选项已消失,该选项为空白并且没有分辨率类型。 它是核心3,我使用ubuntu 18。