rockowitz / ddcutil

Control monitor settings using DDC/CI and USB
http://www.ddcutil.com
GNU General Public License v2.0
994 stars 43 forks source link

DDC communication fails with a Lenovo T24i-10 #467

Open joshuajeschek opened 2 weeks ago

joshuajeschek commented 2 weeks ago

I have a Lenovo T24i-10 connected via HDMI and get an error when using ddcutil detect. I think the monitor should support DDC, but right now, it doesn't work with ddcutil On my Samsung C34J79x ddcutil works as expected.

Output for ddcutil detect:

Invalid display
   I2C bus:  /dev/i2c-7
   DRM connector:           card1-HDMI-A-1
   EDID synopsis:
      Mfg id:               LEN - Lenovo Group Limited
      Model:                T24i-10
      Product code:         24998  (0x61a6)
      Serial number:        VT518162
      Binary serial number: 16843009 (0x01010101)
      Manufacture year:     2017,  Week: 22
   DDC communication failed. (getvcp of feature x10 returned Error_Info[DDCRC_RETRIES in ddc_write_read_with_retry, causes: DDCRC_READ_ALL_ZERO(10)])

Display 1
   I2C bus:  /dev/i2c-10
   DRM connector:           card1-DP-2
   EDID synopsis:
      Mfg id:               SAM - Samsung Electric Company
      Model:                C34J79x
      Product code:         3869  (0x0f1d)
      Serial number:        H4ZN501861
      Binary serial number: 1129796436 (0x43575354)
      Manufacture year:     2038,  Week: 50
   VCP version:         2.1

Output of i2cdetect -y 7, maybe it is of interest:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- 59 -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

Output of ddcutil interrogate: interrogate.txt

Please let me know if I can supply you with more information.

rockowitz commented 5 days ago

Attempting to read feature X10 (Brightness) is part of the tests as to whether the monitor supports DDC; I've yet to see a monitor that does not implement that feature. Strangely, it is however readable when performed by command probe. What is the output of ddcutil --bus 7 getvcp 10 --verbose?

rockowitz commented 4 days ago

Also, as a workaround, consider using option --skip-ddc-checks, introduced in release 2.1.0. Testing DDC communication occurs in two parts. At the basic I2C layer, there's a simple check that I2C slave address x37 (DDC) is alive. At the higher DDC layer, communication is tested by actually attempting to read feature x10 (which should always exist) and also to read several features that are expected not to exists, to check for the possibility that the monitor reports unsupported features incorrectly. Option --skip-ddc-checks skips the latter tests. (The option was introduced to improve performance of scripts invoking ddcutil repeatedly for the same device.)

joshuajeschek commented 2 days ago

Attempting to read feature X10 (Brightness) is part of the tests as to whether the monitor supports DDC; I've yet to see a monitor that does not implement that feature. Strangely, it is however readable when performed by command probe. What is the output of ddcutil --bus 7 getvcp 10 --verbose?

Feature definition file not found: LEN-T24i_10-24998.mccs
VCP (aka MCCS) version for display is undetected or less than 2.0. Interpretation may not be accurate.

Getting data for non-table VCP code 0x10 - Brightness:
VCP code 0x10 (Brightness                    ): Maximum retries exceeded

but sometimes it also only prints this:

DDC communication failed for monitor on bus /dev/i2c-7
joshuajeschek commented 2 days ago

Using --skip-ddc-checks results in the following output of ddcutil detect:

Display 1
   I2C bus:  /dev/i2c-7
   DRM connector:           card1-HDMI-A-1
   EDID synopsis:
      Mfg id:               LEN - Lenovo Group Limited
      Model:                T24i-10
      Product code:         24998  (0x61a6)
      Serial number:        VT518162
      Binary serial number: 16843009 (0x01010101)
      Manufacture year:     2017,  Week: 22
   VCP version:         Detection failed

Display 2
   I2C bus:  /dev/i2c-10
   DRM connector:           card1-DP-2
   EDID synopsis:
      Mfg id:               SAM - Samsung Electric Company
      Model:                C34J79x
      Product code:         3869  (0x0f1d)
      Serial number:        H4ZN501861
      Binary serial number: 1129796436 (0x43575354)
      Manufacture year:     2038,  Week: 50
   VCP version:         2.1

However, observer the outputs of these commands:

> ddcutil -l T24i-10 getvcp 10
Display not found

> ddcutil -l T24i-10 getvcp 10 --skip-ddc-checks
VCP (aka MCCS) version for display is undetected or less than 2.0. Interpretation may not be accurate.
VCP code 0x10 (Brightness                    ): Maximum retries exceeded

The error is a different one, but it still fails to set the brightness.

rockowitz commented 14 hours ago

All of these errors reflect DDC communication failure. Please submit the output of ddcutil detect --verbose --ddcdata. This should show the bytes of the packets returned by the monitor.