在 Ubuntu 中强制屏幕模式的游击战术

作者:Michael Reed

我之前文章的读者会知道我在 Linux 上设置屏幕时运气不好,尤其是在 Ubuntu Linux 上。当硬件检测出错并显示不合适的屏幕模式列表时,这是一个特别令人恼火的问题。 以下是使用 XRandR(X 旋转和调整大小)在传统方法失败时强制 X 使用所需屏幕模式的方法。

添加新模式并测试它工作后,您可以将其添加到 xorg.conf 或登录管理器的启动脚本中。 以下大部分内容都假定您正在使用 Ubuntu Linux,但它应该同样适用于除最不寻常的发行版之外的所有发行版。

如果您遇到在 X 启动时,您的显示器立即变为空白并报告传入信号超出范围的问题,则可能值得尝试按 ctrl+alt+[减号] 来更改屏幕模式。 反复按此组合键可能会选择您的显示器可以显示的屏幕模式。

一旦您有了可用的显示,打开一个命令行并输入

xrandr

当您在没有参数的情况下调用 XRandR 时,它会列出当前支持的屏幕模式。 典型的输出可能如下所示

Screen 0: minimum 800 x 600, current 800 x 600 , maximum 800 x 600
default connected 800x600 +0+0 0mm x 0mm
800x600 60.0

如果此处列出了您需要的屏幕分辨率和刷新率,那么尝试使用桌面环境的标准工具或显卡驱动程序的特定工具来更改屏幕模式可能是一个好主意。

如果未显示您所需的分辨率,您可以使用 XRandR 将其添加到系统中。 首先使用 cvt 命令为您的屏幕设置生成一个 modeline。 例如,如果您需要一个 1280x1024 @ 60Hz 的屏幕模式,请输入

cvt 1280 1024 60

输出应如下所示

# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync

使用 XRandR 将此模式添加到系统中

xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync

我通过复制和粘贴 cvt 输出中“Modeline”这个词之后的所有内容来获得我需要的技术信息。 现在再次输入“xrandr”以确保新模式已添加到系统中。 您应该看到它与其他模式一起列出。 请注意,该示例中的字符串“1280x1024_60.00”只是模式的名称,名称中的实际数字无关紧要。 创建模式后,使用以下命令将其附加到显示输出。

xrandr --addmode default 1280x1024_60.00

在我的设置中,显示输出被称为“default”,这由不带参数的 xrandr 命令输出的第二行显示。 现在尝试更改为新的屏幕模式。

xrandr --output default --mode 1280x1024_60.00

如果这有效,您就可以永久更改了。 您可以通过编辑 xorg.conf 文件或向启动文件添加命令序列来完成此操作。

基本上,您将 modeline 添加到 xorg.conf 文件的“Monitor”部分,并将模式本身添加到“Screen”主部分中的“Display”子部分,添加到或替换已有的内容。

因此,与上述示例保持一致,“Monitor”部分应如下所示

Section "Monitor"
    Identifier "default"
    Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync 
    Option "PreferredMode" "1280x1024_60.00"
EndSection

“Screen”部分如下所示

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
    Modes “1280x1024_60.00”
        Depth       24
    EndSubSection
EndSection

重启并查看您是否有一个工作的显示器。

另一种方法是将您已使用的命令序列添加到您的登录管理器。 如果其他方法根本无法工作,这是一个最后的手段,但它工作得很好。 对于 KDM,即 KDE4 登录管理器,您应该能够通过输入以下内容来编辑启动脚本

sudo kwrite /etc/kde4/kdm/Xsetup

等效的 GDM(Gnome)文件是“/etc/gdm/Init/Default”。 以上述设置为例,只需将以下行剪切并粘贴到此文件中。

xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
xrandr --addmode default 1280x1024_60.00
xrandr --output default --mode 1280x1024_60.00

这就是您所拥有的,一种相当游击的方式来强制屏幕执行您想要的操作。

加载 Disqus 评论