HOWTO по настройке X сервера

Sven Vermeulen  Author
Anton Kuzmin  Translator

Updated May 29, 2004

1. Что такое X Window Server?

Графический интерфейс против командной строки

Среднего пользователя могут испугать мысли о необходимости печатать в командной строке. Почему бы ему не воспользоваться свободой предоставленной Gentoo (и линуксом вообще), и пользоваться мышью. Ну, *большая улыбка* конечно, вы можете это сделать. Linux предлагает широкое разнообразие пользовательских интерфейсов и сред, которые вы можете установить в вашу систему.

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

Так как стандарты очень важны, был создан стандарт X Window System (сокращённо X11 или просто X), который отвечает за прорисовку и передвижение окон по экрану, взаимодействие с пользователем через мышь и клавиатуру, и за другие ещё более важные основные аспекты. Он используется в Unix, Linux и других Unix-подобных операционных системах.

Программа, которая обеспечивает пользователей линукса возможностью запускать пользовательские графические интерфейсы и использует стандарт X11, называется Xorg-X11. Это fork проекта XFree86. Проект XFree86 поменял лицензию, которая стала не совместима с лицензией GPL, поэтому рекомендуется использовать Xorg. Хотя заметьте, что отличия между Xorg и XFree86 на данный момент очень незначительные. Предыдущие версии XFree86 (до 4.4) доступны через Portage.

Проект X.org

По проекту X.org была создана и до сих пор поддерживается бесплатно распространяемая open-source реализация системы X11. Это open-source инфраструктура рабочей станции, основанная на X11.

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

2. Установка Xorg

Используем утилиту emerge

Достаточно болтовни, давайте что-ли делом займёмся? Чтобы установить Xorg, вам просто нужно запустить emerge xorg-x11. Установка Xorg займёт достаточно времени, так что вы можете перекусить, пока ждёте.

Code Listing 2.1: Устанавливаем Xorg

# emerge xorg-x11

После завершения установки, вам наверняка придётся обновить некоторые переменные окружения перед тем, как продолжить. Просто запустите env-update и source /etc/profile. Это не навредит вашей системе ни в коем случае.

Code Listing 2.2: Обновляем переменные окружения

# env-update
# source /etc/profile

3. Настройка Xorg

xorg.conf файл

Конфигурационный файл Xorg называется xorg.conf и лежит в папке /etc/X11. Пакет Xorg-X11 предоставляет пример конфига /etc/X11/xorg.conf.example, который вы можете использовать для создания вашего собственного конфигурационного файла. Он очень хорошо прокоментирован, но если вам нужно больше документации по синтаксису, не стесняйтесь читать страницы из справочника (man page):

Code Listing 3.1: xorg.conf man page

# man 5 xorg.conf

Счастливого прочтения тем из вас, кто этого хочет. Мы, конечно же, не хотим, поэтому продолжим узнавать, как можно создать конфиг автоматически.

По умолчанию: Автоматическая генерация xorg.conf файла

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

Code Listing 3.2: Генерируем конфигурационный файл xorg.conf

# Xorg -configure

Обязательно прочтите последние строчки, которые появятся после определения оборудования с помощью вышеназванной команды. Если вы увидите, что где-то Xorg не смог определить всё правильно, то придётся вам ручками писать xorg.conf файл. Если же всё прошло гладко, вы должны увидеть, что конфиг /root/xorg.conf.new был создан для тестирования.

Code Listing 3.3: Тестируем xorg.conf.new

# Xorg -config /root/xorg.conf.new

Если всё пройдёт нормально, то вы увидите уродливый, отвратительный, омерзительный, искажённый оконный менеджер под названием twm, наверное самый маленький из всех существующих оконных менеджеров. Попробуйте поводить мышкой, а также проверить работает ли клавиатура. Далее мы оптимизируем наш xorg.conf для того, чтобы он подходил к нашему оборудованию. Теперь напишите в одном из терминалов exit (или нажмите Ctrl-D) для выхода из Xorg. Если вы не можете управлять мышкой, то нажмите комбинацию клавиш Ctrl-Alt-Backspace, чтобы "убить" (kill) X сервер.

Альтернатива: Полуавтоматическая генерация xorg.conf

Xorg предоставляет утилиту - xorgconfig, которая будет спрашивать у вас различные вопросы, связанные с настройкой вашей системы (графический адаптер, клавиатура, ...) Основываясь на введённой информации она создаст xorg.conf файл.

Code Listing 3.4: Полуавтоматическая генерация xorg.conf

# xorgconfig

4. Настройка xorg.conf

Копируем org.conf

Давайте сначала скопируем xorg.conf.new в /etc/X11/xorg.conf, чтобы больше не приходилось постоянно запускать Xorg -config Использовать команду startx намного легче :)

Code Listing 4.1: Копируем xorg.conf

# cp /root/xorg.conf.new /etc/X11/xorg.conf

Теперь запускайте startx для того, чтобы запустить X сервер. При этом будет использован именно тот конфиг, который вы только что скопировали. Чтобы отключить X сессию, используйте команду exit или Ctrl-D в терминале. Вы также можете "убить" X сессию с помощью комбинации клавиш Ctrl-Alt-Backspace. Последний способ заставит X выйти без всяких разговоров. Хотя иксам больно не будет :)

Code Listing 4.2: Стартуем X

# startx

Устанавливаем разрешение экрана

Если вы чувствуете, что разрешение экрана неправильное, то вам необходимо проверить два раздела в конфигурации. В разделе Screen указаны разные разрешения экрана, с которыми X сервер может запускаться. По умолчанию, в этом разделе вообще может не быть никаких строк о разрешении экрана. В этом случае Xorg возьмёт данные из раздела Monitor.

Xorg проверяет настройки HorizSync и VertRefresh в разделе Monitor для вычисления правильных разрешений. Пока что оставьте настройки как есть. Если же изменения в разделе Screen не сработают, тогда вам придётся заглянуть в технические характеристики вашего монитора и расставить правильные значения. Также можно использовать утилиту sys-apps/ddcxinfo-knoppix, которая сможет определить технические характеристики вашего монитора.

Warning: НЕ меняйте значения этих двух переменных не проконсультировавшись с техническими характеристиками вашего монитора. Неправильные значения могут привести к ошибкам синхронизации или, в худшем случае, к поломке монитора.

Теперь давайте поменяем разрешения. В следующем примере из /etc/X11/xorg.conf мы добавим строчки Modes и DefaultDepth, чтобы X сервер по умолчанию запускался в 24-х битном 1024x768 разрешении экрана. Особо не обращайте внимания на данные строчки - это просто пример и, скорее всего, отличаются от настроек вашей системы.

Code Listing 4.3: Изменяем раздел Screen в /etc/X11/xorg.conf

Section "Screen"
  Identifier  "Default Screen"
  Device    "S3 Inc. ProSavage KN133 [Twister K]"
  Monitor   "Generic Monitor"
  DefaultDepth  24
  # Пропустим несколько строчек, чтобы улучшить читабельность
  SubSection "Display"
    Depth   24
    Modes   "1024x768"
  EndSubSection
EndSection

Запустите X (startx), чтобы узнать, что сервер использует разрешение, которое вам нужно :)

Настройка клавиатуры

Настройка клавиатуры и её раскладки (XkbLayout) находится в разделе InputDevice. В пример мы покажем, как добавить бельгийскую раскладку. Просто замените код страны:

Code Listing 4.4: Changing the keyboard layout

Section "InputDevice"
  Identifier  "Generic Keyboard"
  Driver    "keyboard"
  Option    "CoreKeyboard"
  Option    "XkbRules"  "xorg"
  Option    "XkbModel"  "pc105"
  Option    "XkbLayout" "be"
EndSection

Настройка мыши

Если ваша мышка не работает, то сначала придётся узнать определена ли она ядром. PS/2 мышки видны, как /dev/psaux. Другие (например USB) видны, как /dev/input (или /dev/input/mice). В другом случае можно проверить, представляют ли эти устройства вашу мышь, получив вывод этих файлов при движении мышкой. Чтобы завершить сессию, нажмите Ctrl-C.

Code Listing 4.5: Проверяем файлы устройств

# cat /dev/input
(Не забудьте нажать Ctrl-C для завершения)

Если ваша мышь не определена, убедитесь, что все необходимые модули загружены.

Если же ваша мышь определена, заполните опцию Device в разделе InputDevice. В следующем примере видно, что мы добавили ещё две опции Protocol (который определяет протокол используемый мышью - многие пользователи используют PS/2 или IMPS/2) и ZAxisMapping (который позволяет использование колёсика).

Code Listing 4.6: Меняем настройки мыши в Xorg

Section "InputDevice"
  Identifier  "TouchPad Mouse"
  Driver    "mouse"
  Option    "CorePointer"
  Option    "Device"    "/dev/psaux"
  Option    "Protocol"    "IMPS/2"
  Option    "ZAxisMapping"    "4 5"
EndSection

Запустите startx и радуйтесь результату :) Поздравляем, теперь у вас работает (надеюсь) Xorg. Следующий шаг - это удалить этот уродливый оконный менеджер и использовать высокофункциональный оконный менеджер (или даже desktop environment), как KDE или GNOME, но об этом в другой раз :)

5. Ресурсы

Создаём и настраиваем xorg.conf

Прежде всего, man 5 xorg.conf даёт быстрое и полное руководство по синтаксису конфигурационного файла.

Во-вторых, есть папка /usr/X11R6/lib/X11/doc с различными README файлами для определённых чипсетов видео карт.

Также есть много онлайн ресурсов по настройке Xorg конфига. Мы затронули лишь некоторые из них, обязательно поищите больше информации в поисковике Google :) Так как синтаксис xorg.conf и XF86Config очень схож, ниже даны ссылки по XF86Config