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 была создана и до сих пор поддерживается бесплатно распространяемая open-source реализация системы X11. Это open-source инфраструктура рабочей станции, основанная на X11.
Xorg предоставляет интерфейс между оборудованием вашего компьютера и графическим программным обеспечением. Кроме того, Xorg полностью работает на сетевой основе (network-aware). Это значит, что вы сможете запускать программы на одной системе в то время, как получать картинку на другой.
2. Установка Xorg
Достаточно болтовни, давайте что-ли делом займёмся? Чтобы установить 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 называется 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
Давайте сначала скопируем 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
The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.