Настройка дисплеев xrandr'ом

Материал из ALT Linux Wiki


Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Вступление

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

Мой случай

Есть ноутбук с VGA-выходом. Дома стоит монитор, который может 1680х1050@60Hz, а на работе 1280х1024@72Hz. По умолчанию, xorg запускался, стараясь вывести сигнал на все возможные выходы. При этом драйвер radeon искал компромисс между разными разрешениями мониторов и экрана ноутбука. И если один из них работал только в режиме 1024х768, то остальные получали такую же картинку. Поиск в Интернет подсказал использовать xrandr для настройки.

Начальные условия

  • 01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS690M [Radeon X1200 Series] [1002:791f]
  • xorg-server-1.5.1-alt2
  • xorg-drv-radeon-6.9.0-alt3
  • графический режим запускается хотя бы на одном мониторе

Реализация

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

TODO: Привязать скрипты к функциональным кнопкам.

Для начала я определил, как называются видеовыходы (обозначены полужирным шрифтом):

#xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1680 x 1600
VGA-0 connected (normal left inverted right x axis y axis)
  1680x1050      60.0 +   60.0
<... cut ...>
  720x400        70.1
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
  1280x800       60.0*+
 <... cut ...>
  640x480        59.9
HDMI-0 disconnected (normal left inverted right x axis y axis)

Затем был создан первый скрипт, который:

  1. Отключал экран ноутбука (LVDS)
  2. Переключал монитор (VGA-0) в наилучший режим
#!/bin/bash
xrandr --output LVDS --off
xrandr --output VGA-0 --auto

Второй скрипт, позволял переключаться обратно на экран ноутбука:

#!/bin/bash
xrandr --output VGA-0 --off
xrandr --output LVDS --auto

Третий, включал оба выхода ( VGA-0 и LVDS ) в режиме дублирования, при этом использовалось "минимальное общее" разрешение

#!/bin/bash
xrandr --output LVDS --off
xrandr --output VGA-0 --off
xrandr --output LVDS --mode 1024x768
xrandr --output VGA-0 --mode 1024x768

TODO: Найти устройство с HDMI и попробовать выводить сигнал на него.