Используя сохраненный EDID, Ubuntu загружается для корректировки разрешения при выключении телевизора.

У меня есть Intel NUC6i7KYK (Intel Graphics 580) и Ubuntu 16.04. Я пытаюсь обойти проблему загрузки Ubuntu с другим разрешением, если она загружается при выключенном телевизоре.

Я знаю, что есть аппаратное решение, включающее что-то вроде Dr HDMI, HDMI Detective и т. Д., Но я пытаюсь понять, возможно ли это решить с помощью программного обеспечения.

Вот что я сделал, что в соответствии с различными поисками - в частности, что я нашел по этой ссылке https://wiki.archlinux.org/index.php/kernel_mode_setting - должно работать.

  1. Я установил пакет read-edid, а затем использовал get-edid, чтобы получить копию EDID моего телевизора, когда он подключен и включен. Я назвал это "edid.bin".

  2. Я скопировал это в lib/firmware/edid/

  3. Я добавил "drm_kms_helper.edid_firmware=DP-1:edid/edid.bin video=DP-1:e" в командную строку ядра

  4. Я отключил кабель HDMI и перезагрузил компьютер.

Кажется, что загрузка EDID в порядке, и действительно, в нижней части файла журнала Xorg показано, что он распознает все различные режимы, поддерживаемые телевизором, которые он, должно быть, получил от EDID. Однако ни один из этих режимов не отображается в настройках дисплея Ubuntu. Кроме того, панель "Параметры дисплея" не работает должным образом - она ​​показывает телевизор, но по умолчанию она не выбрана; Вы должны щелкнуть по нему, чтобы выбрать его, а затем установить переключатель "Вкл. / Выкл." в положение "Вкл.", но тогда он не дает никаких режимов экрана. Попытка сохранить профиль выдает ошибку. Я предполагаю, что это было отключено, потому что нет никаких режимов - которые также поддерживает резервная копия xrandr.

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

Что мне здесь не хватает? Там должен быть дополнительный шаг, который я должен сделать?

Я включил журналы dmesg и Xorg и выходные данные из "xrandr --query" для обоих, когда телевизор включен и когда он выключен, а также для проанализированного выхода EDID.

Если бы кто-нибудь мог пролить свет или помочь мне настроить мои настройки, чтобы сделать эту работу, то я был бы благодарен.

Спасибо.

Оливер

https://www.dropbox.com/sh/mo3y3y25qmgb6zm/AAAFJlAbW7KC83cYH9gXcWTla?dl=0

1 ответ

Это что-то вроде хака, но я справился с подобной ситуацией, используя xrandr и запуская ее сразу после входа в систему.

Взято из моего ответа SU, хотя вам нужно настроить его под свой DE - я оставляю пользователю фактически запускать скрипт в качестве упражнения.

Как я уже упоминал ранее, я создал скрипт, который обрабатывал создание нового режима экрана. Я сохранил это как xrandr.sh и убедился, что это исполняемый файл. Я использовал gtf для генерации моделин (gtf 1280 800 60.0 - разрешение по горизонтали, разрешение по вертикали и частота - большинство людей, кажется, делают это с точностью до одной десятичной точки, поэтому я сделал это) и использовал это для генерации сценария и простой команды xrandr для обработки выходного имени

Это выплевывает что-то вроде

[geek@phoebe ~]$ gtf 1280 800 60

  # 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
  Modeline "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831   -HSync +Vsync

Вещи после modeline - вот что интересно - вы используете это, чтобы установить режим.

Я сохранил это как xrandr.sh

xrandr --newmode  "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync 
xrandr --addmode HDMI1 "1280x800_60.00"
xrandr --output HDMI1 --mode 1280x800_60.00

Это создаст новый режим, который вы можете использовать где угодно, затем попросит вашу систему разрешить вам использовать этот режим для выхода HDMI1, и скажет вам изменить настройки разрешения на этот режим.

В вашем случае вы можете запустить это по мере необходимости, или как-то автоматизировать.

Другие вопросы по тегам