thumb

У тому випадку якщо вшитий EDID дисплея зіпсований, а таке трапляється часто, можна підсунути системі файл прошивки. Звичайно, в тому випадку якщо прошивка є. Тому я завжди про всяк випадок роблю дампи (резервні копії) прошивок всіх моїх моніторів, так як вже був випадок коли мені довелося розбирати дисплей ноутбука для того, щоб дізнатися серійний номер за яким треба було довго шукати на форумах ту саму прошивку. У цій статті я розповім про те як зняти дамп прошивки EDID дисплея і як підсунути його системі на базі Debian і похідних (Ubuntu) з відеокартою «NVIDIA» і пропрієтарним драйвером «nvidia».

Из wiki:

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

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

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

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

Встановлюємо пакет 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 монітора швидше за все пошкоджений і робити дамп безглуздо.

Другий спосіб зробити дамп прошивки для тих у кого відеокарта «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 дисплея з нашого дампа прошивки, а не з дисплея.