Monitor's EDID not recognised
Apologies for what might be a frequently asked question, but I haven't found an answer on the web yet.
I have a Sony CPD-G520 (21" CRT monitor) for which I would like to be able to read the EDID. However, sensors-detect finds SPD EEPROM where the EDID EEPROM probably, and typically, is.
This is an edit from sensors-detect output:
Next adapter: SMBus I801 adapter at 0400 (i2c-0)
Do you want to scan it? (YES/no/selectively):
Client found at address 0x44
Probing for `Maxim MAX6633/MAX6634/MAX6635'... No
Client found at address 0x50
Probing for `Analog Devices ADM1033'... No Probing for `Analog Devices ADM1034'... No Probing for `SPD EEPROM'... Yes
(confidence 8, not a hardware monitoring chip)
Probing for `EDID EEPROM'... No
It then gives the same output for 0x50 at 0x51, 0x52 and 0x53. When I load the eeprom module it says that it is handling it. The problem is that there are no valid EDIDs at those addresses, as reported by decode-edid.pl (it's a 64-bit system so no get-edid). So I'm not sure whether a) the EDID is corrupt, or b) it's not actually accessing the EDID. Any ideas?
The graphics card is an NVIDIA 7600GS, motherboard chipset is the Intel ICH7 family. Hardware monitoring of CPU and motherboard temperature via I2C works fine. Thanks!
Jeremy
_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c
A message that is not in the archive (sent off-list or not yet received): 200803071923.32035.jeremy.william.murphy-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Hi Jeremy,
Quoted 18 lines · Jeremy Murphy
Apologies for what might be a frequently asked question, but I haven't found an answer on the web yet.
I have a Sony CPD-G520 (21" CRT monitor) for which I would like to be able to read the EDID. However, sensors-detect finds SPD EEPROM where the EDID EEPROM probably, and typically, is.
This is an edit from sensors-detect output:
Next adapter: SMBus I801 adapter at 0400 (i2c-0)
Do you want to scan it? (YES/no/selectively):
Client found at address0x44
Probing for `Maxim MAX6633/MAX6634/MAX6635'... No
Client found at address0x50Probing for `Analog Devices ADM1033'... No Probing for `Analog Devices ADM1034'... No Probing for `SPD EEPROM'... Yes
Quoted 8 lines
(confidence 8, not a hardware monitoring chip)
Probing for `EDID EEPROM'... NoIt then gives the same output for
0x50at0x51,0x52and0x53. When I load the eeprom module it says that it is handling it. The problem is that there are no valid EDIDs at those addresses, as reported by decode-edid.pl (it's a 64-bit system so no get-edid). So I'm not sure whether a) the EDID is corrupt, or b) it's not actually accessing the EDID. Any ideas?
What does decode-dimms.pl say? If you have 4 memory modules on this system then it is expected that sensors-detect (or i2cdetect) will see 4 SPD EEPROMs at 0x50, 0x51, 0x52 and 0x53.
Quoted 3 lines
The graphics card is an NVIDIA 7600GS, motherboard chipset is the Intel ICH7 family. Hardware monitoring of CPU and motherboard temperature via I2C works fine. Thanks!
I'm not sure why you would expect the EDID EEPROM on the ICH7 SMBus. I've never seen an EDID EEPROM there. The EDID EEPROM is typically accessed through an I2C bus on the graphics adapter. You will need a driver for this. The binary nvidia X11 driver should work, the nvidiafb framebuffer driver should work as well (that's what I am using myself). After loading the driver, 2 or 3 additional I2C buses should be listed by "i2cdetect -l" (don't forget to load i2c-dev beforehand), and decode-edid.pl (or the more user-friendly ddcmon script) should find the EDID on one of them.
Signature · 6 lines
Jean Delvare _______________________________________________ i2c mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/i2c
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 4 lines · Jean Delvare
What does decode-dimms.pl say? If you have 4 memory modules on this system then it is expected that sensors-detect (or i2cdetect) will see 4 SPD EEPROMs at
0x50,0x51,0x52and0x53.
You're absolutely right, they are my DIMMS. I assumed that was the EDID and its shadows because they started at the same address and I'd seen the same output on some other nvidia users' reports. Now I know better, thanks!
Quoted 9 lines
I'm not sure why you would expect the EDID EEPROM on the ICH7 SMBus. I've never seen an EDID EEPROM there. The EDID EEPROM is typically accessed through an I2C bus on the graphics adapter. You will need a driver for this. The binary nvidia X11 driver should work, the nvidiafb framebuffer driver should work as well (that's what I am using myself). After loading the driver, 2 or 3 additional I2C buses should be listed by "i2cdetect -l" (don't forget to load i2c-dev beforehand), and decode-edid.pl (or the more user-friendly ddcmon script) should find the EDID on one of them.
I'm using nvidia's binary driver v169.07, and yes, the nvidia I2C buses are there. i2cdetect -l:
i2c-3 i2c NVIDIA i2c adapter I2C adapter i2c-2 i2c NVIDIA i2c adapter I2C adapter i2c-1 i2c NVIDIA i2c adapter I2C adapter i2c-0 smbus SMBus I801 adapter at 0400 SMBus adapter
However, decode-edid.pl and ddcmon both report that an EDID EEPROM is not found.
Jeremy
_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c
A message that is not in the archive (sent off-list or not yet received): 200803072237.36693.jeremy.william.murphy-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Quoted 13 lines · Jeremy Murphy
Quoted 9 lines
I'm not sure why you would expect the EDID EEPROM on the ICH7 SMBus. I've never seen an EDID EEPROM there. The EDID EEPROM is typically accessed through an I2C bus on the graphics adapter. You will need a driver for this. The binary nvidia X11 driver should work, the nvidiafb framebuffer driver should work as well (that's what I am using myself). After loading the driver, 2 or 3 additional I2C buses should be listed by "i2cdetect -l" (don't forget to load i2c-dev beforehand), and decode-edid.pl (or the more user-friendly ddcmon script) should find the EDID on one of them.
I'm using nvidia's binary driver v169.07, and yes, the nvidia I2C buses are there. i2cdetect -l:
Quoted 7 lines
i2c-3 i2c NVIDIA i2c adapter I2C adapter i2c-2 i2c NVIDIA i2c adapter I2C adapter i2c-1 i2c NVIDIA i2c adapter I2C adapter i2c-0 smbus SMBus I801 adapter at 0400 SMBus adapterHowever, decode-edid.pl and ddcmon both report that an EDID EEPROM is not found.
Please provide the output of:
i2cdetect 1
i2cdetect 2
i2cdetect 3
Either there is no EDID EEPROM connected at all (some monitors don't have them, in particular older models) or it has a format different from what the scripts expect.
If anything shows up at 0x50 with i2cdetect, please provide a dump using i2cdump (rmmod eeprom first.)
Signature · 6 lines
Jean Delvare _______________________________________________ i2c mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/i2c
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 11 lines · Jean Delvare
Quoted 10 lines · Jeremy Murphy
I'm using nvidia's binary driver v169.07, and yes, the nvidia I2C buses are there. i2cdetect -l:
i2c-3 i2c NVIDIA i2c adapter I2C
adapter i2c-2 i2c NVIDIA i2c adapter
I2C adapter i2c-1 i2c NVIDIA i2c adapter
I2C adapter i2c-0 smbus SMBus I801 adapter at 0400
SMBus adapter
Quoted 4 lines
Quoted 2 lines
However, decode-edid.pl and ddcmon both report that an EDID EEPROM is not found.
Please provide the output of:
I've just learnt that a number of people could no longer access their EDID after upgrading their nvidia driver to the 100.* series. I downgraded to 96.43.01 and now their is _something_ on the I2C nvidia bus 1, but it's not pretty.
These following results are inconsistent, which I'm guessing is not a good sign. They vary somewhat between each call but they always have a similar pattern (row+col).
Quoted 1 line
i2cdetect 1
This is with eeprom loaded:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3f 40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70: 70 71 72 73 74 75 76 77
This is without:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 -- -- -- -- -- -- -- -- -- 20: -- -- -- -- 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40: 40 41 42 43 44 -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- 5a 5b 5c 5d 5e 5f 60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70: 70 71 72 73 74 75 76 77
At a guess, I'd say this is garbage?
Quoted 2 lines
i2cdetect 2
i2cdetect 3
Both empty.
Quoted 6 lines
Either there is no EDID EEPROM connected at all (some monitors don't have them, in particular older models) or it has a format different from what the scripts expect.
If anything shows up at
0x50with i2cdetect, please provide a dump using i2cdump (rmmod eeprom first.)
This is the output of i2cdump 1 0x50:
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 3f XX XX XX XX XX XX XX XX XX XX 00 00 00 00 00 ?XXXXXXXXXX..... 10: 00 00 00 00 XX XX XX XX XX XX XX XX XX XX 00 00 ....XXXXXXXXXX.. 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 XX XX XX XX XX XX XX XX XX 00 00 .....XXXXXXXXX.. 40: 00 00 00 00 00 00 00 00 XX XX XX XX XX 00 00 00 ........XXXXX... 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 XX XX XX XX XX ...........XXXXX 70: XX XX XX XX XX XX 00 00 00 00 00 00 00 00 00 00 XXXXXX.......... 80: 00 00 XX XX XX XX XX XX XX XX 00 00 00 00 00 00 ..XXXXXXXX...... 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ a0: XX 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 X............... b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 XX XX XX XX XX XX XX XX XX XX XX 00 ....XXXXXXXXXXX. d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 XX XX XX XX XX XX XX XX XX XX ......XXXXXXXXXX
I presume the monitor has an EDID because the brochure says that it supports DDC-2B and DDC-2Bi, and it's relatively recent as far as CRTs go. Thanks for your help, cheers.
Jeremy
_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c
A message that is not in the archive (sent off-list or not yet received): 200803080039.55332.jeremy.william.murphy-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Hi Jeremy,
Quoted 36 lines · Jeremy Murphy
I've just learnt that a number of people could no longer access their EDID after upgrading their nvidia driver to the 100.* series. I downgraded to 96.43.01 and now their is _something_ on the I2C nvidia bus 1, but it's not pretty.
These following results are inconsistent, which I'm guessing is not a good sign. They vary somewhat between each call but they always have a similar pattern (row+col).
Quoted 1 line
i2cdetect 1
This is with eeprom loaded:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3f 40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70: 70 71 72 73 74 75 76 77This is without:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 -- -- -- -- -- -- -- -- -- 20: -- -- -- -- 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40: 40 41 42 43 44 -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- 5a 5b 5c 5d 5e 5f 60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70: 70 71 72 73 74 75 76 77
Quoted 1 line
At a guess, I'd say this is garbage?
I'd say the same, yes. The bus driver sees seemingly random acks and nacks, but it is impossible that the above map is anything real. This looks more like a hardware problem than a software issue though, so I'm surprised that downgrading the nvidia driver changed anything.
BTW, note that you should NOT access the nvidia I2C buses created by the binary nvidia X11 driver while not under X.
Quoted 24 lines
Quoted 2 lines
i2cdetect 2
i2cdetect 3Both empty.
Quoted 6 lines
Either there is no EDID EEPROM connected at all (some monitors don't have them, in particular older models) or it has a format different from what the scripts expect.
If anything shows up at
0x50with i2cdetect, please provide a dump using i2cdump (rmmod eeprom first.)This is the output of i2cdump 1
0x50:0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 3f XX XX XX XX XX XX XX XX XX XX 00 00 00 00 00 ?XXXXXXXXXX..... 10: 00 00 00 00 XX XX XX XX XX XX XX XX XX XX 00 00 ....XXXXXXXXXX.. 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 00 00 00 00 XX XX XX XX XX XX XX XX XX 00 00 .....XXXXXXXXX.. 40: 00 00 00 00 00 00 00 00 XX XX XX XX XX 00 00 00 ........XXXXX... 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 60: 00 00 00 00 00 00 00 00 00 00 00 XX XX XX XX XX ...........XXXXX 70: XX XX XX XX XX XX 00 00 00 00 00 00 00 00 00 00 XXXXXX..........
Quoted 8 lines
80: 00 00 XX XX XX XX XX XX XX XX 00 00 00 00 00 00 ..XXXXXXXX...... 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ a0: XX 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 X............... b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ c0: 00 00 00 00 XX XX XX XX XX XX XX XX XX XX XX 00 ....XXXXXXXXXXX. d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 XX XX XX XX XX XX XX XX XX XX ......XXXXXXXXXX
Noise again...
Quoted 3 lines
I presume the monitor has an EDID because the brochure says that it supports DDC-2B and DDC-2Bi, and it's relatively recent as far as CRTs go. Thanks for your help, cheers.
OK. Two more things you can try:
* Get rid of the binary nvidia driver for a moment, and try the nvidiafb driver. If it gets better, it suggests that the binary nvidia driver is at fault. If you get the same noise, it has to be a hardware issue.
* Did you try another video cable? The I2C bus signal is carried over 2 dedicated pins on the VGA connector (12 and 15), if your cable happens to not have them wired properly for some reason, this could explain your problem.
Signature · 6 lines
Jean Delvare _______________________________________________ i2c mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/i2c
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 3 lines · Jean Delvare
BTW, note that you should NOT access the nvidia I2C buses created by the binary nvidia X11 driver while not under X.
OK, thanks. I did look for them outside of X, but they weren't there.
Quoted 6 lines
OK. Two more things you can try:
* Get rid of the binary nvidia driver for a moment, and try the nvidiafb driver. If it gets better, it suggests that the binary nvidia driver is at fault. If you get the same noise, it has to be a hardware issue.
There are no nVidia I2C buses visible with the nvidiafb driver, i2cdetect reports only the SMBus. Here's a snippet from the X log, though:
(II) Loading sub module "i2c"
(II) LoadModule: "i2c"(II) Module already built-in (II) Loading sub module "ddc"
(II) LoadModule: "ddc"(II) Module already built-in (II) NV(0): I2C bus "DDC" initialized.
(II) NV(0): Probing for analog device on output A...
(--) NV(0): ...found one
(II) NV(0): Probing for analog device on output B...
(--) NV(0): ...can't find one
(II) NV(0): Probing for EDID on I2C bus A...
(II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0. (II) NV(0): I2C device "DDC:ddc2" removed.
(II) NV(0): ... none found
(II) NV(0): Probing for EDID on I2C bus B...
(II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0. (II) NV(0): I2C device "DDC:ddc2" removed.
(II) NV(0): ... none found
(--) NV(0): CRTC 0 appears to have a CRT attached (II) NV(0): Using CRT on CRTC 0
Address 0xA0? Should that be 0x50?
Quoted 4 lines
* Did you try another video cable? The I2C bus signal is carried over 2 dedicated pins on the VGA connector (12 and 15), if your cable happens to not have them wired properly for some reason, this could explain your problem.
OK, I'll have to ask around for one. Thanks for your help.
Jeremy
_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c
A message that is not in the archive (sent off-list or not yet received): 200803091708.21053.jeremy.william.murphy-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Quoted 6 lines · Jeremy Murphy
Quoted 3 lines · Jean Delvare
BTW, note that you should NOT access the nvidia I2C buses created by the binary nvidia X11 driver while not under X.
OK, thanks. I did look for them outside of X, but they weren't there.
Err, that's exactly what I said. With the binary nvidia X11 driver, you must be in the X session when trying to access the I2C buses, otherwise it doesn't work.
Quoted 7 lines
Quoted 4 lines
* Get rid of the binary nvidia driver for a moment, and try the nvidiafb driver. If it gets better, it suggests that the binary nvidia driver is at fault. If you get the same noise, it has to be a hardware issue.
There are no nVidia I2C buses visible with the nvidiafb driver, i2cdetect reports only the SMBus.
Strange. Do you have i2c-algo-bit's option bit_test enabled by any chance? "/sbin/modprobe -c | grep i2c.algo.bit" should tell.
Quoted 22 lines
Here's a snippet from the X log, though:
(II) Loading sub module "i2c"
(II) LoadModule: "i2c"(II) Module already built-in (II) Loading sub module "ddc"
(II) LoadModule: "ddc"(II) Module already built-in (II) NV(0): I2C bus "DDC" initialized.
(II) NV(0): Probing for analog device on output A...
(--) NV(0): ...found one
(II) NV(0): Probing for analog device on output B...
(--) NV(0): ...can't find one
(II) NV(0): Probing for EDID on I2C bus A...
(II) NV(0): I2C device "DDC:ddc2" registered at address0xA0. (II) NV(0): I2C device "DDC:ddc2" removed.
(II) NV(0): ... none found
(II) NV(0): Probing for EDID on I2C bus B...
(II) NV(0): I2C device "DDC:ddc2" registered at address0xA0. (II) NV(0): I2C device "DDC:ddc2" removed.
(II) NV(0): ... none found
(--) NV(0): CRTC 0 appears to have a CRT attached (II) NV(0): Using CRT on CRTC 0
Quoted 1 line
Address
0xA0? Should that be0x50?
0xA0 == 0x50 << 1. I2C addresses are 7-bit values, but sometimes software or documentation shifts them by one bit to the left because that's how they go on the wire.
The important thing in the log above is that the nv X driver doesn't see any EDID EEPROM either.
Quoted 6 lines
Quoted 4 lines
* Did you try another video cable? The I2C bus signal is carried over 2 dedicated pins on the VGA connector (12 and 15), if your cable happens to not have them wired properly for some reason, this could explain your problem.
OK, I'll have to ask around for one. Thanks for your help.
If you have another computer at hand which is known to retrieve the EDID properly, you might also try swapping the monitors. This would tell you right away whether the graphics adapter (or its driver), the VGA cable, or the monitor itself is responsible for the problem.
Signature · 6 lines
Jean Delvare _______________________________________________ i2c mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/i2c