使用 xrandr 更改分辨率时出现问题:匹配错误

使用 xrandr 更改分辨率时出现问题:匹配错误

我进入显示器,那里的最大分辨率是 1360x768 (16:9)。然而,在 Windows 8.1 上,我可以使用 1680x1050(16:10) 分辨率,没有任何问题。因此,我尝试使用 xrandr 添加自定义分辨率:

xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync

xrandr --addmode DVI-I-0 "1680x1050_60.00"

但是,输入最后一条命令后,出现如下内容:

X Error of failed request:  BadMatch (invalid parameter attributes)
 Major opcode of failed request:  140 (RANDR)
 Minor opcode of failed request:  18 (RRAddOutputMode)
 Serial number of failed request:  39
 Current serial number in output stream:  40

我还输入了 xrandr,并确认 DVI-I-0 是唯一显示已连接的:

Screen 0: minimum 8 x 8, current 1360 x 768, maximum 16384 x 16384
DVI-I-0 connected primary 1360x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00 +
   1360x768      59.96*   59.80  
   1152x864      60.00  
   800x600       72.19    60.32    56.25  
   680x384       59.96    59.80  
   640x480       59.94  
   512x384       60.00  
   400x300       72.19  
   320x240       60.05  
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
  1680x1050_60.00 (0x2ae) 146.250MHz
          h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
          v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz

另外,我正在运行 Ubuntu 15.10。

我怎样才能获得 1680x1050(16:10) 分辨率?感谢您提供的任何帮助。

编辑:忘了说 - 在 Ubuntu 之前,我使用过 Linux Mint,也遇到了同样的问题。但是,正如我之前所说,我在 Windows 上没有遇到这个问题。

EDIT2:以下链接中有 /var/log/Xorg.0.log 文件:http://pastebin.com/sjSLScjK,而且我还有一台华硕显示器。

答案1

好的,在写这个答案的时候,您没有菜单栏,而且我还没有看到您的 xorg.conf 文件,但我相信我知道足够多的信息来了解您需要做什么,并且我相信如果您无法在没有菜单栏的正常启动模式下执行此操作,您将能够从恢复模式对 xorg.conf 文件进行更改。

首先,我认为这些[ 28.338] (WW) NVIDIA: GPU:0: Unable to read EDID for display device DVI-I-0警告很重要,但我认为没有什么“错误”,更多的可能是显示器、VGA 电缆、计算机或某种组合的限制。我的计算机、VGA、电视组合也无法自动检测 EDID。

维基百科上有关于 EDID 的条目,您可能会发现它很有用:https://en.wikipedia.org/wiki/Extended_Display_Identification_Data

您已经创建了一个 xorg.conf 文件,但为了完整起见,我将在此答案中包含这些步骤。您可以按照 Alexander Malakhov 的回答这个问题

  1. Alt+Ctrl+F1 切换到控制台模式
  2. 通过停止显示管理器来停止 X 服务器:(sudo service gdm stop或者sudo service lightdm stop如果您有 Lubuntu 和/或 LXDE 环境)。
  3. sudo X -configure创建一个xorg.conf.new文件
  4. sudo mv xorg.conf.new /etc/X11/xorg.conf重命名并将文件移动到 xorg.conf 所在的位置
  5. sudo service gdm start或者sudo service lightdm start重新启动显示管理器和 X 服务器。sudo start gdmsudo start lightdm可以工作。

您现在有了文件 /etc/X11/xorg.conf。它现在的内容和应该包含的内容取决于您自己的系统。我将在这里分享我自己的 xorg.conf 文件(针对我的系统正确配置)的相关部分,并向您讲解。

但首先,如何编辑它?如果一切正常,那么您可以通过打开终端并输入 来编辑它sudo nano /etc/X11/xorg.conf。如果您在正常启动模式下编辑它时遇到问题,那么您可以在恢复模式下编辑它:启动计算机,从 grub 启动菜单中选择“高级选项”,然后选择最新内核的恢复模式,然后选择 root shell 提示符。您需要输入命令:mount -o remount,rw /使所有内容都可读写。然后,您可以使用命令nano /etc/X11/xorg.confsudo在 root shell 提示符模式下不需要)编辑 xorg.conf 文件。(完成 root shell 提示符后,输入exit,然后选择“恢复正常启动”,然后您可能需要重新启动以查看更改是否已生效。)

此链接提供有关恢复模式的有用信息。

以下是我的 xorg.conf 文件的相关部分,您的可能有所不同。您可以通过man xorg.conf在终端中输入来访问 xorg.conf 手册,也可以在互联网上的几个地方找到它,例如这里. 还有一个 Ubuntu wiki这里

Section "Monitor"
    Identifier   "Monitor0"
    VendorName   "Monitor Vendor"
    ModelName    "Monitor Model"
        HorizSync       28.0 - 83.0
        VertRefresh     56.0 - 75.0
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "SWcursor"              # [<bool>]
        #Option     "kmsdev"                # <str>
        #Option     "ShadowFB"              # [<bool>]
    Identifier  "Card0"
    Driver      "sis"
    BusID       "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    SubSection "Display"
        Viewport   0 0
        Depth     1
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     4
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     8
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     15
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     16
    EndSubSection
    SubSection "Display"
        Viewport   0 0
        Depth     24
                 Modes     "1360x768"
    EndSubSection
EndSection

Driver我相信你的答案是正确的Section "Device",你的答案应该是类似的nvidia

接下来,让我们看看Section "Screen"。您可能和我一样,有多个小节,在这种情况下,您唯一需要担心的就是Depth 24小节。插入以下行:

Modes "1680x1050"

进入该子部分。您的计算机无法使用 EDID 确定屏幕尺寸,因此我们手动告诉计算机屏幕尺寸是多少。

我相信这是您需要进行的更改才能使其正常工作。重新启动机器并查看分辨率是否已修复。

您可能需要进行进一步的更改:在部分中Section "Monitor",您可以看到我的 xorg.conf 中的HorizSyncVertRefresh行。您可能也需要在您的 xorg.conf 中使用这些行。但是,您需要为这两行指定的范围取决于您的显示器。如果您有显示器手册,请查看手册背面的“规格”。如果您没有手册,华硕似乎在其网站上提供了手册,但我不知道您的显示器的型号名称/编号。您可以从显示器背面的贴纸上获取型号名称/编号。

手册的“规格”部分中有一个列表,列出了分辨率以及相应的水平和垂直值。您希望范围HorizSync包括您可能使用的每个分辨率的所有水平值:找到列表中的最低值并将其作为下限,并将上限设置为与列表中的最高值相同。同样,对于VertRefresh,使用垂直列中的最低值和最高值(我随机挑选的 ASUS 手册将其称为“刷新率”)。如果您添加HorizSyncVertRefresh行,则保存并重新启动以查看这是否解决了问题。

请通过评论分享,此时分辨率问题(如果有)已修复。如果仍未修复,我们可能需要再次查看您的 /etc/X11/xorg.conf 和 /var/log/Xorg.0.log 文件。

相关内容