来自链接:http://en.wikipedia.org/wiki/Extended_display_identification_data
“EDID通常存储在监视器中称为串行PROM (可编程只读存储器)或EEPROM (电可擦除PROM)的存储设备中,并可通过I²C总线地址0x50.1访问。即使显示器本身关闭,EDID PROM通常也可由主机读取。”
但我不知道该如何阅读这些信息。
有人在这方面帮我吗?
萨蒂什
发布于 2013-04-17 07:24:28
使用Linux包monitor- edid,您可以读取edid数据。
默认情况下,它不会安装,也不会包含在我的标准存储库(CentOS 6)中。安装repo (如果不是您的发行版repos的一部分)
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发布于 2011-11-18 18:00:01
如果此问题仍然相关,请尝试使用以下程序read-edid-i2c。它扫描i2c总线并从中读取EDID数据。您可以选择给它一个总线编号进行检查,因为它会在找到的第一个EDID处停止(在多监视器设置的情况下)。您可能想要modprobe一个相关的i2c驱动程序,比如i2c-dev。
发布于 2011-08-26 08:00:28
与您所引用的完全匹配的代码如下- Linux内核源代码使用i2c接口实现了对EDID (0x80字节)的读取。
驱动程序/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;
} https://stackoverflow.com/questions/5065159
复制相似问题