Два монитора на одной видеокарточке

Опубликовано 27 Июня, 2008 под тегами Мониторы, Железо

Несмотря на то, что у меня видеокарта NVidia Geforce 8500GT, я не стал пользоваться TwinView, поскольку она дает меньше рычагов для управления мониторами. Поэтому в статье рассматривается более традиционный метод.

Дано

Итак, пусть имеется одна видеокарта с DVI и D-SUB выходами. Пусть так же имеется два монитора.

Вопрос: Как эти мониторы присоединить к видеокарте и использовать одновременно?

Решение

Чтобы решить поставленную задачу, потребуется редактировать всего один конфиг, расположенный в /etc/X11/xorg.conf (если у вас конечно стоит Xorg. если не знаете, то точно он)

Действие 1. Устройство.

В самом простом случае требуется всего-навсего скопировать секцию “Device”, переименовать, и назначить другой экран. Чтобы это не были пустые теоретизирования, приведу пример:

Section "Device"
Identifier    "NV1"
Boardname    "NVidia"
Busid        "PCI:1:0:0"
Driver        "nvidia"
Screen        0
EndSection

Копируем и вносим в копию исправления:

Section "Device"
Identifier    "NV2"
Boardname    "NVidia"
Busid        "PCI:1:0:0"
Driver        "nvidia"
Screen        1
EndSection

Замечание: Параметр Busid указывает на идентификатор карточки. Таким образом, если у вас две видео карты, можно с небольшими изменениями использовать их в той же конфигурации.

Замечание 2: В этом разделе могут быть и другие опции, например Option “RenderAccel” “True” или, что в данном контексте представляет интерес, Option “Rotate” “CW” или Option “Rotate” “CCW”, что позволяет повернуть второй монитор на 90 градусов, как я, собственно, и поступил.

Действие 2. Монитор

Если мониторы одинакового типа, то раздел “Monitor” можно оставить в покое. Иначе - скопировать, переименовать, изменить характеристики.

Я не буду останавливаться на этом месте, поскольку обычно мониторы схожи своими характеристиками. В конце статьи приведены ссылки на источники, можно попробовать найти там дополнительную инофрмацию.

Замечу, что у меня единственный раздел “Мониор” называется “MO1”

Действие 3. Экран

Секцию Screen придется аналогично копировать. Опять же, нужно изменить идентификатор. Не буду утомлять теоретизированиями, просто приведу результат:

Section "Screen"
Identifier    "SC1"
Device        "NV1"
Monitor        "MO1"
Defaultdepth    24
SubSection "Display"
Depth    24
Modes        "1280x1024@60"    "1280x960@60"    "1024x768@60"    "800x600@60"    "800x600@56"    "640x480@60"
EndSubSection
EndSection

Section "Screen"
Identifier    "SC2"
Device        "NV2"
Monitor        "MO1"
Defaultdepth    24
SubSection    "Display"
Depth 24
Modes    "1280x1024@60"    "1280x960@60"    "1024x768@60"    "800x600@60"    "800x600@56"    "640x480@60"
EndSubSection
EndSection

Обращаю внимание на то, что у каждого экрана свое устройство. Так же, если мониторы отличаются, придется изменить Monitor и, возможно, Modes в подсекции “Display”.

Действие 4. Расположение.

Речь идет о секции ServerLayout. Здесь нас поджидают некоторые хитрости.

Базовая конфигурация выглядит так:

Section "ServerLayout"
Identifier    "LA1"
Screen 0 "SC1"
Screen 1 "SC2" LeftOf "SC1"
Option    "Xinerama"    "True"
EndSection

Рассмотрим теперь все по порядку. Итак, с параметром Identifier все понятно. Screen 0 “SC1”, вроде, тоже.

Screen 1 “SC2” LeftOf “SC1” - означает, что второй экран расположен слева от первого. Возможен так же вариант: RightOf.

Option “Xinerama” “True” - это ни что иное, как активация соответствующего модуля. Он “превращает” два отдельных монитора в одно виртуальное пространство, позволяя перетаскивать окна с монитора на монитор и тп. Это оказывается не всегда удобно, поэтому можно и выключить:

Option    "Xinerama"    "False"

Ответ

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

В заключение, мой xorg.conf полностью: xorg.conf

В настройке помогли: http://gentoo-wiki.com/HOWTO_Dual_Monitors#Non-TwinView и http://ubuntuforums.org/showthread.php?p=1773624

P.S. Вообще, многие из перечисленных манипуляций довольно легко производятся посредством утилиты nvidia-settings

sudo apt-get install nvidia-settings && sudo nvidia-settings

P.P.S. Ну да, еще картинка:

Два монитора