Dual Screen with radeon: различия между версиями
Ender (обсуждение | вклад) (Новая: == Xrandr == a-la XINERAMA: один Screen, экран имеет ширину в два монитора === xrog.conf === Section "ServerLayout" Identifier "radeon" Screen ...) |
м (→xrog.conf: typo fix) |
||
Строка 2: | Строка 2: | ||
a-la XINERAMA: один Screen, экран имеет ширину в два монитора | a-la XINERAMA: один Screen, экран имеет ширину в два монитора | ||
=== | === xorg.conf === | ||
Section "ServerLayout" | Section "ServerLayout" | ||
Identifier "radeon" | Identifier "radeon" |
Версия от 19:04, 5 ноября 2008
Xrandr
a-la XINERAMA: один Screen, экран имеет ширину в два монитора
xorg.conf
Section "ServerLayout" Identifier "radeon" Screen "radeon|0" ... EndSection # остался от fglrx. Section "Monitor" Identifier "aticonfig-Monitor[0]" Option "VendorName" "ATI Proprietary Driver" Option "ModelName" "Generic Autodetecting Monitor" Option "DPMS" "true" DisplaySize 375 302 EndSection Section "Device" Identifier "radeon|0" Driver "radeon" EndSection Section "Screen" Identifier "radeon|0" Device "radeon|0" Monitor "aticonfig-Monitor[0]" DefaultDepth 24 Option "Backingstore" "true" SubSection "Display" Depth 24 Modes "1280x1024" Virtual 2560 1024 EndSubSection EndSection
Обращаю внимание на выделенный жирным Virtual. не будет его, xrandr может начать ругаться (в моем случае)
xrandr: screen cannot be larger than 1280x1280 (desired size 2560x1024)
как я понял, причина, что xrandr работает в пределах Virtual и за них не вылезает.
в принципе это вся конфигурация xorg. остальное делается динамически.
xrandr invocation
получение списка выводов
перво-наперво смотрим, какие выводы мы имеем:
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1280 DVI-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1280x1024 59.9*+ 60.0 1280x960 60.0 1024x768 60.0 800x600 60.3 640x480 59.9 DVI-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1280x1024 59.9*+ 60.0 1280x960 60.0 1024x768 60.0 800x600 60.3 640x480 59.9
DVI-0 и DVI-1 - выводы для xrandr ( подставляется в --output). обращаю внимание на выделенное 1280x1280: это тот самый region, на котором рабоатает xrandr. меняется через Virtual, как сказано выше.
запуск dual-head режима
xrandr --output DVI-0 --left-of DVI-1
в большинстве случаев после этой команды ничего делать тне нужно.
привязка выхода к монтору
так случилось, что после запуска xrandr с --left-of, второй монитор начал показывать один в один то, что показывает первый. но по taskbar'у fluxbox'а заметно, что двойной режим-то включен. исправило ситуацию следующие команды:
xrandr --output DVI-0 --crtc 0 --auto xrandr --output DVI-1 --crtc 1 --auto
здесь устанавливается привязка монтора (crtc) и вывода (output). --auto указан для того, чтобы после этих команда мониторы не выключались.
уменщились/увеличились шрифты
второй проблемой, с которой я столкнулся, были шрифты. после запуска xrandr с --left-of dpi шрифтов изменились, как и размеры монитора в выводе xdpyinfo:
... screen #0: print screen: no dimensions: 1280x1024 pixels (360x270 millimeters) resolution: 96x96 dots per inch depths (7): 24, 1, 4, 8, 15, 16, 32 root window id: 0xa1 depth of root window: 24 planes ...
мне же нужно было:
screen #0: ... print screen: no dimensions: 1280x1024 pixels (375x302 millimeters) resolution: 87x86 dots per inch depths (7): 24, 1, 4, 8, 15, 16, 32 root window id: 0xa1 depth of root window: 24 planes ...
для чего я и указывал DisplaySize 375 302 в xorg.conf, но после xrandr DisplaySIze к сожалению сбросился. установка вручную происходит следующим образом:
xrandr --output DVI-0 --fbmm 375x302 xrandr --output DVI-1 --fbmm 375x302
после перезапуска программ (fluxbox restart, opera, etc) шрифты вернулись на место.
сброс dual-head
чисто случайно испробовал я следующую команду:
xrandr --output DVI-1 --same-as DVI-0
после неё X сервер вернулся к clone режиму.
Помещение в автозапуск
в /etc/X11/xinit есть файл xrandrrc. он считывает /etc/sysconfig/xrandr и $HOME/.Xrandr записи вида:
:[0-9]* <xrandr options>
поэтому для атвтоматического запуска xrandr достаточно поместить в один из этих файлов команды. мне хватило следующих:
:0 --output DVI-0 --fbmm 375x302 :0 --output DVI-1 --fbmm 375x302 :0 --output DVI-0 --crtc 0 --auto :0 --output DVI-1 --crtc 1 --auto :0 --output DVI-0 --left-of DVI-1
Dual Screen режим
как в XINERAMA, так и в xrandr мне не понравилось, что после их запуска программы экраном считают не один монитор, а оба сразу. например программа установки обев растягивала картинку на оба монитора. с другой xrandr для этого и предназначен, потому нужен был иной подход: радзделение мониторов по разным Screen'ам. я нашел только, как это сделать статически:
Section "ServerLayout" Identifier "radeon" Screen "radeon|0" Screen "radeon|1" RightOf "radeon|0" ... EndSection Section "Monitor" Identifier "aticonfig-Monitor[0]" Option "VendorName" "ATI Proprietary Driver" Option "ModelName" "Generic Autodetecting Monitor" Option "DPMS" "true" DisplaySize 375 302 EndSection Section "Monitor" Identifier "aticonfig-Monitor[1]" Option "VendorName" "ATI Proprietary Driver" Option "ModelName" "Generic Autodetecting Monitor" Option "DPMS" "true" DisplaySize 375 302 EndSection Section "Device" Identifier "radeon|0" Driver "radeon" Option "DRI" "off" Screen 0 EndSection Section "Device" Identifier "radeon|1" Driver "radeon" Option "DRI" "off" Screen 1 EndSection Section "Screen" Identifier "radeon|0" Device "radeon|0" Monitor "aticonfig-Monitor[0]" DefaultDepth 24 Option "Backingstore" "true" SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection EndSection Section "Screen" Identifier "radeon|1" Device "radeon|1" Monitor "aticonfig-Monitor[1]" DefaultDepth 24 Option "Backingstore" "true" SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection EndSection
красным выделены критичные строчки. в ServerLayout строка
Screen "radeon|0"
важна! в противном случае X сервер матерится, что не может найти подходящий screen для работы.