Xorg настройка разрешения экрана

Обновлено: 06.07.2024

Поблагодари автора прямо сейчас на странице Спасибо!

Материал из Пингвиньи радостей

Содержание

Статья о пакете Xorg

Метапакет Xorg предоставляет компоненты для рабочей станции под управлением X Window System. Упрощённо: пакет отвечает за вывод информации на экран, приём и обработку управляющей информации от клавиатуры и мыши. Xorg предоставляет X-библиотеки, X-сервер, набор шрифтов, и группу основных X-клиентов и утилит.

Установка

Пакет присутствует в хранилище пакетов debian.
Для установки пакета

После установки пакет готов к использованию.
Файлы конфигурации - например /etc/X11/xorg.conf - расположены в каталоге /etc/X11. Современные системы Linux (например Debian-squeeze) не требуют наличия xorg.conf. В этом случае будет осуществлено тестирование оборудования и установлены все доступные устройства с параметрами по умолчанию.
Некоторые часто используемые команды

Тонкая настройка

Для тонкой настройки X-сервера следует создать (если его нет) и настроить файл конфигурации /etc/X11/xorg.conf. После внесения изменений в файл конфигурации для их применения требуется перезапуск X-сервера.

Часто удобнее использовать вместо одного общего файла конфигурации несколько мелких. X-сервер считывает все файлы конфигурации (с расширением .conf) из каталога /etc/X11/xorg.conf.d.

Установка универсального графического режима

Для запуска видеокарты в режиме vesa

  • устанавливаем драйвер xorg-vesa
  • добавляем в файл конфигурации X-сервера/etc/X11/xorg.conf секцию
  • перезапускаем X-сервер

Изменение клавиши-переключателя клавиатуры

Для изменения (установки) клавиши-переключателя клавиатуры добавляем секцию в файл конфигурации

Изменение частоты экрана

Допустим имеется видекарта Radeon 9600 и монитор SyncMaster 757nf

Для установки частоты экрана

  • устанавливаем частоты синхронизации монитора
  • определяем Modeline для требуемого режима
  • добавляем секцию в файл /etc/X11/xorg.conf
  • добавляем секцию в файл /etc/X11/xorg.conf

Настройка мультимониторной конфигурации

(незавершённый раздел)
Настройка мультимониторной конфигурации позволяет например

  • существенно ускорить работу пользователя. Например разделение рабочего стола на несколько мониторов облегчает переключение между открытыми окнами.
  • использовать один системный блок как сервер рабочих столов, путём подключения нескольких мониторов, клавиатур и мышек
  • осуществлять презентацию через второй "монитор".

Подключение нескольких мониторов можно осуществить несколькими способами

  • путём использования возможности X-сервера (и её драйверов видеокарты) осуществлять вывод изображения через несколько выходов видеокарты - HDMI, DVI, VGA, s-Video
  • путём использования возможности X-сервера (запущенном на отдельном системном блоке или ноутбуке) осуществлять отображение дисплея удалённого рабочего стола
  • путём запуска нескольких X-серверов с выводом изображения (дисплеев) на выходы отдельных установленных видекарт

один X-сервер на одной видеокарте

распределённый X-сервер

В целях настоящей статьи будем называть распределённым X-сервер формирующий изображение на несколько независимых системных блока распределённых по локальной сети. Количество мониторов отображающего части такого распределённого рабочего стола не ограничено (16 ?). Формирование такого рабочего стола можно осуществить через X-прокси сервер Xdmx - смотри Пример создания распределённого рабочего стола.

Доброе время суток. Сегодня в этом небольшом топике речь пойдет о разрешении экрана в операционной системе Linux. Все действия проводились в Linux openSuSE 11.04. На моем компьютере со злосчастными видеокартой ATI Radeon 9600 и монитором Acer AL1916W на абсолютно любом дистрибутиве Linux автоматом не определялись поддерживаемые разрешения, как и собственно монитор с видеоадаптером. Год я провел на разрешении 1024х768@60Hz и сегодня решил, что так дальше продолжаться не может, надо менять разрешение или монитор. Остановился на первом. Перерыв весь интернет и найдя всего два полезных совета я приступил к шаманству над иксами, который я постараюсь в понятном виде изложить ниже.

Итак, приступим! Но для начала учтем, что мой дистрибутив — Linux openSuSE 11.04 и монитор Acer AL1916W.

1. Найдите в инструкции к Вашему монитору максимальное поддерживаемае разрешение и частоту (у моего — 1440x900, частота 75Гц), они понадобятся для генерации Modeline строки.

3. Дальше открываем папку /etc/X11/xorg.conf.d/ и копируем файл 50-monitor.conf в вашу домашнюю папку (например /home/Dimon/).

4. Открываем скопированный (/home/Dimon/)50-monitor.conf в текстовом редакторе (в GNOME по-умолчанию — gedit) и после строки

вставьте тот самый скопированный вами Modeline. У вас должно получиться что-то вроде этого:

Section "Monitor"
Identifier "Default Monitor"

EndSection

Сохраните файл и закройте редактор.

5. Теперь нам необходимо скопировать измененный файл в директорию /etc/X11/xorg.conf.d: откройте «Терминал», введите след. команду (под root'ом):
sudo cp 50-monitor.conf /etc/X11/xorg.conf.d
и нажмите Enter. Если ничего не выдаст, значит файл скопировался, но все же проверьте, если не доверяете своей интуиции.

6. Теперь все готово! Осталось перезагрузить компьютер и изменить разрешение в настройках. Если после перезагрузки запустился X-сервер, значит уже радуйтесь тому, что не сгубили его :).

7.После загрузки щелкните «Система» — «Оборудование» — «Мониторы» и напротив слова «Разрешение» выберите 1440х900 и нажмите «Применить». Если после применения настроек экран черный либо вывел «Частота не поддерживается» или еще что-то в этом роде, не вздумайте жать на все кнопки подряд! Разрешение поменяется само через 15 секунд после смены на предыдущее.

Совместимость данного мануала с другими дистрибутивами и версиями ОС Linux не гарантируется.
А в следующих топиках я расскажу как воспроизводить видео, если оно не воспроизводится и плеер говорит о невозможности воспроизведения на несуществующем мониторе (, т.к. монитор не найден).

Администраторы, да и некоторые продвинутые пользователи систем UNIX и Linux нередко сталкиваются с проблемами, касающимися работы X-сервера или просто Xorg. Это происходит по разным причинам: восстановление сломанной системы, установка нового оборудования, конфигурация, сборка и задействование нового ядра системы и т. д. Для того, чтобы успешно решать подобные проблемы, необходимо понимать как устроена, во-первых система X Window, а во-вторых уверенно ориентироваться в особенностях конфигурации самого сервера Xorg.

Способы конфигурирования Xorg

Когда-то сервер Xorg имел очень скудные возможности по конфигурации. Это связано было с не самой широкой номенклатурой используемого оборудования — его было мало и оно работало одинаково. В последствии ситуация изменилась, что и повлекло за собой необходимость по модернизации Xorg таким образом, чтобы его можно было настроить для работы на любом оборудовании для вывода и обработки графики, а также устройств ввода.

Вообще, сервер Xorg способен работать без использования файлов конфигурации, благодаря специализированным KMS-модулям ядра. Однако это далеко не самый распространённый и гибкий вариант эксплуатации Xorg. Куда лучше использование других вариантов:

  • работа с конфигурационными файлами;
  • использование утилит конфигурации Xorg (таких как xrandr).

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

Конфигурационный файл Xorg и его разделы

По-умолчанию в большинстве систем местом расположения основной конфигурации Xorg является файл xorg.conf по пути /etc/X11/xorg.conf. Файлы конфигурации могут располагаться и в других местах и Xorg их скорее всего найдёт, поскольку просматривает целый набор каталогов для поиска конфигурации. Подробнее об этом можно почитать на страницах интерактивного руководства (man xorg) в разделах CONFIGURATION и FILES.

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

Однако в настоящее время во многих системах опция -probeonly является устаревшей и вместо неё можно использовать -showconfig, но она менее информативна. Следующая команда:

создаст файл конфигурации, основанный на исходных «безопасных» параметрах, которые далее можно (и нужно) приводить к фактическому соответствию для используемого в системе оборудования.

Структура и формат файла xorg.conf основаны на специфических разделах конфигурации, заключаемых между ключевыми словами Section и EndSection. В следующей таблице приведены самые основные разделы конфигурации файла xorg.conf:

Раздел Описание
Device Содержит параметры конфигурации о видеоплате, её драйвере и другом оборудовании
Monitor Определяет параметры для используемого монитора, такие как синхронизация, разрешения дисплеев и т. д.
InputDevice Описывает устройства ввода — клавиатуры и мыши
ServerLayout Задаёт параметры связывания устройства ввода с экранами и определяет позиционирование экранов относительно друг друга
Module Задаёт динамически загружаемые модули для ускоренной графики, визуализаторов шрифтов и т. д.
ServerFlags Хранит главные конфигурационные параметры Х-сервера
Screen Связывает используемый монитор с видеоплатой (Device), а также определяет значения разрешений и глубину цвета, доступные в данной конфигурации

Разделы файла xorg.conf подчинены иерархии по уровню использования в системе. Так например, раздел Device является самым «нижним» уровнем, далее следуют Monitor, затем Screen и на самой вершине — ServerLayout. Этот принцип удобно использовать в задании конфигурации Xorg, поскольку данный подход легко адаптировать для разных систем с разным аппаратным обеспечением. Суть подхода заключается в том, чтобы начинать задание конфигурации с самых «нижних» разделов, постепенно продвигаясь наверх.

На следующем рисунке изображена схема иерархии разделов конфигурации файла xorg.conf, из которой видно как из комбинации физического дисплея Monitor и видеоплаты Device формируются экраны Screen. А совокупность экранов и устройств ввода образуют единую структуру SrverLayout, которых может быть несколько. Однако использоваться для одного экземпляра X-сервера может только одна.

Следует заметить, что некоторые из разделов xorg.conf являются стандартными и даже универсальными для разных систем и оборудования. В свою очередь разделы Device, Monitor, Screen, InputDevice, а также ServerLayout требуют задания эксклюзивной конфигурации.

Раздел Device

В этом разделе указываются видеоустройство (видеокарта), а также соответствующий видеоустройству драйвер. Каждая запись (настроййка) делается отдельной строкой и выглядит примерно так:

Следует обратить внимание на то, что драйвер будет подключен только в том случае, если в соответствующем разделе Screen имеется корректная ссылка на соответствующее видеоустройство.

Не лишним будет ознакомиться с информацией из справочного руководства для драйвера. В данном примере команда man amdgpu выведет основную информацию о поддерживаемых драйвером amdgpu устройствах, а также список и описание опций для настройки и управления режимами работы (отключение/включение аппаратного ускорения, вертикальной синхронизации, режима FreeSync и т. д.) видеокарты AMD Vega 64.

Раздел Monitor

Для того, чтобы X-сервер корректно управлял мониторами, подключенными к системе, ему необходима некоторая информация о них, а именно:

  • идентификатор монитора;
  • опции управления;
  • частоты горизонтальной и вертикальной развертки (для CRT-мониторов).

Хотя последний пункт и необязателен для современных мониторов, однако и для них он может быть полезным. Пример записи из секции Monitor:

Строка Identifier определяет имя, по которому диспетчер дисплеев будет ссылаться на данный монитор. Опция «DPMS» позволяет X-серверу автоматически отключать питание монитора используя для этого сигналы управления питанием для лучшего энергосбережения.

Значения для параметров HorizSync и VertRefresh стоит брать из руководства по эксплуатации монитора. Обычно здесь указываются диапазоны частот.

Раздел Screen

В данном разделе формируются доступные дисплеи из связки видеоустройства и монитора, описанных в предыдущих разделах более «низкого» уровня, согласно вышеупомянутой иерархии разделов файла xorg.conf. Также в этом разделе приводятся несколько записей, каждая из которых связывает в единый дисплей (которым потом и управляет менеджер дисплеев) видеокарту и монитор при определённой глубине цвета. Пример раздела Screen:

Как можно видеть, в данном примере имеются подразделы — для каждой глубины цвета отдельно. А значение по-умолчанию задаётся опцией DefaultDepth.

Для выбора определённых установок (заданных в подразделах) с соответствующими разрешением и глубиной цвета специальные клавиатурные комбинации (подробнее на соответствующих man-страницах) X-сервера. Однако он способен самостоятельно подобрать оптимальный режим.

Раздел InputDevice

В этом разделе описываются устройства ввода, например клавиатура и мышь. Каждое устройство описывается в собственном разделе InputDevice, в котором, как и по аналогии с другими разделами задаётся идентификатор устройства. Пример описания клавиатуры:

Назначение всех опций становится понятным из самого имени опции, в частности опция AutoRepeat задаёт интервал, в течении которого нужно удерживать клавишу, чтобы начался повторный ввод символа, а также с какой скоростью будет производиться повтор ввода.

Типичная запись раздела InputDevice для мыши может выглядеть так:

Файл устройства мыши задаётся опцией Device. Для указания системе, что данная мышь используется как основное указывающее устройство определяется значение CorePointer. Для указания протокола связи с мышью (который зависит от конкретной модели и производителя) существует параметр Protocol – в данном случае IMPS/2. Если после задания конфигурации для мыши с ней возникают проблемы, то необходимо в первую очередь попробовать использовать другие протоколы связи: ExplorerPS/2 (для мышей с 3-мя и более кнопками), а также VUID. Если вместо значения Protocol задать значение auto, то X-серевер самостоятельно попытается определить оптимальный протокол для используемой мыши.

Для эмуляции работы 3-й кнопки мыши (нажатие двух кнопок интерпретируется как нажатие 3-й) существует параметр Emulate3Buttons. Для улучшенной поддержки колёсика, а также для работы джойстиков применяется параметр ZaxisMapping.

Раздел ServerLayout

Как уже ранее отмечалось, раздел ServerLayout объединяет в единую компоновку параметры из других разделов файла xorg.conf. Компоновок ServerLayout может быть определено несколько — для каждой аппаратной платформы своя, которая определяет дисплей (не путать с мониторами) конкретного экземпляра X-серевера. Компоновка идентифицируется опцией Identifier:

Когда к видеокарте подключено несколько мониторов, то они должны связываться с определённым направлением относительно друг друга. Например, как в приведённом примере экран «Screen 1» расположен левее экрана «Screen 2». Опциями InputDevice определяются, как видно, устройства ввода, используемые для данной компоновки.

Ниже следуют строки, задающие настройки для энергосберегающего режима, используемого для конкретной аппаратной платформы, которой соответствует компоновка «Simple Layout». Обычно используемая компоновка определяется в командной строке X-сервера.

Конфигурирование утилитой xrandr

Для сервера Xorg существуют функциональные модули расширений, упрощающие конфигурирование. Одним из таких расширений является утилита xrandr. Она позволяет без ручного копания в файле xorg.conf задать требуемую компоновку X-сервера, выполнив всю рутинную работу. При выполнении без аргументов утилита xrandr выводит информацию о текущей компоновке, включающей в себя данные о подключенных мониторах и доступных им разрешениях и режимах работы:

Для задания произвольной конфигурации можно использовать команду xrandr, например со следующими аргументами:

Утилиту xrandr можно запускать автоматически во время запуска X-сервера. Для этого соответствующую команду нужно поместить в файл

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

По просьбе уважаемого юзера giner выкладываю на обсуждение и дополнение его заметочки по сабжу. Все примеры даны с лёгким уклоном в сторону Убунту и NVidia, так что пользователей других дистрибутивов и ATI-юзеров просьба дополнять информацией по своим дистрибутивам. Но основное содержание едино для всех дистрибутивов Линукса.

Разрешение экрана и частота монитора в Xorg

Q: Почему нужное разрешение экрана может отсутствовать в списке доступных?
A: Потому, что операционная система не знает о том, что монитор поддерживает нужный нам режим.

Q: Откуда система может об этому узнать?
A: Она может узнать об этом из EDID или же мы можем сами ей об этом рассказать

Q: Что такое EDID ?
A: EDID (Extended display identification data - расширенные данные идентификации монитора) - блок информации, получаемый от монитора по каналу DDC (Display_Data_Channel) через видеокарту, позволяющий корректно определить допустимые видеорежимы. В некоторых случаях эта информация считывается драйвером неправильно или не считывается вовсе, в этом случае система будет использовать режимы, которые она считает безопасными для данного монитора.

Q: Как посмотреть информацию EDID получаемую от монитора?
A: Для Ubuntu

* Из пакета read-edid:

Q: И как всё же решить проблему с разрешением и частотой экрана?
A: Для этого нужно рассказать X-Window что умеет ваш монитор на самом деле (какие видеорежимы поддерживает) выполняя следующие настройки в xorg.conf (/etc/X11/xorg.conf). После каждой добавленной строки перезапускайте X-Window (для Ubuntu

) пока не добьётесь нужного результата:

* Для начала проверяем присутствие разрешение в списке Modes, если его там нет - дописываем, перезапускаем X-Window и проверяем, это выглядит примерно так:

* Если результата нет, вписываем в секцию Monitor параметры HorizSync и VertRefresh и перезапускаем X-Window. Эти параметры для вашего монитора можно узнать с помощью вышеописанных утилит или найти в интернет, например:

* Если это не помогло, оставляем эти строки и дописываем новую - Modeline. Получаем строку Modeline воспользовавшись утилитой gtf и паспортными данными монитора. После этого помещаем её в секцию Monitor и ссылку этот новый режим в секцию Screen, например:

* Если вы подключаете монитор по DVI и используете драйвер nvidia, то поиск решения нужно начинать с опции "ModeValidation" "NoMaxPClkCheck" в секции Device (с другими драйверами не проверялось):

PS: В процессе настройки каждый раз смотрите лог X-Window на предмет validated modes. Он подскажет где вы ошибаетесь.


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

Читайте также: