Настройка нескольких мониторов для использования пользовательских EDID

Несколько месяцев назад я купил корейский монитор 1440p - светодиод X-Star DP2710. Из коробки он не работает правильно с Ubuntu, который обнаруживает поврежденный EDID по кабелю DVI и отказывается выдавать правильное разрешение 1440p. Поскольку этот монитор не поставляется со встроенным средством масштабирования, это приводит к тому, что монитор полностью игнорирует выходные данные Ubuntu - вместо этого отображается многоцветный тестовый шаблон. Я исправил это, поместив в свой xorg.conf следующее:

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "CustomEDID" "DFP-0:/etc/X11/edid-shimian.bin"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

И затем, конечно, по указанному пути я поместил файл с именем edid-shimian.bin, содержащий EDID, который позволяет монитору отображать 1440p.

Опыт использования этого монитора настолько великолепен (вам действительно нужно его опробовать), поэтому я решил купить еще два для использования с этой машиной на базе Nvidia GTX 760. Однако для монитора требуется двухканальный DVI подключение, и эта карта предлагает только два, так что третий монитор вместо этого вариант DP2710 MULTI, который позволяет использовать соединение HDMI.

Они оба прибыли сегодня, и мой обходной путь, кажется, не работает для них. Основной монитор все еще работает, но второй монитор DVI выполняет тестовую схему, а монитор HDMI ограничен разрешением 1080p. (У меня была двойная загрузка с Windows, и я смог заставить все три монитора показывать 1440p).

Мой план состоит в том, чтобы каким-то образом применить ту же опцию xorg.conf к двум другим мониторам, но я не уверен, как манипулировать xorg.conf, чтобы это произошло. Предложения?

2 ответа

Решение

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

1) Второй монитор DVI-Dual-Link нуждается в файле EDID, потому что монитор имеет поврежденный EDID. (Файл EDID, который я использовал, как вы можете судить по имени файла, был изначально получен с монитора марки Shimian, и я не знаю, как это было сделано, но я знаю, что это работает. Если вы читаете это, и нужен файл, дайте мне знать, и я могу загрузить его.)

2) Монитор HDMI имеет действительный EDID, но по той или иной причине его максимальное разрешение указано как 1080p.

Эти проблемы решаются с помощью следующей записи в xorg.conf:

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24

    Option         "ModeValidation" "AllowNon60hzmodesDFPModes, NoEDIDDFPMaxSizeCheck, NoVertRefreshCheck, NoHorizSyncCheck, NoDFPNativeResolutionCheck, NoMaxSizeCheck, NoMaxPClkCheck, AllowNonEdidModes, NoEdidMaxPClkCheck"

    Option         "CustomEDID" "DFP-0: /etc/X11/edid-shimian.bin; DFP-3: /etc/X11/edid-shimian.bin"

    Option         "metamodes" "DFP-0: 2560x1440 +2560 +0, DFP-1: 2560x1440 +0+0, DFP-3: 2560x1440 

    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Пробел между строками Option приведен для ясности и не обязателен. Вот что делает каждый:

Строка метамодов указывает разрешение экрана для каждого монитора. В этом случае DFP-0 был первым монитором DVI, DFP-3 - вторым, а DFP-1 - по HDMI. Эта строка метамодов устанавливает все 1440p и размещает монитор HDMI слева, а второй монитор DVI справа. Эта линия не будет достаточна сама по себе - две другие строки необходимы.

Строка CustomEDID указывает мониторы DVI на вышеупомянутый двоичный файл EDID. Присутствие этой линии убеждает водителя Nvidia, что они способны на 1440p.

Линия ModeValidation по существу отключает множество механизмов безопасности, направленных на предотвращение неправильного разрешения на экране. Поэтому важно соблюдать осторожность при использовании этих параметров! Однако в этом случае я точно знаю, что все мониторы способны к разрешению, которого я требую. Эта строка необходима для работы монитора HDMI.

Надеюсь, это поможет другим людям!

Я купил 2 из следующих мониторов на ebay по 659,80 долларов каждый в пятницу, 27 июля 2012 г., в 9:47 утра по восточному поясному времени:

ACHIEVA Shimian QH270-Lite Quad HD 2560x1440 DVI

Я установил их в Ubuntu, используя файл EDID, который я нашел в каком-то онлайн-посте, используя опцию CustomEDID, как описано выше. Они у меня работали до 2021 года, когда я, наконец, восстановил эту машину. Я столкнулся с той же проблемой, и мне пришлось найти файл EDID. Вот содержимое файла edid-shimian.bin в формате base64 (вам придется декодировать его с помощью «base64 -d», чтобы использовать его в xorg.conf):

      AP///////wAEYpsEAAAAACgVAQOlPCJ4Im+xp1VMniUMUFQAAAABAQEBAQEBAQEBAQEBAQEBVl4A
oKCgKVAwIDUAVVAhAAAaAAAA/ABRSEQyNzAKICAgICAgAAAA/AAKICAgICAgICAgICAgAAAA/AAK
ICAgICAgICAgICAgAH4K

К вашему сведению, когда я анализирую этот файл с помощью parse-edid, я получаю:

      jeremy@latitude ~ $ parse-edid  < /etc/X11/edid-shimian.bin 
Checksum Correct

Section "Monitor"
        Identifier ""
        ModelName ""
        VendorName "ACB"
        # Monitor Manufactured week 40 of 2011
        # EDID version 1.3
        # Digital Display
        DisplaySize 600 340
        Gamma 2.20
        Option "DPMS" "true"
        Modeline        "Mode 0" 241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
EndSection
Другие вопросы по тегам