How do I get kernel level drivers to ignore EDID/DDC information to allow output to non EDID compliant TV via DVI/HDMI?

Asked by ADFH

I have a Dell Inspiron 9400 / MP061 with an Intel 945GM graphics chipset. The notebook has composite, SVHS, PC RGB and DVI outputs.

Alongside this, I have a 'homebrand' LCD TV from German retailer Aldi which has HDMI, component, VGA and composite inputs.

The notebook dual boots Ubuntu 11.04 (what I added) + Windows Vista Basic (what it came with - handy for firmware updates). DVI and HDMI are electrically compatible with an adapter for a singlelink video connection and if I boot into Windows Vista, I can get a 1920x1080 image out of the computer via the DVI port into the TV with an HDMI adapter and via PC RGB on the TV.

If I boot into Linux, the Linux kernel drivers for the Intel chipset and related components refuse to acknowledge a device is connected to the DVI port on the basis of invalid DDC/EDID information it can't decode (probably a side-effect of chip cheap in TV or possibly something linux drivers don't understand).

Repeated messages like the following end up in dmesg:

[drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 130
[drm:drm_edid_block_valid] *ERROR* Raw EDID:
<3>01 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
<3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
<3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
<3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
<3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
<3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
<3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
<3>ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
.... above block repeated 3 times more ....
i915 0000:00:02.0: DVI-D-1: EDID block 0 invalid.

Subsequently no matter how much I fiddle with Xorg.conf, Xorg appears to be unable to use the DVI port with the TV as the kernel says nothing is connected (failing "open" after the invalid EDID info?).

On the upside, I *can* get 1920x1080 into the TV using PC RGB/VGA/DB15 mini (whatever you want to call it - it gets a 1300 x 700 odd res without the addition of a custom modeline to an otherwise generated Xorg.conf, but with the ModeLine added it runs at full res) - it just feels wrong that I should be using PC RGB to connect to a digital display device (Digital -> Analog ... Analog -> Digital). One of the things I like about Linux is that I can override things I don't like, but in this particular case, I couldn't find any kernel module options to "ignore DDC" or options to force a port active beyond xrandr and other xorg options etc. which seem still dependent on the lower level kernel modules.

I understand that the TV *should* be returning something that the kernel module likes, but surely if I can tell Windows to override (and Vista Basic at that) by unticking the "Show only modes the monitor supports" box, there should be a way of doing it in Linux?

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu xorg-server Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
actionparsnip (andrew-woodhead666) said :
#1

In your xorg.conf you can add:

Option “IgnoreEDID” “true”

In the video device section (not the monitor section).

HTH

Can you help with this problem?

Provide an answer of your own, or ask ADFH for more information if necessary.

To post a message you must log in.