I'm using Mythbuntu 12.04 with a TV which only provides EDID information when it is turned on. Since the computer will be used for recording video via MythTV, I don't want to always have the TV on while the computer is running.
I saved the EDID to a file, put it in /lib/firmware, and added drm_kms_helper.edid_firmware=DVI-I-1:LT26-A.VGA.EDID.bin
to the kernel command line. The kernel loads EDID from this file, and X starts with the proper resolution. However, the kernel still attempts to read EDID from the device and spams my logs with messages like this:
[ 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.
Adding the drm_kms_helper.edid_firmware option also causes a long delay when shutting down or rebooting. It happens even when the monitor is on. Part of it is due to all invocations of plymouth
hanging for a while, probably due to plymouthd
hanging. This makes scripts executed at shutdown hang for a while. Not running plymouthd
at shutdown helps, but there is still a delay.
After the delay, I see:
[drm:edid_load] *ERROR* Requesting EDID firmware "LT26-A.VGA.EDID.bin" failed (err=-2)
This flashes by very quickly and is followed by the splash screen or reboot. I could only record it using a camera. It makes no sense to me because during the delay the computer was fully usable via SSH. The kernel should have been able to read the file.
I don't think this is a Plymouth problem. It's probably hanging because some video mode change it requests is hanging. However, I'd love to be able to tell Plymouth to always stay in ordinary VGA text mode.
I also tried drm_kms_helper.poll=0
and drm_kms_helper.poll=N
kernel options. They can set the option according to /sys, but I don't see any change from that.
Adding the nomodeset
kernel parameter gets rid of the these issues. However, then the current version of the radeon driver in the X server doesn't work properly and newer versions refuse to run.
Update: Adding --tty=/dev/console
to the invocation of plymouthd at shutdown in /etc/init/plymouth.conf
has fixed the shutdown hang, even when the TV is turned off.