使用libdrm在linux下读取DisplayPort DDC / CI

时间:2015-04-25 09:44:03

标签: linux

我试图从我的显示器上读取DDC信息,该显示器连接到笔记本电脑的DisplayPort链接。

因此,我正在查找i2cdetecti2cdump,但无法将其附加到/ dev / i2c总线。

我的下一步是通过libdrm进行访问,我已经设置了drmModeConnector,但下一步是什么?

根据dekkard的回答我试过

sudo i2cdetect -l
i2c-0   i2c         i915 gmbus ssc                      I2C adapter
i2c-1   i2c         i915 gmbus vga                      I2C adapter
i2c-2   i2c         i915 gmbus panel                    I2C adapter
i2c-3   i2c         i915 gmbus dpc                      I2C adapter
i2c-4   i2c         i915 gmbus dpb                      I2C adapter
i2c-5   i2c         i915 gmbus dpd                      I2C adapter
i2c-6   i2c         DPDDC-B                             I2C adapter
i2c-7   smbus       SMBus I801 adapter at efa0          SMBus adapter

这表明该面板已附加到i2c-2,而DisplayPort附加到i2c-6。当我运行$ sudo get-edid -b 6时,这会导致:

$ sudo get-edid -b 6
2 potential busses found: 2 6
Only trying 6 as per your request.
Bus 6 doesn't really have an EDID...
Couldn't find an accessible EDID on this computer.
Attempting to use the classical VBE interface

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

    VBE version 300
    VBE string at 0x11100 "Intel(R) Sandybridge/Ivybridge Graphics Chipset Accelerated VGA BIOS"

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 failed

The EDID data should not be trusted as the VBE call failed
Looks like VBE was successful. Have a good day.

虽然感谢您的帮助! @dekkard

有人可以给我一些暗示或发布一些教程吗?

非常感谢和最诚挚的问候,

Befedo

2 个答案:

答案 0 :(得分:2)

尝试

sudo get-edid
  

get-edid,parse-edid - 用于检索和解释的read-edid工具          使用VESA VBE DDC协议监控规范

有关详细信息,请参阅此处:http://manpages.ubuntu.com/manpages/lucid/man1/get-edid.1.html

<强>更新

尝试 ddccontrol

此外,这可能会引导您找到解决方案:

https://unix.stackexchange.com/questions/114359/how-to-get-edid-for-a-single-monitor

答案 1 :(得分:1)

使用xrandr --verbose的相同结果,显示HDMI监视器的EDID的唯一功能是$('.submit').click(function(){ if($('form').valid()) { $.ajax({ url: '@Url.RouteUrl(new{ action="GetAnswer", controller="Home"})', data: {Answer: '', Question: $('#Question').val()}, type: 'POST', dataType: 'json', contentType: "application/json; charset=utf-8", success: function(resp) { openAlert(resp); }}); } else { closeAlert(); } });