EDID: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 3: Строка 3:


Extended Display Identification Data (EDID) — стандарт формата данных VESA, который содержит базовую информацию о мониторе и его возможностях, включая информацию о производителе, максимальном размере изображения, цветовых характеристиках, заводских предустановленных таймингах, границах частотного диапазона, а также строках, содержащих название монитора, его размер и серийный номер.
Extended Display Identification Data (EDID) — стандарт формата данных VESA, который содержит базовую информацию о мониторе и его возможностях, включая информацию о производителе, максимальном размере изображения, цветовых характеристиках, заводских предустановленных таймингах, границах частотного диапазона, а также строках, содержащих название монитора, его размер и серийный номер.
Все мониторы, аналоговые или цифровые, должны поддерживать EDID,  Эти данные хранятся в памяти EEPROM монитора в формате, заданном стандартом VESA.
===Формат EDID===
Данные EDID форматируются в виде одного или нескольких 128 блоков.
EDID версии 1,0 – 1,2 состоит из одного блока данных в соответствии со спецификацией VESA.
С EDID версии 1,3 или расширенным EDID (E-EDID) изготовители могут указать один или несколько блоков расширения в дополнение к основному блоку.
Каждый блок пронумерован, начиная с 0 для начального блока. Чтобы обновить сведения EDID, INF-файл изготовителя указывает номер обновляемого блока и предоставляет 128 байт данных EDID для замены исходного блока. Драйвер монитора получает обновленные данные для исправленных блоков из реестра и использует данные EEPROM для оставшихся блоков.


Бывают случаи, когда монитор, или внешний телевизор не выдают, или дают неправильный '''EDID'''
Бывают случаи, когда монитор, или внешний телевизор не выдают, или дают неправильный '''EDID'''
Строка 8: Строка 20:
В данной статье рассматривается вариант передачи X-серверу информации об правильном EDID монитора.
В данной статье рассматривается вариант передачи X-серверу информации об правильном EDID монитора.
Статья основана на  статье [https://mycyberuniverse.com/ru/linux/podstanovka-fayla-proshivki-vmesto-vshitogo-edid-monitora.html Подстановка файла прошивки вместо вшитого EDID монитора] и адаптирована к особенности ALT Linux
Статья основана на  статье [https://mycyberuniverse.com/ru/linux/podstanovka-fayla-proshivki-vmesto-vshitogo-edid-monitora.html Подстановка файла прошивки вместо вшитого EDID монитора] и адаптирована к особенности ALT Linux


===Создание дампа прошивки===
===Создание дампа прошивки===

Версия от 22:26, 4 июня 2022

Подмена EDID монитора

Логотип Википедии
В Википедии есть обзорная статья по теме «Extended_display_identification_data».

Extended Display Identification Data (EDID) — стандарт формата данных VESA, который содержит базовую информацию о мониторе и его возможностях, включая информацию о производителе, максимальном размере изображения, цветовых характеристиках, заводских предустановленных таймингах, границах частотного диапазона, а также строках, содержащих название монитора, его размер и серийный номер.

Все мониторы, аналоговые или цифровые, должны поддерживать EDID, Эти данные хранятся в памяти EEPROM монитора в формате, заданном стандартом VESA.

Формат EDID

Данные EDID форматируются в виде одного или нескольких 128 блоков.

EDID версии 1,0 – 1,2 состоит из одного блока данных в соответствии со спецификацией VESA. С EDID версии 1,3 или расширенным EDID (E-EDID) изготовители могут указать один или несколько блоков расширения в дополнение к основному блоку.

Каждый блок пронумерован, начиная с 0 для начального блока. Чтобы обновить сведения EDID, INF-файл изготовителя указывает номер обновляемого блока и предоставляет 128 байт данных EDID для замены исходного блока. Драйвер монитора получает обновленные данные для исправленных блоков из реестра и использует данные EEPROM для оставшихся блоков.


Бывают случаи, когда монитор, или внешний телевизор не выдают, или дают неправильный EDID

В данной статье рассматривается вариант передачи X-серверу информации об правильном EDID монитора. Статья основана на статье Подстановка файла прошивки вместо вшитого EDID монитора и адаптирована к особенности ALT Linux

Создание дампа прошивки

Устанавливаем read-edid

$ su -
# apt-get install read-edid

Считываем EDID

# get-edid | parse-edid

get-edid - считывает EDID, а read-edid преобразует его в читабельный вид

Считать EDID и записать его в файл:

# get-edid > edid.bin

Прочитать содержимое EDID из файла:

# parse-edid < edid.bin
Checksum Correct

Section "Monitor"
        Identifier ""
        ModelName ""
        VendorName "LGD"
        # Monitor Manufactured week 0 of 2014
        # EDID version 1.3
        # Digital Display
        DisplaySize 350 190
        Gamma 2.20
        Option "DPMS" "false"
        Modeline        "Mode 0" -hsync -vsync 
EndSection
Примечание: Если возникает такая ошибка:

Error: output block unchanged parse-edid: IO error reading EDID

тогда попробуйте ещё раз.

Если эта ошибка возникает постоянно тогда это значит, что ваш EDID монитора скорее всего повреждён и делать дамп бессмысленно.


Особый способ сделать дамп прошивки для использующих проприетарный драйвер nvidia. В nvidia-settings есть кнопка Adquire EDID, которая сохраняет EDID дисплея в двоичном или текстовом формате.

Подстановка дампа прошивки EDID в xorg.conf.d

Выясняем "порт", к каторому подключена ваша видеокарта : xrandr | grep "\<"connec eDP connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 345mm x 194mm

Создаём произвольный файл в /etc/X11/xorg.conf.d с разрешением .conf, например 20-edid.conf, например такого содержания:

Section "Device"
 Identifier     "my_videocard"
 Option         "ConnectedMonitor" "eDP"
 Option         "CustomEDID" "eDP:/ec/X11/edid.bin"
 Option         "IgnoreEDID" "false"
 Option         "UseEDID" "true"
EndSection

После рестарта X-сервера , он считает EDID дисплея из нашего дампа прошивки, а не из дисплея.

Это бывает полезным, например, если монитор подключают к "плохому" видеовыходу (через который по какой-то причине неправильно считывается EDID). Тогда, подключив его заранее к хорошему видеовыходу, вы можете сохранить EDID монитора, а потом, при включении к плохому выходу передать EDID X-серверу. Второй случай, это если вы выявили ошибку в выдаваемом монитором EDID, вы его исправляете и передаёте исправленный X-серверу Патчим EDID телевизора из-под Linux

Ссылки

Патчим EDID телевизора из-под Linux Подстановка файла прошивки вместо вшитого EDID монитора