我使用的是 i3-3225 处理器(Ivy Bridge 处理器)中的 GPU。PC 通过 KVM 切换器连接到显示器。
当启动 PC 并选择显示器并打开时,我得到的显示器分辨率为 1280x1024。
当启动时显示器关闭或者未在端口上选择显示器时,我得到的分辨率为 1024x768 @ 61 kHz。
我该怎么做才能获得 1280x1024 分辨率?
我尝试了 xrandr 配方,但我得到了xrandr:配置 crt 0 失败错误。
我知道 EDID 的事情。有没有办法保存当前的 Xorg 配置,即使显示器未连接也可以用作默认配置?
编辑:附加信息
这是当 PC 启动并连接显示器时我得到的 xrandr --verbose 的输出:
$ xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1280 x 1024, maximum 1280 x 1024
default connected 1280x1024+0+0 (0x138) normal (normal) 0mm x 0mm
Identifier: 0x137
Timestamp: 1212589
Subpixel: no subpixels
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
1280x1024 (0x138) 0.0MHz *current
h: width 1280 start 0 end 0 total 1280 skew 0 clock 0.0KHz
v: height 1024 start 0 end 0 total 1024 clock 0.0Hz
1024x768 (0x139) 0.0MHz
h: width 1024 start 0 end 0 total 1024 skew 0 clock 0.0KHz
v: height 768 start 0 end 0 total 768 clock 0.0Hz
800x600 (0x13a) 0.0MHz
h: width 800 start 0 end 0 total 800 skew 0 clock 0.0KHz
v: height 600 start 0 end 0 total 600 clock 0.0Hz
640x480 (0x13b) 0.0MHz
h: width 640 start 0 end 0 total 640 skew 0 clock 0.0KHz
v: height 480 start 0 end 0 total 480 clock 0.0Hz
这是 xrandr --verbose 的输出,我在 PC 启动时得到显示内容不是连接的:
$ xrandr --verbose
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1024 x 768, maximum 1024 x 768
default connected 1024x768+0+0 (0x138) normal (normal) 0mm x 0mm
Identifier: 0x137
Timestamp: 4495
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
1024x768 (0x138) 48.0MHz *current
h: width 1024 start 0 end 0 total 1024 skew 0 clock 46.8KHz
v: height 768 start 0 end 0 total 768 clock 61.0Hz
800x600 (0x139) 29.3MHz
h: width 800 start 0 end 0 total 800 skew 0 clock 36.6KHz
v: height 600 start 0 end 0 total 600 clock 61.0Hz
640x480 (0x13a) 18.4MHz
h: width 640 start 0 end 0 total 640 skew 0 clock 28.8KHz
v: height 480 start 0 end 0 total 480 clock 60.0Hz
答案1
问题是由我的 KVM(TRENDnet TR-409K)交换机引起的,当屏幕连接到 PC 时,它不能正确转发 DDC/EDID 信息,而当屏幕未连接时,则完全不转发任何信息。
因此,英特尔驱动程序无法确定屏幕特性。因此,我必须添加 nomodeset 启动选项,该选项会禁用 KMS 系统,因此屏幕分辨率也会随 xrandr 一起更改。但至少英特尔驱动程序能够在屏幕连接时启动,并提供 1280x1024 的最大分辨率。如果没有连接,英特尔驱动程序将放弃,VESA 驱动程序将以 1024x768 的最大分辨率启动。
当我将显示器直接连接到 PC(移除 KVM)进行启动时,英特尔驱动程序会获取其所需的所有信息,并且我会获得更多的显示模式。
我使用的 KVM 比较便宜,因此不够好。好的 KVM 会缓存显示器提供的 EDID 信息,这样即使显示器没有连接到 PC,连接到 KVM 的 PC 也可以获取该信息。这种用于桌面的智能 KVM 当然更贵。
顺便说一句,当我启动 Windows 7 计算机且显示器未连接时,我也遇到了同样的显示分辨率问题。启动时连接屏幕时,我获得正确的 1280x1024 分辨率,而启动时未连接屏幕时,我获得的最大分辨率为 1024x768。现在我明白为什么了。
我订购了一台新的 KVM 切换器(Belkin SOHO kvm 切换器),它“更智能”,据说可以缓存 DDC/EDID 信息。我会尽快更新此回复并提供反馈。