Dual Screen with radeon: различия между версиями

Материал из ALT Linux Wiki
(Новая: == Xrandr == a-la XINERAMA: один Screen, экран имеет ширину в два монитора === xrog.conf === Section "ServerLayout" Identifier "radeon" Screen ...)
 
(Содержимое страницы заменено на «Убрано на http://freesource.info/wiki/DualScreenWithRadeon»)
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
== Xrandr ==
Убрано на http://freesource.info/wiki/DualScreenWithRadeon
a-la XINERAMA: один Screen, экран имеет ширину в два монитора
 
===  xrog.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''. не будет его, <tt>xrandr</tt> может начать ругаться (в моем случае)
xrandr: screen cannot be larger than 1280x1280 (desired size 2560x1024)
как я понял, причина, что <tt>xrandr</tt> работает в пределах ''Virtual'' и за них не вылезает.
 
в принципе это вся конфигурация <tt>xorg</tt>. остальное делается динамически.
 
=== xrandr invocation ===
==== получение списка выводов ====
перво-наперво смотрим, какие выводы мы имеем:
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum '''1280 x 1280'''
<font color=red>DVI-0</font> 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 
<font color=red>DVI-1</font> 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 
 
<font color=red>DVI-0</font> и <font color=red>DVI-1</font> - выводы для <tt>xrandr</tt> ( подставляется в <tt>--output</tt>).
''обращаю внимание на выделенное 1280x1280: это тот самый region, на котором рабоатает xrandr. меняется через Virtual, как сказано выше.''
 
==== запуск dual-head режима ====
xrandr --output DVI-0 --left-of DVI-1
в большинстве случаев после этой команды ничего делать тне нужно.
 
==== привязка выхода к монтору ====
так случилось, что после запуска <tt>xrandr</tt> с <tt>--left-of</tt>, второй монитор начал показывать один в один то, что показывает первый. но по taskbar'у fluxbox'а заметно, что двойной режим-то включен. исправило ситуацию следующие команды:
xrandr --output DVI-0 --crtc 0 --auto
xrandr --output DVI-1 --crtc 1 --auto
здесь устанавливается привязка монтора (crtc) и вывода (output). <tt>--auto</tt> указан для того, чтобы после этих команда мониторы не выключались.
 
==== уменщились/увеличились шрифты ====
второй проблемой, с которой я столкнулся, были шрифты. после запуска <tt>xrandr</tt> с <tt>--left-of</tt> dpi шрифтов изменились, как и размеры монитора в выводе <tt>xdpyinfo</tt>:
...
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, но после <tt>xrandr</tt> ''DisplaySIze'' к сожалению сбросился.
установка вручную происходит следующим образом:
xrandr --output DVI-0 --fbmm 375x302
xrandr --output DVI-1 --fbmm 375x302
после перезапуска программ (<tt>fluxbox</tt> restart, <tt>opera</tt>, etc) шрифты вернулись на место.
 
==== сброс dual-head ====
чисто случайно испробовал я следующую команду:
xrandr --output DVI-1 --same-as DVI-0
после неё X сервер вернулся к clone режиму.
 
=== Помещение в автозапуск ===
в <tt>/etc/X11/xinit</tt> есть файл <tt>xrandrrc</tt>. он считывает <tt>/etc/sysconfig/xrandr</tt> и <tt>$HOME/.Xrandr</tt> записи вида:
:[0-9]*  <xrandr options>
поэтому для атвтоматического запуска <tt>xrandr</tt> достаточно поместить в один из этих файлов команды. мне хватило следующих:
: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 режим ==
как в <tt>XINERAMA</tt>, так и в <tt>xrandr</tt> мне не понравилось, что после их запуска программы экраном считают не один монитор, а оба сразу. например программа установки обев растягивала картинку на оба монитора.
с другой <tt>xrandr</tt> для этого и предназначен, потому нужен был иной подход: радзделение мониторов по разным Screen'ам.
я нашел только, как это сделать статически:
Section "ServerLayout"
  Identifier    "radeon"
  <font color=red>Screen        "radeon|0"</font>
  <font color=red>Screen        "radeon|1" RightOf "radeon|0"</font>
  ...
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"
  <font color=red>Screen      0</font>
EndSection
Section "Device"
  Identifier  "radeon|1"
  Driver      "radeon"
  Option      "DRI"  "off"
  <font color=red>Screen      1</font>
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
красным выделены критичные строчки.
в <tt>ServerLayout</tt> строка
Screen        "radeon|0"
важна! в противном случае X сервер матерится, что не может найти подходящий screen для работы.

Текущая версия от 09:20, 8 ноября 2008