我正在使用Mythbuntu 12.04和一台电视,只有在打开电视时才提供EDID信息。由于计算机将用于通过MythTV录制视频,我不希望在计算机运行时始终保持电视开启。
我将EDID保存到文件中,放置在/lib/firmware目录下,并在内核命令行中添加drm_kms_helper.edid_firmware=DVI-I-1:LT26-A.VGA.EDID.bin
。内核从此文件加载EDID,并以正确的分辨率启动X。然而,内核仍然尝试从设备读取EDID,导致我的日志被类似以下的消息刷屏:
[ 31.926373] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 128
[ 31.927144] Raw EDID:
[ 31.927352] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.927882] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.928454] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.928984] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.929513] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.930042] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.930569] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.931097] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.931630] radeon 0000:01:00.0: DVI-I-1: Ignoring invalid EDID block 1.
[ 31.990143] i2c i2c-3: sendbytes: NAK bailout.
[ 31.993215] [drm:radeon_dvi_detect] *ERROR* DVI-I-1: probed a monitor but no|invalid EDID
[ 32.023802] [drm] Got external EDID base block and 0 extensions from "LT26-A.VGA.EDID.bin" for connector "DVI-I-1"
[ 32.774355] i2c i2c-3: sendbytes: NAK bailout.
添加drm_kms_helper.edid_firmware选项也会在关机或重启时导致长时间延迟。即使显示器开启,这种情况仍然发生。部分原因是所有对plymouth的调用都会暂时挂起,可能是由于plymouthd挂起所致。这会导致在关机时执行的脚本暂停一段时间。不在关机时运行plymouthd可以解决问题,但仍然存在延迟。
延迟结束后,我看到:
[drm:edid_load] *ERROR* Requesting EDID firmware "LT26-A.VGA.EDID.bin" failed (err=-2)
这闪过得非常快,然后出现闪屏或重新启动。我只能用相机录下来。对我来说毫无意义,因为在延迟期间,计算机通过SSH是完全可用的。内核应该能够读取该文件。
我认为这不是一个Plymouth问题。它可能挂起是因为请求的某个视频模式更改挂起了。然而,我希望能够告诉Plymouth始终保持普通的VGA文本模式。
我还尝试了
drm_kms_helper.poll=0
和 drm_kms_helper.poll=N
内核选项。它们可以根据 /sys 设置选项,但我没有看到任何变化。添加
nomodeset
内核参数可以解决这些问题。不过,X服务器中当前版本的radeon驱动程序无法正常工作,而更新的版本则拒绝运行。更新:在
/etc/init/plymouth.conf
中关闭时调用plymouthd时添加 --tty=/dev/console
已经修复了关机挂起的问题,即使电视关闭了也是如此。