如何使用 drm_kms_helper 加载 EDID 固件

Mad*_*max 5 intel-graphics kvm-switch

我的电脑屏幕有问题,我用 KVM 开关,但是这个开关似乎阻止了屏幕的 EDID 检测,并且由于没有检测到屏幕,启动后(当 Ubuntu 加载徽标正常出现时)屏幕进入睡眠模式。但是使用 nomodeset 内核选项,vesa 驱动程序可以正确检测屏幕并且它可以工作但有限制(没有硬件加速、鼠标闪烁、没有睡眠模式......)。

我做了很多测试(xrandr,构建我自己的 Xorg.conf ...),我终于找到了这个内核补丁:drm:允许加载一个 EDID 作为固件来覆盖损坏的监视器 所以我试图编译我自己的内核,我已经看到 Ubuntu 默认内核已经有这个补丁并配置为在内核上编译。

config-3.2.0-24-generic:

CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
Run Code Online (Sandbox Code Playgroud)

所以我做了一个 /etc/modprobe.d/drm-kms-helper.conf 包含:

cat /etc/modprobe.d/drm-kms-helper.conf
options drm_kms_helper edid_firmware=VGA1:edid/1680x1050.bin
Run Code Online (Sandbox Code Playgroud)

但是问题仍然存在,当我启动屏幕时。即使仍然要应用配置:

cat /sys/module/drm_kms_helper/parameters/edid_firmware 
VGA1:edid/1680x1050.bin
Run Code Online (Sandbox Code Playgroud)

我也试过这些设置:

=VGA-1:edid/1680x1050.bin
=edid/1680x1050.bin
Run Code Online (Sandbox Code Playgroud)

在 Xorg.0.log 上,系统的行为与以前相同:

[    21.832] (II) intel(0): EDID for output VGA1
[    21.837] (II) intel(0): EDID for output HDMI1
[    21.884] (II) intel(0): EDID for output DP1
[    22.012] (II) intel(0): EDID for output HDMI2
[    22.016] (II) intel(0): EDID for output HDMI3
[    22.064] (II) intel(0): EDID for output DP2
[    22.112] (II) intel(0): EDID for output DP3
[    22.112] (II) intel(0): Output VGA1 disconnected
[    22.112] (II) intel(0): Output HDMI1 disconnected
[    22.112] (II) intel(0): Output DP1 disconnected
[    22.112] (II) intel(0): Output HDMI2 disconnected
[    22.112] (II) intel(0): Output HDMI3 disconnected
[    22.112] (II) intel(0): Output DP2 disconnected
[    22.112] (II) intel(0): Output DP3 disconnected
[    22.112] (WW) intel(0): No outputs definitely connected, trying again...
[    22.112] (II) intel(0): Output VGA1 disconnected
[    22.112] (II) intel(0): Output HDMI1 disconnected
[    22.112] (II) intel(0): Output DP1 disconnected
[    22.112] (II) intel(0): Output HDMI2 disconnected
[    22.112] (II) intel(0): Output HDMI3 disconnected
[    22.112] (II) intel(0): Output DP2 disconnected
[    22.112] (II) intel(0): Output DP3 disconnected
[    22.112] (WW) intel(0): Unable to find connected outputs - setting 1024x768 initial framebuffer
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如日志中所写,存在1024x768图片但不唤醒屏幕。看到它的唯一方法是使用 KVM 从一台已激活的计算机切换到这台计算机。

现在我不知道要遵循哪些轨道,我迷路了。

我的问题似乎来自热插拔问题。当我禁用它时,一切顺利。 请参阅此处了解更多详情

Mad*_*max 2

我的问题似乎来自热插拔问题。当我禁用它时,一切都会顺利。 请参阅此处了解更多详情


小智 0

您可能需要使用内核参数 video=VGA-1:e 显式启用视频端口。