This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

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

From Gentoo Wiki (test)
< Xorg
Jump to:navigation Jump to:search
This page is a translated version of the page Xorg/Guide and the translation is 97% complete.
Outdated translations are marked like this.

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

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

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

An average user may be frightened at the thought of having to type in commands. Why wouldn't they be able to point and click their way through the freedom provided by Gentoo (and Linux in general)? Well, of course you are able to do this! Linux offers a wide variety of flashy user interfaces and environments which you can install on top of your existing installation.

Это один из огромных сюрпризов для новых пользователей: графический интерфейс ничего более, чем приложение, запущенное на их системе. Это не часть ядра 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 пакеты были собраны и установлены.

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

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

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

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

Современные видео драйверы с открытым исходным кодом полагаются на (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 --->
      <M/*>  Nouveau (nVidia) cards

For newer AMD/ATI cards (RadeonHD 2000 and up), emerge sys-kernel/linux-firmware (the package includes radeon and amdgpu; the separate package x11-drivers/radeon-ucode doesn't exist anymore). Once one of these packages has been installed, make the Radeon driver a module in the kernel or, optionally, configure the kernel as detailed in the firmware section of the Radeon article or, for newer AMD graphics cards (GCN1.1+), the firmware section of article AMDGPU:

Ядро Настройка AMD/ATI Radeon
## (Установка ядра на использование прошивки 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 --->
   <M/*>    ATI Radeon
   [*]      Enable modesetting on radeon by default
   [ ]      Enable userspace modesetting on radeon (DEPRECATED)
Ядро Настройки AMDGPU
## (Настройки ядра для использования прошивок amdgpu)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # Для карт AMD, (смотрите страницу AMDGPU для более детальной информации какой файл прошивки (firmware) включить)
   (amdgpu/<CARD-MODEL>.bin ...)
  ## # Определяет корневой каталог прошивок
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Включение поддержки Radeon KMS)
Device Drivers --->
   Graphics support --->
   <M/*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
   <M/*> AMD GPU
         [ /*] Enable amdgpu support for SI parts
         [ /*] Enable amdgpu support for CIK parts 
         [*]   Enable AMD powerplay component  
         ACP (Audio CoProcessor) Configuration  ---> 
             [*] Enable AMD Audio CoProcessor IP support (CONFIG_DRM_AMD_ACP)
         Display Engine Configuration  --->
             [*] AMD DC - Enable new display engine
             [ /*] DC support for Polaris and older ASICs
             [ /*] AMD FBC - Enable Frame Buffer Compression
             [ /*] DCN 1.0 Raven family
   <M/*> HSA kernel driver for AMD GPU devices
Заметка
Старые карты Radeon (серия X1900 и старше) не нуждаются в дополнительных прошивках или какой-либо настройке прошивок. Для них достаточно включить DRM и поддержку ATI Radeon modesetting.
Заметка
Ядро Linux >= 3.9 не имеет опции Enable modesetting on radeon by default, поскольку она уже установлена. Не пугайтесь, если не найдете этой опции в новых версиях ядра.
Заметка
Linux kernel >= 4.15 does include Display Core (DC) which is required for AMDGPU to work. This newer driver was written for GCN5.0 Vega and DCN1.0 Raven Ridge (APU), but also adds additional functionality for older Radeon graphics cards starting with GCN1.1 Southern Islands and newer. It is planned to make this additional support for older Radeon cards the standard, so do not be alarmed if you find this option missing in newer kernels.

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

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

make.conf

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

Первая переменная VIDEO_CARDS. Она используется для установки видео драйвера, который вы намереваетесь использовать и который обычно совпадает с используемой вами видеокартой. Наиболее используемые значения это nouveau для карт nVidia и radeon для ATI. Оба драйвера являются активно разрабатывающимися, хорошо поддерживаемыми драйверами с открытым исходным кодом. Если у вас более новая видеокарта AMD (Southern Islands и новее), вы можете попробовать новый драйвер с открытым исходным кодом amdgpu. Более подробную информацию смотрите в статье AMDGPU.

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

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

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

Вторая переменная INPUT_DEVICES используется для определения драйверов, которые будут собраны для устройств ввода.

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

Чтобы проверить, что на данный момент задействовано, запустите:

user $portageq envvar INPUT_DEVICES

В случае необходимости использования других устройств ввода (например сенсорная панель Synaptics), добавьте их в переменную INPUT_DEVICES в файле /etc/portage/make.conf:

Код Простая настройка make.conf
## (Для мыши, клавиатуры и тачпада)
INPUT_DEVICES="libinput 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.

Файл /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 монитор расположен по правую руку пользователя.

Файл /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/. Пример для чешской раскладки:

Файл /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 page 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 because 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 each article's associated history page.