thumb В том случае если вшитый EDID дисплея испорчен, а такое случается часто, можно подсунуть системе файл прошивки. Конечно, в том случае если прошивка имеется. Поэтому я всегда на всякий случай делаю дампы (резервные копии) прошивок всех моих мониторов, так как уже был случай когда мне пришлось разбирать дисплей ноутбука для того, чтобы узнать серийный номер по которому предстояло долго искать на форумах ту самую прошивку. В этой статье я расскажу о том как снять дамп прошивки EDID дисплея и как подсунуть его системе на базе Debian и производных (Ubuntu) с видеокартой «NVIDIA» и проприетарным драйвером «nvidia».

Из wiki:

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

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

Опишу два примера создания дампа прошивки EDID дисплея.

1. Первый пример подходит всем, в не зависимости от установленной видео-карты и используемого драйвера.

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

sudo apt-get install read-edid

Считаем EDID дисплея:

sudo get-edid | parse-edid

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

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

sudo get-edid > edid.bin

Прочитать файл прошивки EDID:

sudo parse-edid < edid.bin

Примечание: Если возникает такая ошибка:

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

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

2. Второй способ сделать дамп прошивки для тех у кого видеокарта «NVIDIA» и используется проприетарный драйвер «nvidia».

В «nvidia-settings» есть кнопка «Adquire EDID», которая сохраняет EDID дисплея в двоичном или текстовом формате. Вот так просто.

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

Сначало узнаем как именуется наш монитор:

cat /etc/X11/xorg.conf | grep ConnectedMonitor

Вы должны увидеть такой вывод:

Option "ConnectedMonitor" "DFP-0"

Где DFP-0 и есть необходимый нам номер.

Дальше поправим xorg.conf для чтения EDID из файла прошивки. Откроем для редактирования xorg.conf:

sudo nano /etc/X11/xorg.conf

Добавим следующую информацию в «Section “Device”»:

 
 Option         "ConnectedMonitor" "DFP-0"
 Option         "CustomEDID" "DFP-0:/etc/X11/edid.bin"
 Option         "IgnoreEDID" "false"
 Option         "UseEDID" "true"

Измените DFP-# номер на тот который узнали прежде. Вместо /etc/X11/edid.bin укажите на свой файл прошивки. Он не обязательно должен лежать в /etc/X11/. В результате «Section “Device”» должен выглядеть примерно так:

Section "Device"
  Identifier     "nvidia"
  Driver         "nvidia"
  Option         "DynamicTwinView" "false"
  Option         "NoFlip" "false"
  Option         "NoLogo" "true"
  Option         "ModeValidation" "NoVesaModes, NoXServerModes"
  Option         "ConnectedMonitor" "DFP-0"
  Option         "CustomEDID" "DFP-0:/etc/X11/edid.bin"
  Option         "IgnoreEDID" "false"
  Option         "UseEDID" "true"
 EndSection

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


Arthur Gareginyan

Arthur Gareginyan

Arthur is a designer and full stack software engineer. He is the founder of MyCyberUniverse.com. His personal website can be found at arthurgareginyan.com. Check out his free WordPress plugins at wordpress.org.

Follow Arthur: