Чтение EDID из EEPROM - PullRequest
       5

Чтение EDID из EEPROM

1 голос
/ 21 февраля 2011

По ссылке: http://en.wikipedia.org/wiki/Extended_display_identification_data

"EDID часто хранится на мониторе в устройстве памяти, называемом последовательным PROM (программируемое постоянное запоминающее устройство) или EEPROM (электрически стираемое PROM), и доступночерез шину I²C по адресу 0x50. [1] EDID PROM часто может быть прочитан хост-ПК, даже если сам дисплей выключен. ".

Но я не знаю, как это прочитатьинформация.

Кто-нибудь мне помогает в этом отношении?

Satish

Ответы [ 3 ]

2 голосов
/ 17 апреля 2013

Используя пакет монитора Linux-edid для Linux, вы можете прочитать данные 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

Типичный способ использования команды - передать по конвейеру rawEdid данные через анализатор

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 голос
/ 18 ноября 2011

Если этот вопрос все еще актуален, попробуйте использовать следующую программу read-edid-i2c .Он сканирует шины i2c и считывает с них данные EDID.При желании вы можете указать ему номер шины для проверки, поскольку он останавливается на первом найденном EDID (в случае настройки нескольких мониторов).Возможно, вы захотите использовать modprobe соответствующий драйвер i2c, например i2c-dev.

0 голосов
/ 26 августа 2011

Точное совпадение с тем, что вы процитировали, приведено ниже - исходный код ядра Linux, реализующий чтение EDID (0x80 байт) с использованием интерфейса i2c.

драйвера / GPU / ЦУП / 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;
}     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...