Xorg/Руководство

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Xorg/Guide and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎中文(中国大陆)‎

Xorg — это сервер оконной системы X Window server, который позволяет пользователю организовать для себя графическую рабочую среду. Это руководство объясняет что такое Xorg, как его установить и за что отвечают различные параметры конфигурации.

Что такое сервер оконной системы X Window?

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

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

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

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

Приложением, которое дает возможность пользователям Linux запускать графический интерфейс и использующее стандарт X11, является Xorg-X11, форк проекта XFree86. В XFree86 используется не совместимая с GPL лицензия; следовательно, рекомендуется использовать Xorg. Официальное дерево Portage больше не предоставляет пакет XFree86.

Проект X.org

Проект X.org создан и поддерживается как свободно распространяемая реализация системы X11 с открытым исходным кодом. А также это основанная на X11 инфраструктура рабочего стола.

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

Установка

До того, как вы установите Xorg, вам необходимо подготовить систему к этому. Во-первых, настроим ядро для поддержки устройств ввода и видеокарт. Затем, мы подготовим /etc/portage/make.conf так, чтобы нужные драйверы и Xorg пакеты были собраны и установлены.

Поддержка устройств ввода

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

Ядро Включение поддержки evdev в ядре
Device Drivers --->
  Input device support --->
  <*>  Event interface

make.defaults по умолчанию использует Libinput в качестве драйвера для устройств ввода.

Установка режима в ядре

Современные видео драйверы с открытым исходным кодом полагаются на (kernel mode setting KMS). KMS предоставляет улучшенную графическую загрузку с меньшим мерцанием, более быстрым переключением пользователей, встроенной в кадровый буфер консолью, плавным переключением из консоли в Xorg и другие возможности.

Важно
KMS конфликтует со старыми драйверами кадрового буфера, которые должны оставаться в состоянии disabled в настройке ядра.

Начальная подготовка ядра для KMS. На этом шаге не имеет значения, какой Xorg видео драйвер будет использоваться.

Ядро Отключение поддержки старого кадрового буффера и включение вместо него поддержки основного кадрового буфера для консоли
Device Drivers --->
   Graphics support --->
      Frame Buffer Devices --->
         <*> Support for frame buffer devices --->
         ## (Отключите все драйвера, включая VGA, Intel, nVidia и ATI, оставьте поддержку кадрового буфера EFI, только если вы используете UEFI)
 
    ## (Дальше, включите кадровый буфер для консоли. Его использует KMS.)
    Console display driver support --->
      <*>  Framebuffer Console Support

Далее настройте ядро для использования правильного KMS драйвера для видеокарты. Intel, nVidia и AMD/ATI являются распространенными видеокартами, поэтому смотрите соответствующие настройки ниже для каждой видеокарты.

Для видеокарт Intel смотрите kernel section of the Intel article.

Для видеокарт nVidia:

Ядро Настройки nVidia
Device Drivers --->
   Graphics support --->
      <*>  Nouveau (nVidia) cards

Для новых AMD/ATI карт (RadeonHD 2000 and up), установите пакет x11-drivers/radeon-ucode или sys-kernel/linux-firmware. Когда один из этих пакетов будет установлен, настройте ядро как написано в firmware section из Radeon article:

Ядро Настройка AMD/ATI
## (Установка ядра на использование прошивки radeon-ucode)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # Только для карт ATI, (см. страницу Radeon для детализации включенных в прошивку файлов)
   (radeon/<CARD-MODEL>.bin ...)
  ## # Определение корневой директории
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Включить поддержку Radeon в KMS)
Device Drivers --->
   Graphics support --->
   <*>    ATI Radeon
   [*]      Enable modesetting on radeon by default
   [ ]      Enable userspace modesetting on radeon (DEPRECATED)
Заметка
Старые карты Radeon (серия X1900 и старше) не нуждаются в пакете x11-drivers/radeon-ucode или другой прошивке. Для них достаточно включить DRM и поддержку ATI Radeon modesetting.
Заметка
Ядро Linux >= 3.9 не имеет опции Enable modesetting on radeon by default, поскольку она уже установлена. Не пугайтесь, если не найдете этой опции в новых версиях ядра.

Выйдете из конфигурации ядра, пересоберите ядро и перезагрузитесь.

Сейчас, когда KMS настроен, продолжите подготовку /etc/portage/make.conf в следующем разделе.

make.conf

Когда ядро подготовлено, две важные переменные в файле /etc/portage/make.conf должны быть определены перед установкой Xorg.

Первая переменная VIDEO_CARDS. Она используется для установки видео драйвера, который вы намереваетесь использовать и который обычно совпадает с используемой вами видеокартой. Наиболее используемые значения это nouveau для карт nVidia и radeon для ATI. Оба драйвера являются активно разрабатывающимися, хорошо поддерживаемыми драйверами с открытым исходным кодом.

Заметка
Вы также можете попробовать проприетарные драйверы от nVidia и AMD/ATI, nvidia и fglrx соотвественно. Однако, настройка этих драйверов выходит за рамки этого руководства. Пожалуйста, смотрите руководство Gentoo Linux по nvidia-drivers и Gentoo Linux ATI FAQ. Если вы не знаете, какие драйверы выбрать, обратитесь к этим руководствам за информацией.

intel может быть использован для персональных и планшетных компьютеров с встроенными графическими чипами от Intel.

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

Вторая переменная INPUT_DEVICES используется для определения драйверов, которые будут собраны для устройств ввода. В большинстве случаев, установка значений libinput или evdev должны работать корректно. Если вы используете альтернативные устройства ввода, такие как Synaptics тачпад для ноутбуков, убедитесь, что добавили нужное значение в INPUT_DEVICES.

Решите, какие драйверы будут использоваться и установите необходимые значения в файл /etc/portage/make.conf:

Код Простая настройка make.conf
## (Для мыши, клавиатуры и тачпада)
INPUT_DEVICES="evdev synaptics"
## (Для карт nVidia)
VIDEO_CARDS="nouveau"
## (Для карт AMD/ATI)
VIDEO_CARDS="radeon"

Если предложенные настройки не работают, то установите пакета x11-base/xorg-drivers (смотрите следующий пример). Проверьте все доступные варианты и выберите те, которые применимы к системе. Этот пример для системы с клавиатурой, мышью, Synaptics тачпадом и видеокартой Radeon.

root #emerge --ask --verbose x11-base/xorg-drivers
 
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[ebuild   R   ]  x11-base/xorg-drivers-1.9  INPUT_DEVICES="evdev synaptics
-acecad -aiptek -elographics% -fpit% -joystick -keyboard -mouse -penmount -tslib
-virtualbox -vmmouse -void -wacom"
VIDEO_CARDS="radeon -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx
(-geode) -glint -i128 (-i740) (-impact) -intel -mach64 -mga -neomagic (-newport)
-nouveau -nv -nvidia -r128 -rendition -s3 -s3virge -savage -siliconmotion -sis
-sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx)
-tdfx -tga -trident -tseng -v4l -vesa -via -virtualbox -vmware (-voodoo) (-xgi)"
0 kB

После настройки всех необходимых переменных Xorg может быть установлен:

root #emerge --ask x11-base/xorg-server
Заметка
Мета-пакет x11-base/xorg-x11 может быть установлен вместо более легковесного x11-base/xorg-server. Функционально x11-base/xorg-x11 и x11-base/xorg-server одинаковы, однако x11-base/xorg-x11 содержит больше пакетов, которые, вероятно, не требуются для большинства систем. Дополнительные пакеты включают большой ассортимент шрифтов для многих языков. В них нет необходимости для работы X11.

Когда установка завершена, некоторые переменные окружения необходимо заново инициализировать перед тем, как продолжать. Используйте команду:

root #env-update
root #source /etc/profile

Пользователи NVidia

Для пользователей NVidia имеется возможность запустить nvidia-xconfig с целью генерации файла xorg.conf для выбранной видеокарты. Без этого шага xorg.conf необходимо создать вручную как описано ниже. Отсутствующий xorg.conf иногда будет выводить ошибку "No screens found" при попытке выполнить startx.

Драйвер NVidia будет работать только после перезагрузки, так что сделайте это после выполнения nvidia-xconfig.

root #nvidia-xconfig

Возможно и рекомендуется установить для OpenGL аппаратный рендеринг вместо программного:

root #eselect opengl set nvidia

Конфигурация

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

Попробуйте использовать startx без предварительного редактирования файлов настройки. Если Xorg не запустится, или будут другие проблемы, тогда необходима ручная настройка Xorg. Она приводится в следующем разделе.

Заметка
Если изменения были сделаны в ядре, то не забудьте перезапустить систему до использования startx. Если ядро было обновлено до более новой версии, скорее всего потребуется обновление файлов настройки системного загрузчика.

Каталог xorg.conf.d

Важно
К настройке файлов в xorg.conf.d следует прибегать в последнюю очередь. Если возможно, то желательно запустить Xorg без каких-либо настроек.

Большинство конфигурационных файлов для Xorg находится в /etc/X11/xorg.conf.d/. Каждый файл обладает уникальным именем и оканчивается на .conf. Имена файлов в этой директории читаются в буквенно-цифровом порядке. Например, 10-evdev.conf будет прочтен до b-synaptics.conf, и т.д. Файлы в этой директории не обязательно должны быть пронумерованы, это сделано для сохранения порядка. Порядок будет полезен при отладке неправильных файлов настройки.

Заметка
Xorg содержит примеры конфигураций в /usr/share/doc/xorg-server-${version}/xorg.conf.example.bz2. Они могут быть использованы для создания пользовательский файлов в /etc/X11/xorg.conf.d/. Примеры хорошо комментированы, но если требуется еще документация по синтаксису, man xorg.conf всегда доступен. Другие примеры могут быть найдены в конце раздела Другие ресурсы.

Использование startx

Попробуйте startx для запуска X server. startx - это скрипт (установлен из пакета x11-apps/xinit), выполняющий X session; то есть он запускает X server и некоторые графические приложения вместе с ним. Он решает, какие приложения запустить, основываясь на следующей логике:

  • Если файл .xinitrc существует в домашней директории, он выполняет команды из него.

В противном случае, он считывает значение переменной XSESSION из файла /etc/env.d/90xsession и выполняет соответствующую сессию. Значения для XSESSION доступны в /etc/X11/Sessions/. Для установки на уровне системы сессии по умолчанию выполните:

root #echo XSESSION="Xfce4" > /etc/env.d/90xsession
Это создаст файл 90xsession и установит сессию по умолчанию Xfce. Не забудьте запустить env-update после внесения изменений в 90xsession.
user $startx

Если отсутствует оконный менеджер, появится черный экран. Так как это также может быть признаком того, что что-то пошло не так, пакеты x11-wm/twm и x11-terms/xterm могут быть установлены для проверки X.

Когда программы будут установлены, снова запустите startx. Компактное окно xterm должно появится, упрощая проверку корректной работы X server. Удовлетворившись результатами, удалите x11-wm/twm и x11-terms/xterm. Они больше не понадобятся для установки надлежащего окружения рабочего стола.

Сессия также может быть передана в качестве аргумента для startx:

user $startx /usr/bin/startfluxbox

Вы также можете передать опции сервера X11, прописав перед ними две черты:

user $startx -- vt7

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

Установка разрешения экрана

Если разрешение экрана установлено не правильно, вам нужно проверить две секции в вашей конфигурации xorg.conf.d. Во-первых, у вас есть секция Screen со списком разрешений, с которыми может запуститься X server. Эта секция может не содержать всех разрешений. Если так, то Xorg возьмет разрешение из второй секции, Monitor.

Теперь давайте изменим разрешение. В следующем примере из /etc/X11/xorg.conf.d/40-monitor.conf мы добавим строку PreferredMode, так что наш X server запустится с 1440x900 по умолчанию. Пункт Option в разделе Device должен совпадать с именем вашего монитора (DVI-0), которое может быть получено через xrandr. Установите xrandr (emerge xrandr) просто для того, чтобы получить эту информацию. Аргумент после имени монитора (в Device) должен совпадать с Identifier в разделе Monitor.

root #nano -w /etc/X11/xorg.conf.d/40-monitor.conf
Section "Device"
  Identifier  "RadeonHD 4550"
  Option      "Monitor-DVI-0" "DVI screen"
EndSection
Section "Monitor"
  Identifier  "DVI screen"
  Option      "PreferredMode" "1440x900"
EndSection

Запустите X (startx) для проверки желаемого разрешения.

Поддержка нескольких мониторов

Больше одного монитора можно установить в /etc/X11/xorg.conf.d/. Определите для каждого монитора уникальный идентификатор, ориентируясь по его физическому расположению, например "RightOf" или "Above" относительно другого монитора. Следующий пример демонстрирует, как настроить DVI и VGA мониторы, когда VGA монитор расположен по правую руку пользователя.

root #nano -w /etc/X11/xorg.conf.d/40-monitor.conf
Section "Device"
  Identifier "RadeonHD 4550"
  Option     "Monitor-DVI-0" "DVI screen"
  Option     "Monitor-VGA-0" "VGA screen"
EndSection
Section "Monitor"
  Identifier "DVI screen"
EndSection
Section "Monitor"
  Identifier "VGA screen"
  Option     "RightOf" "DVI screen"
EndSection

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

Для установки многоязычной клавиатуры X создайте подходящий файл в /etc/X11/xorg.conf.d/. Пример для чешской раскладки:

root #nano -w /etc/X11/xorg.conf.d/30-keyboard.conf
Section "InputClass"
        Identifier "keyboard-all"
        Driver "evdev"
        Option "XkbLayout" "us,cz"
        Option "XkbModel" "logitech_g15"
        Option "XkbRules" "xorg"
        Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,grp_led:scroll,compose:rwin,terminate:ctrl_alt_bksp"
        Option "XkbVariant" ",qwerty"
        MatchIsKeyboard "on"
EndSection

См. статью Keyboard layout switching для определения методов переключения раскладки клавиатуры.

Команда "terminate" (terminate:ctrl_alt_bksp) дает возможность пользователю убить сессию X используя комбинацию Ctrl+Alt+Backspace. Однако, так завершать работу X безобразно - пользователи должны избегать этого. Это может быть полезно, когда программы полностью «заморозили» дисплей, или при тонкой настройке окружения Xorg. Будьте осторожны, когда останавливаете рабочий стол этой комбинацией клавиш - некоторым программам не нравится такое завершение. Информация, не записанная на диск, будет потеряна.

Завершение

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

Смотрите также

  • Wayland - Оконная система следующего поколения для Linux.
  • X (Security Handbook) - Статья Security Handbook о безопасности X сервера.

Внешние ресурсы

Создание и редактирование файлов настройки

man xorg.conf и man evdev содержат краткие, еще не завершенные источники о синтаксисе, используемом в их файлах настройки. Удостоверьтесь, что они открыты в терминале, когда редактируете конфигурационные файлы Xorg!

Есть еще множество онлайн ресурсов о редактировании файлов настройки в /etc/X11/. Только немногие приведены здесь; используйте ваш предпочтительный поисковой движок для того, что бы найти больше.

Другие ресурсы

Больше информации об установке и настройке разных окружений рабочего стола и приложений можно найти в разделе нашей документации.

Когда обновляетесь до xorg-server 1.9 или выше, почитайте migration guide.

X.org располагает материалами на своем веб-сайте FAQ, в дополнение к другой своей документации.


This article is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT), Joshua Saddler (nightmorph)
They are listed here as the Wiki history does not allow for any external attribution. If you edit the Wiki article, please do not add yourself here; your contributions are recorded on the history page.