Comp.Soft
Главная | Регистрация | Вход
Суббота, 27-Апреля-2024, 19:37
АСТРАХАНЬ
Меню
Поиск
Категории
Linux
Дешёвый СОФТ
Чат
Это нужно
Главная » Статьи » Linux » Linux

Система X11
Оригинал: "Ubuntu Hacks: Chapter 5 - X11"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2010 г.

Пытаемся разобраться с конфигурационным файлом Xorg

Независимо от того, какие способы вы будете использовать для настройки ваших дисплеев, вам потребуется внести изменения в конфигурационный файл Xorg, расположенный в /etc/X11/xorg.conf, поэтому вам не мешает ознакомиться с его структурой и с тем, что в нем используется.

В xorg.conf представлен ряд разделов, в каждом из которых определяется конкретная часть конфигурации X. Различные элементы, такие как видео-карты, экраны и устройства ввода определяются независимо друг от друга, а затем в конце файла постепенно связываются друг с другом. В конфигурационном файле Xorg есть много дополнительных разделов, но те, что перечислены ниже, наиболее важны при использовании нескольких дисплеев.

Раздел устройств "Device"

Устройством является видеокарта или видеоадаптер, так что вам потребуется по одному разделу Device (Устройство) для каждой карты вашей системы. Видеокарта с несколькими выходами считается одним устройством, но для нее требуется два раздела Device, в которых будут указаны различные выходы. В состав каждого раздела Device входит, как минимум, запись Identifier (Идентификатор) и запись Driver (Драйвер), но если у вас установлено более одной видеокарты, вам нужно добавить значение BusID (Идентификатор шины) для того, чтобы Xorg знал, какой раздел связан с каждой картой; если у вас есть карта с несколькими выходами, то добавьте значение Screen, чтобы Xorg также знал, какой раздел связан с каждым выходом. Используйте команду lspci -X и определите BusID для каждой карты в формате, подходящем для записи в файл xorg.conf:

Section "Device" 
Identifier "NVIDIA Corporation NV34M [GeForce FX Go5200]"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection

Если у вас имеется одно устройство с несколькими выходами, нумеруйте записи экранов Screen начиная с 0. Вы также должны дать каждому параметру Identifier уникальное имя (в данном примере, мы просто добавили в конце 0 или 1):

Section "Device" 
Identifier "NVIDIA Corporation NV40 [GeForce 6800] 0"
Driver "nvidia"
BusID "PCI:3:0:0"
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"
Screen 0
EndSection

Section "Device"
Identifier "NVIDIA Corporation NV40 [GeForce 6800] 1"
Driver "nvidia"
BusID "PCI:3:0:0"
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"
Screen 1
EndSection

Раздел мониторов "Monitor"

Вам необходимы по одному разделу Monitor для каждого монитора, подключенного к компьютеру. Задайте для каждого из них уникальное смысловое значение Identifier:

Section "Monitor" 
Identifier "Main Monitor"
Option "DPMS"
HorizSync 28-80
VertRefresh 43-60
EndSection

Section "Monitor"
Identifier "Second Monitor"
Option "DPMS"
HorizSync 28-80
VertRefresh 43-60
EndSection

Раздел экранов "Screen"

В терминологии X экран представляет собой комбинацию устройства и монитора. В разделах Screen указываются значения Device и Monitor, представляющие собой ссылки по названию на соответствующие разделы:

Section "Screen" 
Identifier "Main Screen"
Device "NVIDIA Corporation NV40 [GeForce 6800] 0"
Monitor "Main Monitor"
DefaultDepth 24

# Subsections for other display depths not shown...
SubSection "Display"
Depth 24
Modes "1600x1200"
EndSubSection
EndSection

Section "Screen"
Identifier "Second Screen"
Device "NVIDIA Corporation NV40 [GeForce 6800] 1"
Monitor "Second Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection

Раздел "ServerLayout", определяющий расположение мониторов

Раздел ServerLayout, в свою очередь, является разделом, где указывается комбинация одного или большего числа разделов Screen, а также разделов InputDevice, в которых определяются клавиатуры, мыши и трекпады. Совсем скоро вы увидите несколько примеров раздела ServerLayout.

Отслеживаем ошибки в X

Как только вы начинаете изменять конфигурационный файл Xorg, возникает весьма высокая вероятность того, что, в конечном итоге, ваш компьютер перейдет в состояние, в котором X-ы вообще не смогут стартовать. Первое место, куда следует заглянуть за информацией для отладки, является журнал Xorg, который заново генерируется каждый раз, когда запускается X, и который хранится в файле /var/log/Xorg.<0>>.log или аналогичном. <0> является идентификатором, который используется Xorg для определения сеансов X; если вы запустили несколько сеансов X, у вас, возможно, также будет файл Xorg.1.log.

В журнале Xorg в начале каждой строки также добавляется ключ серьезности проблемы, благодаря чему можно очень легко увидеть именно то, что вызвало проблему. Строки, помеченные как (II), являются исключительно информационными, строки, помеченные как (WW), содержат нефатальные предупреждения, а строки, помеченные как (EE), указывают фатальные ошибки. Проблемы часто проходят по всему журналу сверху вниз каскадом, поскольку одна ошибка может быть причиной возникновения следующей ошибки, так, например, проблема с инициализацией видеокарты приводит к неспособности инициализации экрана.

Настраиваем функцию Xinerama

В X есть встроенная поддержка использования нескольких мониторов, но по умолчанию, каждый из них считается совершенно независимым от других. Когда используется несколько независимых мониторов, невозможно размещать окна сразу на нескольких экранах, перетаскивать окна с одного экрана на другой или переводить курсор с одного экрана на другой, перемещая его за край экрана. На самом деле для каждого монитора создается совершенно отдельная среда.

Функция Xinerama является функцией X, которая позволит преодолеть это ограничение, объединяя между собой несколько экранов так, чтобы они представляли собой единый "виртуальный экран". Вы можете определить положение экранов относительно друг к другу и компьютер будет знать, где каждый экран физически расположен по отношению к другим; это позволит перетаскивать окна через все экраны с учетом их перекрытия и расстановки мониторов на вашем письменном столе.

Во-первых, убедитесь, что в Xorg есть функция Xinerama, которую, если она отсутствует, можно включить добавив соответствующий раздел ServerFlags:

Section "ServerFlags" 
Option "Xinerama" "true"
EndSection

Затем добавьте разделы для второго устройства, монитора и экрана так, как это описано выше, задавая им подходящие имена. Наконец, добавьте второй экран в раздел ServerLayout, указав его положение относительно основного экрана. Вот пример с двумя экранами:

Section "ServerLayout" 
Identifier "Twin Head"
Screen "Main Screen"
Screen "Second Screen" RightOf "Main Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection

Выйдите из GNOME, нажмите клавиши Ctrl-Alt-Пробел для того, чтобы остановить Xorg и затем заставить его снова начать работать, и наблюдайте за тем, как оба монитора включаются в работу.

Конфигурируем TwinView для карт nVidia

В картах Nvidia, имеющих несколько выходов, поддерживается специальный видеорежим, называемый TwinView, который используется в проприетарных (двоичных) драйверах. TwinView немного похож на Xinerama, поскольку он связывает вместе несколько мониторов в один виртуальный дисплей, но разница в том, что это делается на очень низком уровне в видео-драйверах и аппаратных средствах. Оба монитора используют один и тот же фреймбуфер, в результате чего Xorg считает, что у вас только один монитор, в результате чего достигается лучшая производительность в сравнении с использованием функции Xinerama, а также появляется возможность использовать OpenGL на обоих мониторах на максимальной скорости. Что касается Xorg, то он управляет только одним экраном: просто оказывается, что экран имеет очень странные размеры.

По умолчанию в Ubuntu устанавливается драйвер nv с открытым кодом, но для того, чтобы использовать TwinView, вам нужно вместо него установить проприетарный драйвер nvidia. Драйвер nvidia входит в состав пакета linux-restricted-modules-[arch], который поставляется в нескольких вариантах в зависимости от того, каким ядром вы пользуетесь. Полная инструкция по установке этого двоичного драйвера приведена в разделе в "Включаем 3-D видеоускорение" [Совет # 52].

После того как Xorg будет успешно работать с одним монитором и двоичными драйверами, выполните команду sudo nvidia-xconfig -twinview для того, чтобы изменить ваш файл xorg.conf и включить поддержку TwinView. Если вы хотите что-либо еще настроить (или посмотреть, что было сделано), откройте файл /etc/X11/xorg.conf и перейти к разделу Device для вашей карты NVidia. Вместо того, чтобы определять второй монитор отдельно, драйвер nVidia позволяет использовать целый ряд дополнительных параметров для включения режима TwinView и непосредственной настройки монитора:

Section "Device" 
Identifier "NVIDIA Corporation NV40 [GeForce 6800]"
Driver "nvidia"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "NVIDIA Corporation NV40 [GeForce 6800]"
Monitor "Generic Monitor"
DefaultDepth 24
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"
Option "TwinView" "True"
Option "TwinViewOrientation" "RightOf"
Option "UseEdidFreqs" "True"
Option "MetaModes" "1280x1024,1280x1024; 1024x768,1024x768"

# Subsections for other display depths not shown...
SubSection "Display"
Depth 24
Modes "1600x1200"
EndSubSection
EndSection

Параметр MetaModes сообщит драйверу о том, какое разрешение будет использоваться в обоих мониторах, которое затем будет передано в Xorg как сумма размеров; в данном случае можно указать несколько вариантов разрешения; поскольку мониторы расположены один рядом с другим (RightOf), эффективное разрешение будет 2560x1024 или 2048x768.

Вы также можете явно указать смещение экранов друг относительно друга с тем, чтобы точно управлять логическим положением экранов:

Option "MetaModes" "1600x1200 +0+0, 1024x768 +1600+0;"

Другими возможными значениями параметра TwinViewOrientation являются LeftOf (Слева от), Above (Сверху), Below (Снизу) и Clone (Клон). Режим Clone это особый режим, в котором на оба монитора выводится одно и то же изображение, что идеально подходит для запуска презентаций на ноутбуке, к которому подключен внешний проектор.

Конфигурируем MergedFB для карт ATI/Radeon

Новые видеокарты ATI поддерживают режим в Xorg, который называется MergedFB и который очень похож на режим TwinView для карт nVidia тем, что здесь подключение второго монитора также осуществляется непосредственно в драйвере и создается впечатление, что используется один большой виртуальный монитор:

Section "Device" 
Identifier "Radeon7000"
Driver "radeon"
BusID "PCI:0:9:0"
Option "MergedFB" "true"
Option "MonitorLayout" "AUTO, AUTO"
Option "CRT2Hsync" "30-65"
Option "CRT2VRefresh" "50-75"
Option "CRT2Position" "LeftOf"
Option "MetaModes" "1280x1024-1280x1024"
EndSection

Точно также, как и в TwinView, есть параметры, с помощью которых задаются частота, положение и разрешение второго монитора.

Комбинированные способы

Иногда недостаточно даже двух мониторов, но, к сожалению, видеокарты с более чем двумя выходами довольно редки, так что вам может понадобиться объединить методы, если вы хотите запустить три или более мониторов. Например, у вас может быть видеокарта NVidia с двумя выходами, работающая в режиме TwinView с двумя мониторами, а также третий монитор, который подключен к более старой видеокарте PCI. Поскольку TwinView выглядит для X как единый виртуальный экран, вы можете, приложив совсем немного усилий, объединить его с третьим монитором с помощью функции Xinerama и получить систему с тремя мониторами.

Немного творчества и на одной и той же машине можно даже объединить все способы подключения TwinView, MergedFB и Xinerama (рис. 5-6).

Рабочий стол с пятью мониторами

Рис.5-6. Рабочий стол с пятью мониторами




Источник: http://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/ubuntu_hacks_ru/ubuntuhack50.html
Категория: Linux | Добавил: Andrey (28-Сентября-2010) | Автор: Н.Ромоданов
Просмотров: 1464 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Переводчик сайта
Менюшка

Соц. сети
Вход
Теги

Для красивого отображения Облака
необходим
Adobe Flash Player 9
или выше
Скачать Adobe Flash Player

ОЗОН
OZON.ru
Друзья

Переводчик онлайн
Submitter.ru - Регистрация в поисковых системах!
Погода
Яндекс.Погода
Статистика






Онлайн всего: 1
Гостей: 1
Пользователей: 0

При использовании материалов сайта, наличие гиперссылки на сайт обязательно
© 2024
Яндекс.Метрика
Результаты антивирусного сканирования