Ключевые слова:monitor, x11, xorg, display, xrandr, xinerama, (найти похожие документы)
From: medved <medved@spark-mail.ru.>
Newsgroups: email
Date: Mon, 24 Dec 2007 14:31:37 +0000 (UTC)
Subject: xrandr в помощь в настройке многомониторных конфигураций
По адресу http://opensource.spark-media.ru/rukovodstva/dual-monitors-and-xrand.html
можно посмотреть оригинал статьи.
Однажды, обновив Убунту 7.10, которая и по сей день в стадии разработки,
я обнаружил, что у меня неожиданно "отвалились" иксы, которые были настроены
на 2 монитора при помощи модуля xinerama. Немного погоревав, отправился я
к разработчикам и в багзилле обнаружил, что не одинок с подобной
проблемой, и связанно это с поломанным модулем моей интеловской
встроенной карточки i945gm. Для нее в иксах существуют 2 модуля - intel,
который упорно не дружит с xinerama и i810, который упорно не дружит с
нестандартным ноутовским разрешением 1270х800. Помучив еще немного
xorg.conf, я отправился в гугл в надежде найти в нем мыслей светлых и
хоть каких-нибудь надежд на dual view и, как ни странно, нашел решение.
Им оказались утилиты displayconfig и displayconfig-gtk, которые, правда,
нифига не работали, и генерили непонятно чего в xorg.conf, пытаясь поднять
многострадальную xineram'у. Однако, вместе с ними нашлась
замечательная утилита xrandr, которая не переписывая конфиг может менять
разрешение, управлять выходами видеокарты, ну и также умеет на
виртуальном дисплее задавать расположение физических мониторов.
Собственно, в xorg.conf, в раздел screen, надо добавить "Virtual 2560 1024",
или любое другое разрешение; надо, чтобы в него помещались разрешения
наших физических мониторов.
Хорошая иллюстрация из убунтовской вики:
Далее перезапускаем иксы.
Что собственно можно делать с этой xrandr? Ну, например, для замены
xinerama я написал небольшой скрипт:
#!/bin/bash
xrandr -output VGA -auto -left-of LVDS
который включает vga вход и располагает изображение на нем слева
относительно ноутовского экрана. И еще один:
#!/bin/bash
xrandr -output VGA -off
который выключает vga.
Какие преимущества имеет данный подход?
Во-первых, в отличие от xinerama, нам не надо перезагружать иксы, чтоб
подключить монитор, что особенно неприятно, если ноут не выключается
вообще, а при завершении работы переходит в suspend. Желающие могут
заглянуть в ман за подробностями, там описано, как менять разрешения,
задавать координаты скринам в виртуальном фрейме, поворачивать экран
etc.
Я не в курсе, можно ли средствами dbus/hal перехватить подключение
монитора, но если у кого-то это получится, или есть другие идеи по
улучшению этой статьи - пишите добавляйте и распространяйте, текст под
лицензией gpl v2.
Спасибо за интересную статью. Есть пара вопросов, был бы признателен за ответ на них.
Как определить разрешение экрана, если к выходу VGA подключен телевизор через аппаратный переходник AverMedia KeyLite? (У ноута нет видеовыхода, пригодного для подключения к телевизору, поэтому вот эту аппаратную штуку приходиться юзать).
Второе, у меня в xorg.conf такая фигня (дефолтные установки lenny):
"Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
EndSection"
Надо дописывать в секцию экрана, или надо искать конфиг, где конфигурируется монитор? (К сожалению, в xorg.conf нет на него ссылки, но похоже здесь используется несколько конфигов, как теперь модно в дебиане?)
И третье, как в итоге заставить на экран ноута выводить одно изображение, а на экран телевизора - другое (с другого вирт. дисплея или, лучше, с видеоплеера, если последнее возможно)?