步骤1:

步骤1:

我有一个全新的桌面安装 CentOS7 和 Gnome 3。

我需要将这台机器与 KVM 一起使用,但由于某种原因 CentOS7 无法通过我拥有的 KVM 检测到我的显示器,因此它默认为 1024x768 分辨率的“未知显示”(如果我直接连接显示器,则一切都会以更高的分辨率检测和工作)到系统)。

如何手动配置才能使用更大的分辨率?

我尝试monitors.xml使用新分辨率进行编辑,但重新启动后 CentOS7 拒绝了更改,称无法检测到,并返回到 1024x768。

答案1

我在这里找到了解决方案的基础:https://askubuntu.com/questions/186288/how-to-detect-and-configure-an-output-with-xrandr

在现代 Linux 发行版中,包括 CentOS,xrandr 库负责屏幕分辨率、旋转等操作。由于您的系统无法自动检测,因此您必须手动告诉它您的显示器能够支持的模式。

我在使用 KVM 时遇到了同样的问题,示例输出来自我的计算机:

步骤1:

找到您的端口的名称。这将类似于 VGA1、HDMI1 等。您也许可以从 /var/log/Xorg.0.log 找到它,或者您可以使用 xrandr 实用程序:

> xrandr
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 connected primary 1024x768+0+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  
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

我的 KVM 连接到名为 VGA1 的 VGA 端口。由于 KVM 阻止自动检测,xrandr 只能看到 1024x768 分辨率。

第2步:

告诉 xrandr 有关新模式的信息。模式只是附加了视频显示参数的字符串。

步骤2.1

找到您需要的显示参数。我想要 1600x900 @ 60 Hz:

> gtf 1600 900 60 -x
# 1600x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 119.00 MHz
  Modeline "1600x900_60.00"  119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

步骤2.2

使用 gtf 命令中的值通过 xrandr 创建新模式:

> xrandr --newmode "1600x900" 119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync

第一个参数是新模式的名称 - 您实际上可以将其命名为您喜欢的任何名称,只需在后续步骤中使用相同的名称即可。

步骤3

告诉 xrandr VGA1 理解称为 1600x900 的模式:

> xrandr --addmode VGA1 1600x900

步骤4

告诉 xrandr 切换到新模式。

> xrandr --output VGA1 --mode 1600x900

注意:如果您犯了一个错误,并且您的显示器实际上并不理解新模式,您将看到空白屏幕!

如果您确实出现黑屏,您可以通过盲目键入以下内容来恢复:

> xrandr --output VGA1 --mode 1024x768

另一种解决方法是通过 SSH 从另一台计算机进行连接,并通过 SSH 而不是在控制台上执行此命令。

步骤5

创建一个脚本来自动执行 newmode、addmode 和输出命令,因为它们在重新引导期间不会被保留。

答案2

我同意这几乎是解决方案。这使我的屏幕具有正确的分辨率。

$ cvt 1920 1080 60
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

然而,屏幕的左侧和右侧都有两个主要的黑色列。我猜想是某种过扫描。

所以我必须 grep 一些在启动过程中从 xorg.log 中获取的值。

$ grep 1080 /var/log/Xorg.0.log
[  2316.000] (II) modeset(0): Modeline "1920x1080"x0.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)

因此,在用值 Xorg.0.log 替换 cvt 值后,我得到了正确的屏幕布局。

$ xrandr --newmode "1920x1080_60.00" 148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync

答案3

我遇到了大致相同的情况,上面的答案是如何解决此问题的更完整的解释之一,但我必须再上一层楼才能让我的 32 英寸三星以 2560x1440 渲染。

gtf 是上面用于获取计时的方法,该方法大部分有效,但它不会为我提供分辨率为 2560x1440 的模式。我使用了 cvt 程序,带有 -r 开关(这是必需的,并且不适合 crt,仅适用于无需消隐的设备)。

~% cvt -r  2560 1440 60
# 2560x1440 59.95 Hz (CVT 3.69M9-R) hsync: 88.79 kHz; pclk: 241.50 MHz
Modeline "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync

这种计时模式与 gtf 给出的上述信息类似,非常有效。我仍然希望能够将其“烘焙”到系统中X11,但我编写了脚本来创建、添加,然后切换到该模式,因此效果很好。

我衰老的眼睛喜欢巨大的显示器。没有什么比过度...

(执行模式添加和切换的脚本如下)

 #!/bin/bash
 # Used to get timing: cvt -r  2560 1440 60
xrandr --newmode  "2560x1440R"  241.50  2560 2608 2640 2720  1440 1443 1448 1481 +hsync -vsync
xrandr --addmode HDMI1 "25 60x1440R"
xrandr --output HDMI1 --mode "2560x1440R"

答案4

在花了几个宝贵的时间尝试上述和其他“解决方案”后,我遇到了这个:

http://elrepo.org/tiki/kernel-ml

相关内容