Андрей Смирнов
Время чтения: ~26 мин.
Просмотров: 23

Настройка видеокарты Linux через Xorg

Администраторы, да и некоторые продвинутые пользователи систем 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, можно выполнить следующую команду:

$ Xorg -probeonly

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

$ Xorg -configure

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

Структура и формат файла 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

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

Section “Device”  Identifier “vega64”  Driver “amdgpu”  . . .  EndSection

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

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

Раздел Monitor

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

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

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

Section "Monitor"  Identifier  "SyncMaster"  Option  "DPMS"  HorizSync  30-60  VertRefresh  60-120  EndSection

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

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

Раздел Screen

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

Section "Screen"  Identifier "Screen0"  Device "vega64"  Monitor "SyncMaster"  DefaultDepth 24  Subsection "Display"  Depth 8  Modes "640x400"  EndSubsection  Subsection "Display"  Depth 16  Modes "640x400" "640x480" "800x600" "1024x768"  EndSubsection  Subsection "Display"  Depth 24  Modes "1280x1024" "1024x768" "800x600" "640x400" "640x480"  EndSubsection  EndSection

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

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

Когда необходимо запускать x-приложения, требующие работу в 8-битном режиме глубины цвета (устаревшие приложения), можно запустить отдельный экземпляр X-сервера в виртуальной консоли.

Раздел InputDevice

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

Section "InputDevice"  Identifier "Generic Keyboard"  Driver  "Keyboard"  Option  "AutoRepeat" "500 30"  Option  "XkbModel" "pc104"  Option  "XkbLayout" "us"  EndSection

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

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

Section "InputDevice"  Identifier "Generic Mouse"  Driver "mouse"  Option "CorePointer"  Option "Device" "/dev/input/mice"  Option "Protocol" "IMPS/2"  Option "Emulate3Buttons" "off"  Option "ZAxisMapping" "4 5"  EndSection

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

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

Раздел ServerLayout

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

Section "ServerLayout"  Identifier "Simple Layout"  Screen  "Screen 1" LeftOf "Screen 2"  Screen  "Screen 2" RightOf "Screen 1"  InputDevice "Generic Mouse" "CorePointer"  InputDevice "Generic Keyboard" "CoreKeyboard"  Option  "BlankTime" "10" # Погасить экран через 10 минут  Option  "StandbyTime" "20" # Отключить экран через 20 минут (DPMS)  Option  "SuspendTime" "60" # Полное засыпание через 60 минут (DPMS)  Option  "OffTime" "120"# Отключить DPMS-монитор через 2 часа  EndSection

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

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

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

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

$ xrandr    Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 16384 x 16384  DisplayPort-0 disconnected (normal left inverted right x axis y axis)  DisplayPort-1 disconnected (normal left inverted right x axis y axis)  HDMI-A-0 disconnected (normal left inverted right x axis y axis)  HDMI-A-1 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 459mm x 296mm  1680x1050     59.88*+  1920x1080     60.00    59.94  1280x1024     75.02    60.02  1440x900      74.98    59.90  1280x960      60.00  1280x800      59.91  1152x864      75.00  1280x720      60.00    59.94  1024x768      75.03    70.07    60.00  832x624       74.55  800x600       72.19    75.00    60.32    56.25  720x480       60.00    59.94  640x480       75.00    72.81    66.67    60.00    59.94  720x400       70.08

Как видно из этого вывода, в системе активным является (обозначено символом звёздочки «*») разрешение 1680×1050.

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

$ xrandr --auto --output VGA-0 --mode 800x600 --right-of DVI-0

Здесь опция —auto включит все доступные мониторы. Опции —output и —mode указывают всем мониторам с матрицей VGA задействовать разрешение 800×600 точек. А опция —right-of определяет расположение VGA-монитора справа от монитора, подключенного через DVI-разъём.

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

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

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

За отрисовку всех графических элементов в Linux отвечает графический сервер. Он реализует интерфейс прослойки между драйверами видеокарты и различными программами, которые работают с графикой.

В самых современных дистрибутивах на замену Xorg серверу пришел новый дисплейный сервер Wayland. Но он все еще находится в активной разработке и не совсем готов к постоянному использованию. Поэтому Xorg все еще применяется в большинстве дистрибутивов.

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

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

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

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

Сначала скопируйте файл журнала для новой сессии:

$ cp /var/log/Xorg.0.log /var/log/Xorg.1.log

$ Xorg -configure :1

Программа проанализирует файл лога, и на его основе создаст новый файл /etc/X11/xorg.conf учитывая конфигурацию вашей системы. В вашем домашнем каталоге появиться файл xorg.conf.new, который нужно скопировать в /etc/X11/

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

  • Module — в этом разделе описываются подключение модулей, расширяющих функциональность видео драйвера. Например, GLX модуль добавляет 3D ускорение, а модули Type1 и Freetype используются для рендеринга шрифтов;
  • ServerLayout — в этой секции указаны имена трех самых необходимых устройств для каждой рабочей сессии Xorg — имена мыши, клавиатуры и экрана, которые могут использоваться в других местах файла;
  • InputDevice — в xorg.conf обычно есть две секции InputDevice, первая для мыши и вторая для клавиатуры. Большинство мышей работают отлично по умолчанию, здесь понадобиться что-то менять только если вы захотите добавить дополнительные возможности;
  • Monitor — в этой секции перечислены все настройки вашего экрана, один из наиболее важных параметров, частота горизонтальной развертки HorizSync и вертикального обновления VertRefresh, именно на основе них рассчитывается разрешение экрана. Также можно жестко задать разрешение с помощью строки ModeLine;
  • Device — тут перечислено все ваше графическое оборудование вместе с драйверами, которые используются. Чаще всего, это nv с открытым исходным кодом для NVIDIA, или fglrx для карт от AMD. Имя драйвера Intel будет зависеть от версии вашей карты, например, i810.
  • Screen — здесь расположены все настройки вашего монитора и других графических устройств. Вы можете использовать эту секцию, например, для настройки нескольких экранов.

Большинство параметров вашего экрана система получает с помощью технологии EDID или Extended Display Identification Data. Это информация, переданная дисплеем видеокарте. Здесь обычно содержится модель, производитель, такйминги, разрешение и размер дисплея. Xorg использует эти параметры для выбора оптимального разрешения экрана и глубины цвета.

Но иногда информация из EDID может быть неточной или неверной. Тогда вы можете установить нужные параметры вручную через xorg.conf. Но будьте осторожны, если ваш экран не поддерживает некоторые параметры, вы можете его повредить. Характеристики каждого отдельного устройства можно найти в интернете или же в инструкции от производителя.

Например, вот секция Monitor с настройкой вертикальной и горизонтальной частот, а также разрешения:

Identifier "Monitor0" VendorName "Unknown" ModelName "DFP-0" HorizSync 28.0 - 72.0 VertRefresh 43.0 - 60.0 ModeLine "1440x900_60.00" 106.5 1440 1520 1672 1904 900 901 904 932 -hsync +vsync

Добавив такие опции в секцию Device, вы можете отключить использование EDID:

Option "UseEDIDFreqs" "FALSE" Option "UseEDIDDpi" "FALSE" Option "ModeValidation" "NoEdidModes"

Наиболее важное значение — это две частоты, которые определяют диапазон работы устройства. Строка ModeLIne необязательна, поскольку она вычисляется автоматически, но если X сервер задает значения неверно, вы можете их прописать жестко в этой строке.

У драйверов видеокарт ест множество различных полезных опций, которые вы можете настроить с помощью xorg.conf. Большинство из них специфичны для конкретного производителя видеокарт. Например, есть множество настроек для видеокарт NVIDIA, но с другой стороны карты от ATI не настраиваются через этот файл. Драйвера с открытым исходным кодом от Intel имеют только несколько настроек. Дальше будет рассмотрена настройка видеокарты linux для различных производителей.

У видеокарт NVIDIA есть множество настроек, которые можно указать в xorg.conf. Каждая строка состоит из ключа и значения, ее можно разместить в секции Screen или Device:

  • Option «NoLogo» «true» — во время инициализации драйвера показывается логотип NVIDIA. Это занимает некоторое время, поэтому с помощью такой строки можно отключить логотип;
  • Option «LogoPath» «адрес_файла» — вы можете заменить логотип NVIDIA на свое изображение, для этого просто укажите его адрес в этой строке;
  • Option «CursorShadow» «true» — если вы хотите видеть тень вокруг курсора, включите эту опцию. Тут есть два дополнительных параметра CursorShadowXOffset и CursorShadowYOffset, которые позволяют установить положение тени;
  • Option «Coolbits» «true» — эта опция позволяет включить возможность разгона частоты процессора и скорости памяти вашей видеокарты. Но вам нужно быть аккуратным с этим параметром, поскольку так вы можете повредить сове оборудование. Параметры разгона будут отображаться в утилите nvidia-config;
  • Option «DPI» «75 x 85» — если значение DPI (количество точек на дюйм) установлено неверно, то это может повлиять на правильность отображения шрифтов. Обычно, Xorg вычисляет этот параметр на основе EDID, но вы можете установить его вручную. Например, для монитора с разрешением ,440×900 и физическим размером 16×10 дюймов, значение DPI будет составлять (1,440/16)x(900/10) = 90×90.

Графическими картами от Intel не всегда поддерживается настройка xorg.conf. Поэтому вам нужно проверить каждую из опций чтобы увидеть дает ли она какой-либо результат. Опции нужно добавлять в раздел Device:

  • Option «AccelMethod» «EXA» — эта опция позволяет включить новую архитектуру ускорения EXA. Она поддерживается в большинстве интегрированных карт Intel 943/940 и позволяет улучшить скорость композитинга.
  • Option «MigrationHeuristic» «greedy» — позволяет уменьшить использование видеопамяти на хранение различных текстур, что повышает общую производительность;
  • Option «TripleBuffer» «true» — этот параметр включает использование более совершенного метода двойной буферизации (используется для противостояния мерцанием).

Если у вас не получается правильно настроить xorg.conf, нужно начать с самого меньшего. Используйте драйвер Vesa. Это стандартный видеодрайвер, а значит, его поддерживает любая видеокарта. Просто установите значение опции Driver — Vesa и попробуйте запустить X сервер. Вы должны увидеть свой рабочий стол.

Но драйвер Vesa работает намного медленнее, чем более современные драйвера. Если Vea позволяет запустить графическое окружение, значит проблема в вашем графическом драйвере или в настройке.

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

Если проблемы все еще возникают, посмотрите файл журнала, обычно он расположен в каталоге /var/log/ и имеет в расширении номер сессии, например, /var/log/Xorg.log.1 или /var/log/Xorg.log.0. Здесь будут выведены все сообщения об ошибках. Также вы можете запустить Xorg с опцией -verbose, чтобы сразу увидеть все ошибки. Одна из самых распространенных ошибок — это неверное выставленное разрешение экрана, вы можете попробовать закомментировать все строки ModeLine и перезапустить X сервер.

Теперь вы знаете достаточно и настройка видео Linux с помощью xorg не должна для вас быть очень сложной, даже если вы раньше этим не занимались. Особенно, если вы недовольны текущими настройками. Настройка x сервера поможет вам получить больше от старого оборудования или интегрированных карт. Только не забывайте делать резервные копии перед внесением каких-либо изменений.

Лекция №28 — X-сервер в Linux

<index>

Сегодня мы поговорим о графике в Linux. В отличии от Windows графическая подсистема в Linux не является неотъемлемой частью — она существует отдельно от ядра системы. Именно поэтому есть возможность работать в Linux без графической подсистемы — только в алфавитно-цифровом режиме.

Графическая подсистема в Linux называется X Window System. Разрабатывалась она изначально как модель клиент/сервер, поэтому и состоит из двух частей: сервера и клиента. В роли сервера выступает процесс X-server, а в роли клиентов графические приложения. Клиент и сервер общаются между собой по правилам описанным в X-протоколе. Собственно сам X-сервер и состоит из двух больших частей: это набор драйверов для работы с устройствами ввода-вывода и X-протокол для работы с приложениями.

Сейчас важно понять, что с устройствами ввода (клавиатурой, мышью и другими) и устройствами вывода (видеоадаптеры, мониторы и прочие) взаимодействует именно X-сервер, а не приложения. Мы не будет углубляться в подробности X-протокола и тонкости взаимодействия всех компонентов. Отметим себе, что X-сервер взаимодействует с приложениями при помощи механизма unix-сокетов и internet-сокетов. Возможность взаимодействия через internet-сокеты позволяет X-серверу и клиенту работать в связке находясь на разных компьютерах объединенных в сеть.

Попробуем выполнить несколько практических упражнений, которые помогут разобраться с основами взаимодействия X-сервера и приложений. Как правило на рабочей станции уже запущен один экземпляр X-сервера. Запустим еще один экземпляр командой (команда должна запускаться от имени суперпользователя):

X :1

или командой:

X localhost:1

В результате на одной из виртуальных консолей будет запущен экземпляр X-сервера. На этой консоли вы увидите черный (либо серый) экран с крестиком вместо указателя мыши. Теперь перейдите на свободную консоль и наберите команду:

xclock -display :1&

Перейдите на консоль в которой запущен X-сервер. Вы должны увидеть в левом верхнем углу аналоговые часы. Программа xclock в данном примере является клиентом для X-сервера. С помощью ключа -display мы указали программе с каким X-сервером ей нужно взаимодействовать, то есть какой X-сервер выведет на устройство вывода (монитор) изображение программы xclock.

X-сервер, который запускается по умолчанию при загрузке системы имеет порядковый номер 0. То есть команда xclock -display :0 выведет часы на седьмую виртуальную консоль.

Вернемся к нашим часам на втором экземпляре X-сервера. Вы видите что у программы нет привычной окантовки окна с кнопками свернуть, развернуть, закрыть. Дело в том, что их рисует не X-сервер, а другой процесс, который называется менеджер окон. Менеджер окон также занимается масштабированием и перемещением изображения программ. Такое разделение функций также повышает гибкость всей графической подсистемы X Window. Так как вы можете выбирать какой менеджер окон использовать для прорисовки рамок приложений.

Чтобы на нашем втором экземпляре X-сервера запустить менеджер окон по умолчанию выполните команду x-window-manager –display=0:1 и снова вернитесь на консоль где запущен второй X-сервер. Теперь вы видите вокруг часов привычную рамку и верхнюю полоску окна с тремя привычными кнопками. Окно можно масштабировать и перемещать по экрану, используя “мышь”, а также закрыть его нажав на привычный “крестик”.

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

Файл /etc/X11/xorg.conf разбит на секции при помощи ключевых слов section и end section. Рассмотрим наиболее важные секции.

В секции “ServerFlags” указываются опции с которыми запускается X-сервер:

section «ServerFlags» … end section

В секции “Files” указываются пути к файлам которые могут понадобиться в работе X-сервера. Например, здесь указываются путь к шрифтам X-сервера. Причем путь может указывать на другой компьютер в сети на котором установлен XFS (X Font Server):

section «Files» …         FontPath        «/usr/share/fonts/X11/misc»         FontPath        «tcp/192.168.1.1:7100» … end section

В секции “Modules” указываются модули, которые будут подгружаться во время загрузки X-сервера:

…         Load    «dri»         Load    «glx»

Секция “InputDevice“. Таких секций может быть несколько и отличаются они уникальным идентификатором (Identifier). Одна секция “Input Device” отвечает за одно устройство ввода. То есть в настольных компьютерах есть как минимум две такие секции: одна для описания клавиатуры, и одна для описания манипулятора “мышь”.

Section «InputDevice»         Identifier      «Generic Keyboard»         Driver          «kbd»         Option          «CoreKeyboard»         Option          «XkbRules»      «xorg»         Option          «XkbModel»      «pc104»         Option          «XkbLayout»     «us» EndSection Section «InputDevice»         Identifier      «Configured Mouse»         Driver          «mouse»         Option          «CorePointer»         Option          «Device»                «/dev/input/mice»         Option          «Protocol»              «ImPS/2»         Option          «Emulate3Buttons»       «true» EndSection

Небольшое замечание к секции “InputDevice” для клавиатуры. Именно в этой секции определяются раскладки клавиатуры для графического окружения. Обращаю на это ваше внимание, так как для алфавитно-цифрового режима (виртуальные консоли, например) раскладку поддерживает драйвер терминала встроенный в ядро.

Если у вас есть манипулятор “мышь” с более чем тремя кнопками и дополнительные кнопки не работают, то реакцию на эти дополнительные кнопки можно определить в секции “InputDevice” для этого устройства. Например, параметр Option “ZAxisMapping” “4 5″ отвечает за прокрутку колесика “мышки”. Если числа 4 и 5 поменять местами, то прокрутка будет реализована в обратном направлении.

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

Section «Device»         Identifier      «Intel Corporation 82815 CGC [Chipset Graphics Controller]»         Driver          «i810»         BusID           «PCI:0:2:0» EndSection Section «Monitor»         Identifier      «Универсальный монитор»         Option          «DPMS»         HorizSync       2864         VertRefresh     4360 EndSection Section «Screen»         Identifier      «Default Screen»         Device          «Intel Corporation 82815 CGC [Chipset Graphics Controller]»         Monitor         «Универсальный монитор»         DefaultDepth    24         SubSection «Display»                 Depth           16                 Modes           «1280×1024»«1024×768»«800×600»         EndSubSection         SubSection «Display»                 Depth           24                 Modes           «1280×1024»«1024×768»«800×600»         EndSubSection

Секция “ServerLayout“. Таких секций также может быть несколько. В них содержится информация о вариантах использования X-сервером устройств ввода/вывода. То есть если у вас есть несколько, мониторов или клавиатур, то можно прописать несколько секций “ServerLayout“. В одной будет указана одна клавиатура, в другой — другая.

Section «ServerLayout»         Identifier      «Default Layout»         Screen          «Default Screen»         InputDevice     «Generic Keyboard»         InputDevice     «Configured Mouse» EndSection

Об этих и других параметрах можно подробно прочесть в справке Linuxman Xserver, man xorg.conf, man X и других разделах.

В секции “Monitor” может быть важный параметр — modeline. Рассмотрим его более подробно. Как правило X-сервер правильно определяет технические характеристики монитора, если монитор отдает информацию об этих характеристиках используя DDC-протокол. Не вдаваясь в подробности, достаточно знать, что в VGA-шнуре монитора должны быть два или три дополнительных провода, по которым эта информация попадает в видеоадаптер и далее в X-сервер. Как правило они есть, и X-сервер правильно определяет и настраивает частоты и разрешения монитора. Но бывают ситуации, когда информация DDC не поступает и необходимо самостоятельно прописать технические параметры монитора — частоты вертикальной и горизонтальной развертки, разрешение и другие.

Для этого в секции “Monitor” необходимо прописать один или несколько параметров modeline. Рассмотрим для примера следующую строку:

modeline  “1024×768@6065.01024104811841344768771777806-vsync-hsync

В кавычках указывается название параметра modeline — “1024×768@60″ — оно может быть любым и никак не влияет ни на какие характеристики. Далее идет число указывающее частоту тактового генератора видеоадаптера (dot clock) — 65.0. Четыре следующих числа — 1024 1048 1184 1344 — указывают на разрешение по горизонтали. 1024 — это и есть само разрешение по горизонтали — количество видимых точек в строке. 1048 — это общее количество точек в строке, в том числе и невидимых (черная кромка экрана). 1184 — это число тактов развертки от начала строки до импульса синхронизации, а 1344 — это общее число тактов необходимое на формирование одной строки.

Числа 768 771 777 806 означают ту же информацию только для вертикального разрешения. Если вы не совсем поняли, что значат эти параметры не расстраивайтесь. В любом случае вам не нужно вычислять их вручную, так как они должны быть указаны в документации к вашему монитору. И ваша задача просто найти эти параметры и правильно прописать их в строке modeline.

-vsync, -hsync или могут быть +vsync, +hsync, обозначают тип синхроимпульса. Эти параметры также берутся из документации к монитору.

Строк modeline может быть несколько, а может быть только одна — для нужного вам разрешения.

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

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

Давайте теперь более подробно поговорим о дисплей менеджерах (Display managers) или менеджерах экрана.

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

Термином графическая оболочка очень часто называют как оконные менеджеры (WindowMaker, IceWM, Blackbox, JWM и другие), так и полнофункциональные графические оболочки (GNOME, KDE, XFCE и другие).

Базовым дисплей менеджеромLinux является xdm. Для двух наиболее популярных графических оболочек Gnome и KDE существуют свои дисплей менеджеры — gdm и kdm соответственно. Кроме основной функции, дисплей менеджеры имеют и ряд дополнительных: возможность выбрать язык ввода, предоставить возможность выбора оконного менеджера или графической оболочки, возможность, не заходя в систему, выключить компьютер.

Конфигурационные файлы дисплей менеджера xdm, расположены в каталоге /etc/X11/xdm/. Поле успешной регистрации пользователя в системе с помощью xdm, будет выполнятся скрипт Xsession, расположенный в /etc/X11/xdm/. Из этого скрипта будет выполнен запуск скрипта /etc/X11/Xsession, который продолжит загрузку графической подсистемы.

Конфигурационные файлы для дисплей менеджера gdm расположены в каталоге /etc/gdm/, а для kdm в каталоге /etc/kde4/kdm (для четвертой версии KDE).

Если вы работаете в алфавитно-цифровом режиме, то для перехода в графический режим достаточно выполнить команду startx. В результате будет запущен графическая среда по умолчанию. Дисплей менеджер в процессе выполнения скрипта startx, не запускается, так как пользователь уже аутентифицировался в системе при помощи программы getty

</index>

Статьи и новости схожей тематики:

Используемые источники:

  • https://itproffi.ru/konfigurirovanie-x-servera-v-linux/
  • https://losst.ru/nastrojka-videokarty-linux-cherez-xorg
  • http://igorka.com.ua/2010-02-22/x-server-v-linux/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации