从链接:http://en.wikipedia.org/wiki/Extended_display_identification_data
“EDID通常存储在称为串行PROM(可编程只读存储器)或EEPROM(电可擦除PROM)的存储器设备中,可通过地址为0x50的I²C总线访问。[1] EDID即使显示器本身已关闭,PROM通常也可由主机PC读取。“
但我不知道,如何阅读这些信息。
有人在这方面帮助我吗?
萨蒂什南比亚
答案 0 :(得分:2)
使用Linux软件包monitor-edid,您可以阅读edid数据。
默认情况下不安装,也不包含在标准存储库中(CentOS 6)。要安装仓库(如果不是分销的回购的一部分)
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release*rpm
然后你可以安装monitor-edid
yum install monitor-edid
使用该命令的典型方法是通过解析器
管道原始edid数据monitor-get-edid | monitor-parse-edid
,您的输出将如下所示:
Name: SyncMaster
EISA ID: SAM049b
EDID version: 1.3
EDID extension blocks: 0
Screen size: 47.7 cm x 26.8 cm (21.54 inches, aspect ratio 16/9 = 1.78)
Gamma: 2.2
Digital signal
Max video bandwidth: 170 MHz
HorizSync 30-75
VertRefresh 56-61
# Monitor preferred modeline (59.9 Hz vsync, 66.6 kHz hsync, ratio 16/9, 102 dpi)
ModeLine "1920x1080" 138.5 1920 1968 2000 2080 1080 1083 1088 1111 -hsync +vsync
答案 1 :(得分:1)
如果此问题仍然存在,请尝试使用以下程序read-edid-i2c。它扫描i2c总线并从中读取EDID数据。您可以选择给它一个总线号码进行检查,因为它在找到的第一个EDID处停止(如果是多显示器设置)。您可能想要修改相关的i2c驱动程序,如i2c-dev。
答案 2 :(得分:0)
完全匹配你所引用的内容如下 - 使用i2c接口实现EDID读取(0x80字节)的Linux内核源代码。
的驱动/ GPU / DRM / drm_edid.c:
/**
* drm_get_edid - get EDID data, if available
* @connector: connector we're probing
* @adapter: i2c adapter to use for DDC
*
* Poke the given i2c channel to grab EDID data if possible. If found,
* attach it to the connector.
*
* Return edid data or NULL if we couldn't find any.
*/
struct edid *drm_get_edid(struct drm_connector *connector,
struct i2c_adapter *adapter)
{
struct edid *edid = NULL;
if (drm_probe_ddc(adapter))
edid = (struct edid *)drm_do_get_edid(connector, adapter);
connector->display_info.raw_edid = (char *)edid;
return edid;
}