Genuinely Broken EDID (monitor eeprom checksum mismatch)

Asked by el es

Hi,
I have this laptop : https://wiki.edubuntu.org/LaptopTestingTeam/Old/AcerAspire3023;

Some time ago, its lvds started lying to the graphic card, that it can only do 1024x768 when its native res is 1280x800.
The effect was that the 1024x768 picture was being displayed in the upper left corner of the lvds, and the remaining 256 pix east of it and 32 pix south, were repeated pixels from left and right and up and down edge.

This was showing not only under Linux, but also at the BIOS self-test screen. So this is genuinely broken hardware. THIS IS NOT SOFTWARE PROBLEM!

Whoever is not interested, don't read further ;)

As I know now, the reason was this :

{{{
[code]
lukasz@lukasz-laptop:~$ sudo get-edid
[sudo] password for lukasz:
get-edid: get-edid version 2.0.0

 Performing real mode VBE call
 Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
 Function supported
 Call successful

 VBE version 300
 VBE string at 0xc0240 "ATI ATOMBIOS"

VBE/DDC service about to be called
 Report DDC capabilities

 Performing real mode VBE call
 Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
 Function supported
 Call successful

 Monitor and video card combination does not support DDC1 transfers
 Monitor and video card combination supports DDC2 transfers
 0 seconds per 128 byte EDID block transfer
 Screen is not blanked during DDC transfer

Reading next EDID block

VBE/DDC service about to be called
 Read EDID

 Performing real mode VBE call
 Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
 Function supported
 Call successful

�!x`
ʥ�[L�'"PT��P 00 &K�
�N15`
      �CMO
         �N154I1-L07
lukasz@lukasz-laptop:~$ sudo get-edid | parse-edid
parse-edid: parse-edid version 2.0.0
get-edid: get-edid version 2.0.0

 Performing real mode VBE call
 Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
 Function supported
 Call successful

 VBE version 300
 VBE string at 0xc0240 "ATI ATOMBIOS"

VBE/DDC service about to be called
 Report DDC capabilities

 Performing real mode VBE call
 Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
 Function supported
 Call successful

 Monitor and video card combination does not support DDC1 transfers
 Monitor and video card combination supports DDC2 transfers
 0 seconds per 128 byte EDID block transfer
 Screen is not blanked during DDC transfer

Reading next EDID block

VBE/DDC service about to be called
 Read EDID

 Performing real mode VBE call
 Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
 Function supported
 Call successful

parse-edid: EDID checksum failed - data is corrupt. Continuing anyway.

 # EDID version 1 revision 3
Section "Monitor"
 # Block type: 2:0 3:fe
 # Block type: 2:0 3:fe
 # Block type: 2:0 3:fc
 Identifier "N154I1-L07"
 VendorName "X@@"
 ModelName "N154I1-L07"
 # Block type: 2:0 3:fe
 # Block type: 2:0 3:fe
 # Block type: 2:0 3:fc
 # DPMS capabilities: Active off:no Suspend:no Standby:no

 Mode "1280x800" # vfreq 59.910Hz, hfreq 49.306kHz
  DotClock 71.000000
  HTimings 1280 1328 1360 1440
  VTimings 800 802 808 823
  Flags "+HSync" "-VSync"
 EndMode
 # Block type: 2:0 3:fe
 # Block type: 2:0 3:fe
 # Block type: 2:0 3:fc
EndSection

[/code]
}}}

As I have successfully enabled and using KMS, I get this in dmesg a lot:
{{{
[ 250.610530] radeon 0000:01:00.0: LVDS-1: EDID invalid.
[ 250.871454] [drm:edid_is_valid] *ERROR* EDID checksum is invalid, remainder is 81
[ 250.871460] [drm:edid_is_valid] *ERROR* Raw EDID:
[ 250.871464] <3>00 ff ff ff ff ff ff 00 60 00 00 15 00 00 00 00 ........`.......
[ 250.871467] <3>02 0d 01 03 80 21 15 78 0a ca a5 95 5b 4c 95 27 .....!.x....[L.'
[ 250.871470] <3>22 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 "PT.............
[ 250.871473] <3>01 01 01 01 01 01 bc 1b 00 a0 50 20 17 30 30 20 ..........P .00
[ 250.871476] <3>26 00 4b cf 10 00 00 1c 00 00 00 fe 00 4e 31 35 &.K..........N15
[ 250.871479] <3>60 00 00 0a 20 20 20 20 20 20 00 00 00 fe 00 43 `... .....C
[ 250.871482] <3>4d 4f 0a 20 20 20 20 20 20 20 20 20 00 00 00 fc MO. ....
[ 250.871485] <3>00 4e 31 35 34 49 31 2d 4c 30 37 0a 20 20 00 05 .N154I1-L07. ..
[ 250.871487]
[ 250.871491] radeon 0000:01:00.0: LVDS-1: EDID invalid.

}}}

But as it seems, I am now able to use full 1280x800 resolution, with a script like this :

{{{
lukasz@lukasz-laptop:~$ cat set1280x800
#!/bin/bash
xrandr --newmode 1280x800@60 71.0 1280 1328 1360 1440 800 802 808 823 +HSync -VSync
xrandr --addmode LVDS 1280x800@60
xrandr --output LVDS --mode 1280x800@60

}}}

added to default session start.
I can then use 1280x800 desktop (gdm+compiz) but switching to console produces the following in dmesg :

{{{
[ 7341.425650] [drm] LVDS-6: set mode 1024x768 d

 and back:
[ 7383.782155] [drm] LVDS-6: set mode 1f

}}}

This all on

{{{
lukasz@lukasz-laptop:~$ uname -a
Linux lukasz-laptop 2.6.31-22-generic #60-Ubuntu SMP Thu May 27 00:22:23 UTC 2010 i686 GNU/Linux

}}}

As this needs to be a question - any easy way to write correct EDID data back to the screen's eeprom ?
Or to define the 1280x800 res so that console can use it as well ?
(this is just an 'interesting' question - to whoever is interested and can suggest, I don't require anybody to support broken hardware ;)

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu xserver-xorg-video-ati Edit question
Assignee:
No assignee Edit question
Solved by:
el es
Solved:
Last query:
Last reply:
Revision history for this message
marcobra (Marco Braida) (marcobra) said :
#1

Seems like ( this but with different graphic card ) https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/454388

Please try something from this https://wiki.ubuntu.com/X/Troubleshooting/Resolution

https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/429369 (read at the end)

i think is better to log a bug report

Hope this helps

Revision history for this message
el es (el-es-poczta) said :
#2

@marcobra:
my graphic card is Mobility Radeon X700 (RV 420), not Intel...
And, with the script I posted, it can use 1280x800 on the lvds, but only with linux - BIOS screen and Windows only display 1024x768 in upper left corner...

So this is not driver problem; This is genuinely broken hardware...

Revision history for this message
el es (el-es-poczta) said :
#3

also, i have tried adding 1280x800 to lvds in kernel kms command line, no joy.