Проблема с разрешением экрана при использовании VGA-разветвителя

Оборудование

У меня есть следующая конфигурация оборудования:

  • ПК под управлением Ubuntu 10.04
  • Бортовая видеокарта с одним выходом VGA ( Intel P4M800 - через Unichrome)
  • VGA-разветвитель: 1 вход, 4 выхода. До 2048x1536 (согласно спецификации)
  • Один 42-дюймовый телевизор / монитор, подключенный к сплиттеру через его VGA-вход
  • Два 32-дюймовых телевизора / монитора, подключенный к сплиттеру через его VGA-вход

Проблема

С этой конфигурацией Ubuntu показывает только 640x480 и 800x800 в качестве возможных разрешений. Однако, если я подключу какой-либо телевизор / монитор напрямую к ПК (через VGA), то Ubuntu покажет длинный список возможных разрешений (я пробовал несколько из них, и они работали нормально).

Кажется, что X Window System автоматическая настройка не работает должным образом. Как мне вручную настроить его? Какая информация должна знать о различных устройствах, задействованных заранее?


Контекст: Мониторы устанавливаются в общественных местах в одном здании для отображения динамической информации, которая обрабатывается на ПК ( Flash-презентация в Firefox в полноэкранном режиме).

Обновление :

Я попробовал следующее, как указано в ответах, приведенных в ответах:

  1. Получить моделин для разрешения, используя cvt

  2. Создан новый режим с помощью xrandr --newmode

  3. Добавлен режим для отображения на выходе с помощью xrandr --addmode

    [ 1114]
  4. Пытался изменить разрешение, используя xrandr --output ... --mode ...

Но я получаю это: xrandr screen cannot be larger than 800x600 (desired size ...)

3
задан 7 October 2010 в 18:12

2 ответа

Вот то, как автоматическое обнаружение монитора работает: встроенное микропрограммное обеспечение Каждого монитора содержит блок данных под названием EDID, который кодирует разрешения монитора и частоты обновления и так далее. Видеодрайвер выполняет аппаратный вызов для получения этих данных через видеокарту / соединение монитора.

Разделители (как KVMs) управляют путем с карты на монитор. Некоторые KVMs передают EDID правильно, другие не делают. Мое предположение - то, что Ваш разделитель не позволяет EDID пасоваться назад.

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

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

Различные мониторы поддерживают различные наборы разрешений и частот, но все мониторы требуются Стандартом VESA поддерживать по крайней мере два: 640x480 и 800x600. Таким образом, когда X ничего не знает о мониторе, подключенном к нему, это отступает к тем двум разрешениям. Вот почему это - единственные, которые Вы видите доступный.

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

Если Вы указали свой видеодрайвер или связались с Вашим Xorg.0.log, я мог бы дать Вам более определенную информацию. Процедура варьируется, в зависимости от какого видеодрайвера Вы используете. Если это - поддерживающий KMS драйвер как - Intel или-ati, необходимо указать его через ядро. Если Вам выключили KMS или используете драйвер не-KMS, но драйвер поддерживает RANDR (например,-fglrx), можно добавить modeline использование xrandr инструмента командной строки такой, как зарегистрировано у основания https://wiki.ubuntu.com/X/Config/Resolution. При использовании не-KMS, non-RANDR драйвер такой как - Nvidia, им управляют полностью в/etc/X11/xorg.conf; в этом последнем случае необходимо будет искать частоты кадровой развертки и частоты строчной развертки для всех мониторов (надо надеяться, они - все близко к тем же диапазонам, еще Вы завинчены), и затем укажите тех, которые через опции HorizSync и VertRefresh в xorg.conf. Необходимо будет также добавить разрешение в xorg.conf. Возможно Вы, возможно, должны создать ModeLine также, но я поставлю просто HorizSync, и VertRefresh будет достаточно.

Удача, и если Вы застреваете убедиться отправить Ваш /var/log/Xorg.0.log.

3
ответ дан 7 October 2010 в 18:12

Похоже, что X не может правильно определить разрешение разделителя.

Вы можете заставить его использовать произвольные разрешения, используя xrand. На нем имеется некоторая документация , проверьте Раздел «Добавление необнаруженных разрешений» и Настройка X и изменение изменений не изменяются .

0
ответ дан 7 October 2010 в 18:12

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

Похожие вопросы: