rockowitz / ddcutil

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

Error reading capabilities on ASUS MG279 #145

Closed BuzzBumbleBee closed 3 years ago

BuzzBumbleBee commented 4 years ago

It seems there is some issues (probably values that the monitor is reporting) with my ASUS MG279.

ddccontrol can read the available commands fine.

Error

ddcutil -d 1 capabilities
ddcutil: parse_capabilities.c:722: next_capabilities_segment: Assertion `*pos == '('' failed.
[1]    19426 abort      sudo ddcutil -d 1 capabilities

Detect Output

Display 1
   I2C bus:             /dev/i2c-3
   EDID synopsis:
      Mfg id:           ACI
      Model:            ASUS MG279
      Serial number:    
      Manufacture year: 2015
      EDID version:     1.4
   VCP version:         2.1

Partial environment output

   Examining device /dev/i2c-3...
      Functionality: I2C_FUNC_I2C, I2C_FUNC_10BIT_ADDR, I2C_FUNC_SMBUS_PEC, 
                     I2C_FUNC_SMBUS_BLOCK_PROC_CALL, I2C_FUNC_SMBUS_QUICK, 
                     I2C_FUNC_SMBUS_READ_BYTE, I2C_FUNC_SMBUS_WRITE_BYTE, 
                     I2C_FUNC_SMBUS_READ_BYTE_DATA, I2C_FUNC_SMBUS_WRITE_BYTE_DATA, 
                     I2C_FUNC_SMBUS_READ_WORD_DATA, I2C_FUNC_SMBUS_WRITE_WORD_DATA, 
                     I2C_FUNC_SMBUS_PROC_CALL, I2C_FUNC_SMBUS_READ_BLOCK_DATA, 
                     I2C_FUNC_SMBUS_WRITE_BLOCK_DATA, I2C_FUNC_SMBUS_READ_I2C_BLOCK, 
                     I2C_FUNC_SMBUS_WRITE_I2C_BLOCK
      Raw EDID:
              +0          +4          +8          +c            0   4   8   c   
      +0000   00 ff ff ff ff ff ff 00 04 69 a7 27 00 00 00 00   .........i.'....
      +0010   0a 19 01 04 a5 3c 22 78 3b 87 e5 a4 56 50 9e 26   .....<"x;...VP.&
      +0020   0d 50 54 b7 ef 00 d1 c0 d1 e8 81 c0 71 4f d1 de   .PT.........qO..
      +0030   81 de a9 c0 a9 de 56 5e 00 a0 a0 a0 29 50 30 20   ......V^....)P0 
      +0040   35 00 55 50 21 00 00 1a 5b 8b 00 50 a0 a0 3f 50   5.UP!...[..P..?P
      +0050   08 20 18 0c 55 50 21 00 00 1a 00 00 00 fd 00 23   . ..UP!........#
      +0060   5a 87 87 3b 01 0a 20 20 20 20 20 20 00 00 00 fc   Z..;..      ....
      +0070   00 41 53 55 53 20 4d 47 32 37 39 0a 20 20 01 c9   .ASUS MG279.  ..
      EDID synopsis:
         Mfg id:           ACI
         Model:            ASUS MG279
         Serial number:    
         Manufacture year: 2015
         EDID version:     1.4
         Product code:     10151
         Binary sn:        0 (0x00000000)
         Extra descriptor: 
         Video input definition: 0xa5 - Digital Input (DisplayPort)
         Supported features:
            DPMS active-off
            Digital display type: RGB 4:4:4 + YCrCb 4:2:2
            Standard sRGB color space: True
         White x,y:        0.313, 0.329
         Red   x,y:        0.643, 0.336
         Green x,y:        0.313, 0.620
         Blue  x,y:        0.151, 0.053
         Extension blocks: 1
      EDID source: 

      Trying simple VCP read of feature 0x10...
      read() returned 6e 88 02 00 10 00 00 64 00 50 90
      Attempt 1 to read feature succeeded.
      DDC communication succeeded
rockowitz commented 4 years ago

The capabilities string returned by the monitor is malformed.  To see the raw string, before parsing, use the "--terse" option, e.g.

ddcutil capabilities --terse

(The "-d 1" option is unnecessary.   By default, ddcutil commands use the first detected monitor.)

Branch 1.0.0-dev contains a change that replaces the assert() with a diagnostic message pinpointing the problem with the capabilities

Note that the capabilities command is purely informational.  Other commands do not depend on the parsed output.

-- Sanford

On 10/2/20 10:01 AM, BuzzBumbleBee wrote:

It seems there is some issues (probably values that the monitor is reporting) with my ASUS MG279.

ddccontrol can read the available commands fine.

Error

|ddcutil -d 1 capabilities ddcutil: parse_capabilities.c:722: next_capabilities_segment: Assertion `*pos == '('' failed. [1] 19426 abort sudo ddcutil -d 1 capabilities |

Detect Output

|Display 1 I2C bus: /dev/i2c-3 EDID synopsis: Mfg id: ACI Model: ASUS MG279 Serial number: Manufacture year: 2015 EDID version: 1.4 VCP version: 2.1 |

Partial environment --verbos output

|Examining device /dev/i2c-3... Functionality: I2C_FUNC_I2C, I2C_FUNC_10BIT_ADDR, I2C_FUNC_SMBUS_PEC, I2C_FUNC_SMBUS_BLOCK_PROC_CALL, I2C_FUNC_SMBUS_QUICK, I2C_FUNC_SMBUS_READ_BYTE, I2C_FUNC_SMBUS_WRITE_BYTE, I2C_FUNC_SMBUS_READ_BYTE_DATA, I2C_FUNC_SMBUS_WRITE_BYTE_DATA, I2C_FUNC_SMBUS_READ_WORD_DATA, I2C_FUNC_SMBUS_WRITE_WORD_DATA, I2C_FUNC_SMBUS_PROC_CALL, I2C_FUNC_SMBUS_READ_BLOCK_DATA, I2C_FUNC_SMBUS_WRITE_BLOCK_DATA, I2C_FUNC_SMBUS_READ_I2C_BLOCK, I2C_FUNC_SMBUS_WRITE_I2C_BLOCK Raw EDID: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 69 a7 27 00 00 00 00 .........i.'.... +0010 0a 19 01 04 a5 3c 22 78 3b 87 e5 a4 56 50 9e 26 .....<"x;...VP.& +0020 0d 50 54 b7 ef 00 d1 c0 d1 e8 81 c0 71 4f d1 de .PT.........qO.. +0030 81 de a9 c0 a9 de 56 5e 00 a0 a0 a0 29 50 30 20 ......V^....)P0 +0040 35 00 55 50 21 00 00 1a 5b 8b 00 50 a0 a0 3f 50 5.UP!...[..P..?P +0050 08 20 18 0c 55 50 21 00 00 1a 00 00 00 fd 00 23 . ..UP!........# +0060 5a 87 87 3b 01 0a 20 20 20 20 20 20 00 00 00 fc Z..;.. .... +0070 00 41 53 55 53 20 4d 47 32 37 39 0a 20 20 01 c9 .ASUS MG279. .. EDID synopsis: Mfg id: ACI Model: ASUS MG279 Serial number: Manufacture year: 2015 EDID version: 1.4 Product code: 10151 Binary sn: 0 (0x00000000) Extra descriptor: Video input definition: 0xa5 - Digital Input (DisplayPort) Supported features: DPMS active-off Digital display type: RGB 4:4:4 + YCrCb 4:2:2 Standard sRGB color space: True White x,y: 0.313, 0.329 Red x,y: 0.643, 0.336 Green x,y: 0.313, 0.620 Blue x,y: 0.151, 0.053 Extension blocks: 1 EDID source: Trying simple VCP read of feature 0x10... read() returned 6e 88 02 00 10 00 00 64 00 50 90 Attempt 1 to read feature succeeded. DDC communication succeeded |

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rockowitz/ddcutil/issues/145, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADMGY3UYPF5RAQC7T22U4QTSIXMKHANCNFSM4SBXN3WQ.

C0rn3j commented 10 months ago

Unfortunately the case even on a unit manufactured a year later than OP.

However, it does seem to me like the amount of opening and closing brackets matches?

ddcutil --model 'ASUS MG279' capabilities
Unparsed capabilities string: (prot(monitor) type(LCD)model LCDPB287 cmds(01 02 03 07 0C F3) vcp(02 04 05 08 0B 0C 10 12 14(05 06 08 0B) 16 18 1A 60(11 12 0F 10) 62 6C 6E 70 8D(01 02) A8 AC AE B6 C6 C8 C9 D6(01 04) DF) mccs_ver(2.1)asset_eep(32)mpu(01)mswhql(1))
Errors parsing capabilities string:
   Missing parenthesized value for segment model  at offset 30
Model: Not specified
MCCS version: Not specified
VCP Features:
ddcutil detect
Display 2
   I2C bus:  /dev/i2c-6
   DRM connector:           card0-DP-2
   EDID synopsis:
      Mfg id:               ACI - Ancor Communications Inc
      Model:                ASUS MG279
      Product code:         10151  (0x27a7)
      Serial number:        
      Binary serial number: 104762 (0x0001993a)
      Manufacture year:     2016,  Week: 41
   DRM reports the monitor is disabled.
   DDC communication appears to work, but output is likely invalid.
   VCP version:         2.1

Unfortunately it does not seem like I can turn the screen on and off like I wanted to through D6, as by default it's in 01 and sending it 04 just turns it off with no way to turn it back on other than the physical button.