Настройка двух мониторов на OpenBSD

Настройка двух TFT-мониторов на OpenBSD

Алексей Кононенко aka Load

Преамбула:

В конце позапрошлого года, когда мне прислали из ЛинуксЦентра заказанный дистрибутив OpenBSD 4.0, решил я его установить на свой рабочий комп с 2-мя мониторами (дома у меня одной из ОС стоит OpenBSD 3.9, но 1 моник). Сделал полную инсталляцию, из пакаджей установил KDE и начал отстраивать Х-ы. Создал начальный конфиг, подправил его ручками и запустил KDE – балалайка :-(. Немного опять поправив конфиг, Х-ы стартанули, но не в том режиме, какой я хотел. И вот тут-то выяснилось самое неприятное – при выходе из Х-ов комп вываливал чёрный экран и ни на что не реагировал, кроме ресета или выключения. После этого опять загрузка, проверка разделов и опять консоль – всё это ООЧЕНЬ тормозило настройку, поэтому часа через 3 я плюнул на это дело.
Но вот недавно опять из ЛинуксЦентра прислали OpenBSD 4.2. Решил вернуться к данному вопросу. Опять сделал полную инсталляцию, из пакаджей установил KDE и начал отстраивать Х-ы.
С начальным конфигом, созданным через xorgcfg -textmode, Х-ы не стартовали. Ерунда – нас этим не запугаешь. Подправил xorg.conf – Х-ы стартовали, но опять не в том режиме. Тут и выяснилось, что косяк с выходом из Х-ов исправлен – гут!

Решил всё делать поэтапно:
1. Настроить 1-й моник с нужным разрешением.
2. Настроить 2-й моник в режиме клона с любым разрешением.
3. Установить нужное мне разрешение на клоне.
4. Настроить биг-десктоп.

Теперь амбула.

Имеем:
1. OpenBSD 4.2
2. X Window System
3. VideoCard ATI Radeon X700 Pro PCI-E (DVI + D-SUB)
4. 2 монитора Xerox XA7-17i – 1 подключен к DVI - Screen0, 2-й через переходник к D-SUB – Screen1
5. ну и пара не совсем кривых ручек, умение логически мыслить, отсутствие лени копаться в логах и читать маны, и желание добиться результата, а также знание английского.

Поехали:

Пункт 1.

Никаких проблем, только надо взять из доки к монику (или в инете) хар-ки HorizSync и VertRefresh и исправить их в xorg.conf
у меня:


Section "ServerLayout"
Identifier "Simple Layout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection

и также:


Section "Monitor"
Identifier "Xerox0"
HorizSync 31.5 - 64.3
VertRefresh 50.0 - 70.0
ModeLine "1280x1024" 108.0 1280 1328 1440 1688 1024 1025 1028 1068 +hsync +vsync
EndSection

Section "Monitor"
Identifier "Xerox1"
HorizSync 31.5 - 64.3
VertRefresh 50.0 - 70.0
ModeLine "1280x1024" 108.0 1280 1328 1440 1688 1024 1025 1028 1068 +hsync +vsync
EndSection

т.к. моников 2, то и секций тоже 2. Modeline я поставил 1, потому что другие мне не нужны вообще.
Запускаю КДЕ и вижу, что 1-й моник кажет так, как указано, а 2-й не кажет ничего.

Пункт 2.

Сначала я скосячил – прописал в конфиге 2 видеокарты на разных BusID (выдает scanpci или по логам Х-ов):


Section "Device"
Identifier "X700 Pro0"
Driver "radeon"
VideoRam 131072
BusID "PCI:04:00:00"
Option "BusType" "PCIE"
EndSection

Section "Device"
Identifier "X700 Pro1"
Driver "radeon"
VideoRam 131072
BusID "PCI:04:00:01"
Option "BusType" "PCIE"
EndSection

Потом подумал и решил, что все-таки видюха-то 1, просто портов 2, и 2-ю секцию Device заремил и подправил секции Screen:


Section "Screen"
Identifier "Screen0"
Device "X700 Pro0"
Monitor "Xerox0"
EndSection

Section "Screen"
Identifier "Screen1"
Device "X700 Pro0"
Monitor "Xerox1"
EndSection

Стартую КДЕ – опаньки, клон завёлся, но в разрешении 640х480, тогда как мастер 1280х1024. Меня это не устраивает.

Пункт 3.

Читаю маны, и нахожу опцию MonitorLayout. Добавляю её в секцию Device:


"MonitorLayout" "TMDS,TMDS"

TMDS – указывает, что 2 моника TFT (в Лине вроде аналог DPMS). Но КДЕ это по барабану – клон всё так же 640х480.
Дальнейшие пробы ничего не дают. Копаю логи после изменения любого параметра, и делаю вывод – не хочешь клона видеть как TFT, подсуну CRT:


"MonitorLayout" "TMDS,CRT"

Стартую КДЕ – оопс – клон стартует в разрешении 1280х1024. Ура! Но нафига мне 2 моника с одинаковой картинкой? -)))))

Пункт 4.

И тут начинаются шаманские пляски с бубном, перемежаемые чтением манов, ковырянием логов, чаепитиями и перекурами в курилке с нервными размышлениями.
В общем, часа через 2-2.5 сделал следующее:


Section "Device"
Identifier "X700 Pro0"
Driver "radeon"
VideoRam 131072
BusID "PCI:04:00:00"
Option "BusType" "PCIE"
Option "MonitorLayout" "TMDS,CRT"
Option "MergedFB" "TRUE"
Option "CRT2Position" "RightOf"
Option "CRT2HSync" "31.5-64.3"
Option "CRT2VRefresh" "50.0-70.0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "X700 Pro0"
Monitor "Xerox0"
EndSection

Section "Screen"
Identifier "Screen1"
Device "X700 Pro0"
Monitor "Xerox1"
EndSection

Ну наконец-то КДЕ стартует в режиме биг-десктопа, но с какими-то невероятными размерами – курсор мыши перемещается с мастера на клона и обратно, но половины экрана мастера я не вижу – уполз далеко влево за рамки экрана -)).
Очередные чтения манов и пляски с бубном приводят к следующему – строку


Option "MonitorLayout" "TMDS,CRT"

меняю обратно на


Option "MonitorLayout" "TMDS,TMDS"

и:


Section "Screen"
Identifier "Screen0"
Device "X700 Pro0"
Monitor "Xerox0"
SubSection "Display"
Viewport 0 0
Depth 24
Virtual 2560 1024
EndSubSection
EndSection

Ура!!!!!!!!! КДЕ стартует в режиме биг-десктоп и в Центре управления я вижу картинку

Но есть небольшой косячок – экран мастера не влезает целиком на моник и поэтому присутствует небольшой вертикальный скроллинг при перемещении мышки к верхнему или нижнему краям экрана (на клоне нечто похожее). Мелочь, а неприятно. Копаю логи и вижу, что не найдены метамоды и размеры экранов по умолчанию выставлены в 1340х1050. Последнее усилие в чтении манов и в секцию Device добавляю строку


Option "MetaModes" "1280x1024-1280x1024"

Рестарт КДЕ и вижу

У меня есть нормальный биг-десктоп с нормальным разрешением и без всяких косяков.

Я все-таки сделал это!!!!!!!!

И вот кусок моего конфига:


Section "ServerLayout"
Identifier "Simple Layout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection

Section "Monitor"
Identifier "Xerox0"
HorizSync 31.5 - 64.3
VertRefresh 50.0 - 70.0
ModeLine "1280x1024" 108.0 1280 1328 1440 1688 1024 1025 1028 1068 +hsync +vsync
EndSection

Section "Monitor"
Identifier "Xerox1"
HorizSync 31.5 - 64.3
VertRefresh 50.0 - 70.0
ModeLine "1280x1024" 108.0 1280 1328 1440 1688 1024 1025 1028 1068 +hsync +vsync
EndSection

Section "Device"
Identifier "X700 Pro0"
Driver "radeon"
VideoRam 131072
BusID "PCI:04:00:00"
Option "BusType" "PCIE"
Option "MonitorLayout" "TMDS,TMDS"
Option "MergedFB" "TRUE"
Option "MetaModes" "1280x1024-1280x1024"
Option "CRT2Position" "RightOf"
Option "CRT2HSync" "31.5-64.3"
Option "CRT2VRefresh" "50.0-70.0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "X700 Pro0"
Monitor "Xerox0"
SubSection "Display"
Viewport 0 0
Depth 24
Virtual 2560 1024
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "X700 Pro0"
Monitor "Xerox1"
EndSection