Xorg (Русский)
Ссылки по теме
- Автозапуск
- Экранный менеджер
- Оконный менеджер
- Настройка шрифтов
- Темы курсора
- Среда рабочего стола
- Wayland (Русский)
- xinitrc (Русский)
- xrandr (Русский) C https://www.x.org/wiki/:
- Проект X.Org представляет свободную реализацию оконной системы X с открытым исходным кодом. Разработка осуществляется X.Org Foundation, которая является образовательной некоммерческой организацией, совместно с сообществом freedesktop.org.
- Если он не может найти установленным необходимый драйвер для оборудования (перечислены ниже), тогда он сначала ищет драйвер fbdev (xf86-video-fbdev).
- Если и он не найден, тогда Xorg ищет общий драйвер vesa (), который поддерживает большое количество чипсетов, но не включает 2D или 3D ускорение.
- А если и vesa не найден, тогда X обратится к режиму KMS, который включает ускорение GLAMOR (смотрите ).
- *: Экспериментальный
- Параметр командной строки имеет наивысший приоритет.
- Если он не используется, параметр в файле конфигурации X используется для получения DPI, учитывая разрешение экрана.
- Если параметр не задан, значения размера монитора используются из DDC для получения DPI с учетом разрешения экрана.
- Если DDC не определяет размер, по умолчанию используется 75 DPI.
- Запустить X через xinit; экранный менеджер не поддерживается
- KMS; реализации в проприетарных драйверах монитора не допускает автообнаружение, поэтому необходимо вручную настроить в
/etc/X11/Xwrapper.config
. - При посмотре журнала будьте внимательны к строкам начинающим с , которые обозначают ошибки, и к строкам - , которые предупреждают об возможных других проблемах.
- Если файл пустой в , то его необходимо или удалить, или изменить для правильной загрузки X. Не сделав этого, вы получите пустой экран, а в журнале возможно не будет ошибок. Просто удалив его, у вас будет запускаться стандартное окружение X.
- Если экран становиться черным, вы все еще можете попытаться переключиться на другую виртуальную консоль (например, ), и слепо войти в систему как root. Чтобы сделать это, введите (нажмите
Enter
после ввода), а потом введите пароль суперпользователя (root) (снова нажмитеEnter
после ввода). - Вы можете попытаться завершить X сервер через:
- Если это не сработало, просто перезагрузитесь:
- Если у вас проблемы с устройствами ввода (клавиатурой, мышкой, тачпадом, и т.д.), смотрите страницы в Category:Input devices (Русский).
- Смотрите также решение проблем в статьях ATI (Русский), Intel graphics (Русский) и NVIDIA (Русский).
- Изменить цель по умолчанию на rescue.target. Для получения дополнительной информации смотрите systemd (Русский)#Изменение цели загрузки по умолчанию.
- Если у вас не только не исправная система, которая делает Xorg непригодным для использования, но также задержка меню GRUB установлено в ноль, или не как иначе нельзя использовать GRUB для предотвращения загрузки Xorg, вы можете использовать live CD Arch Linux. Следуйте руководство по установке, где монтируется система и используется chroot в установленный Arch Linux. Кроме того, попытайтесь переключиться на другую tty с помощью сочетания клавиш + функциональная клавиша (обычно от
F1
до в зависимости от того, какая не используется X), войдите как root и следуйте шагам ниже. - Отключите экранный менеджер.
- Отключите автозапуск X при входе в систему.
- Переименуйте файл или закомментируйте линии с в нем.
- Xplain — подробное объяснение оконной системы X
- — справочная страница Xorg
- Gentoo/Xorg#Configuration — статья о конфигурации Xorg на Gentoo Wiki
Xorg (обычно называемый просто X) очень популярен среди пользователей Linux, что привело к тому, что большинство приложений с графическим интерфейсом используют X11, из-за этого Xorg доступен в большинстве дистрибутивов. Для более подробной информации смотрите статью Xorg в Википедии или посетите веб-сайт Xorg.
Установка
Установите пакет .
В дополнение к нему, могут понадобиться пакеты из группы для некоторых способов настроек. О них рассказано в соответствующих разделах.
К тому же имеется группа , которая включает пакеты оконной системы Xorg и пакеты из группы , а также шрифты.
Установка драйвера
Ядро Linux включает в себя видеодрайверы с открытым исходным кодом и поддержку аппаратного ускорения буфера кадров. Однако, для работы OpenGL и двухмерного ускорения в X11 требуется поддержка пользовательского ПО.
Сперва определите вашу видеокарту:
$ lspci | grep -e VGA -e 3DЗатем установите соответствующий драйвер. Вы можете поискать в базе данных пакетов полный список видеодрайверов с открытым исходным кодом:
$ pacman -Ss xf86-videoXorg автоматически ищет установленные драйверы:
Для того, чтобы ускорение видео работало, и часто для того, чтобы разблокировать все режимы, в которых может работать GPU, требуется правильный видеодрайвер:
Бренд | Тип | Драйвер | OpenGL | OpenGL (multilib) | Документация |
---|---|---|---|---|---|
AMD / ATI | Свободный | AMDGPU (Русский) | |||
ATI (Русский) | |||||
Intel | Свободный | Intel graphics (Русский) | |||
NVIDIA | Свободный | xf86-video-nouveau | Nouveau (Русский) | ||
Проприетарный | nvidia-utils | NVIDIA (Русский) | |||
Другие видеодрайверы можно найти в группе .
Во избежание проблем X следует запускать без драйверов с закрытым исходным кодом, которые обычно требуются только для расширенных возможностей, таких, как быстрый 3D рендеринг в играх. Исключением из этого правила являются недавние графические процессоры (особенно видеокарты NVIDIA), которые не поддерживаются драйверами с открытым исходным кодом.
AMD
Архитектура GPU | Карты Radeon | Драйвер с открытым исходным кодом | Проприетарный драйвер |
---|---|---|---|
GCN 4 и новее | варианты | AMDGPU (Русский) | AMDGPU PRO (Русский) |
GCN 3 | AMDGPU (Русский) | Catalyst / AMDGPU PRO (Русский) | |
GCN 2 | AMDGPU (Русский)* / ATI (Русский) | Catalyst | |
GCN 1 | AMDGPU (Русский)* / ATI (Русский) | Catalyst | |
TeraScale 2&3 | HD 5000 - HD 6000 | ATI (Русский) | Catalyst |
TeraScale 1 | HD 2000 - HD 4000 | устаревший Catalyst | |
Старые | X1000 и старше | недоступен |
Запуск
Команду обычно не используют для запуска. Вместо этого оконный сервер X запускают с помощью экранного менеджера или xinit.
Настройка
/usr/share/X11/xorg.conf.d/
. Большинству пользователей никакая дополнительная настройка не нужна.Xorg можно настроить через и через файлы, заканчивающие на : полный список каталог, где можно найти эти файлы есть в вместе с подробным объяснением всех доступных опций.
Через файлы .conf
Каталог хранит конфигурацию, специфичную для хоста (вашего компьютера). Вы можете свободно добавлять конфигурационные файлы сюда, но они обязательно должны оканчиваться на : файлы читаются в кодировке ASCII и по соглашению их имена должны начинаться с XX-
(две цифры и дефис, так, например, файл, начинающийся на 10, читается раньше 20). Эти файлы анализируются x-сервером при запуске и рассматриваются как часть традиционного конфигурационного файла . Обратите внимание, что при конфликтующей настройке последний прочитанный файл будет обработан. Поэтому наиболее общие файлы конфигурации должны быть упорядочены по имени. Конфигурационные записи в обрабатываются в конце.
Смотрите примеры настройки на вики Fedora.
Через файл xorg.conf
Xorg также можно настраивать через или . Чтобы сгенерировать основу файла :
# Xorg :0 -configureЭто создает файл в , который можно скопировать в .
Кроме того, ваш проприетарный видеодрайвер может поставляться с инструментом для автоматической настройки Xorg: смотрите статьи NVIDIA (Русский) или AMDGPU (Русский) для подробностей.
Устройства ввода
Для устройств ввода в X по умолчанию используют драйвер libinput (xf86-input-libinput), но также можно использовать драйвер и другие соответствующие драйверы.
Udev, являющий зависимостью systemd, обнаруживает аппаратное обеспечение, и поэтому оба драйвера будут работать в режиме горячего подключения устройств ввода практически для всех устройств, как определенно в стандарных конфигурационных файлах и в каталоге /usr/share/X11/xorg.conf.d/
.
После запуска оконной системы X, в лог-файле будет записываться информация об используемом драйвере для каждого подключенного устройства (обратите внимание, что имя последнего лог-файла может отличаться):
$ grep -e "Using input driver " Xorg.0.logЕсли оба драйвера не поддерживают конкретное устройство, установите необходимый драйвер из группы . То же самое относится, если вы желаете использовать другой драйвер.
Чтобы изменить поведение горячего подключения (hotplugging), смотрите статью #Настройка.
Для получения конкретных инструкций, смотрите статью libinput, следующие страницы ниже, или записи в википедии Fedora.
Идентификация ввода
Для получения дополнительной информации смотрите Keyboard input#Identifying keycodes in Xorg.
Ускорение мыши
Смотрите Mouse acceleration.
Дополнительные кнопки мыши
Смотрите кнопки мыши.
Тачпад
Смотрите libinput или Touchpad Synaptics (Русский).
Тачскрин
Смотрите Touchscreen.
Настройка клавиатуры
Смотрите конфигурация клавиатуры в Xorg.
Настройка монитора
Ручная настройка
Для системы без монитора необходим драйвер . Установите его и создайте файл конфигурации, например, с таким содержанием:
Несколько мониторов
Смотрите главную статью Multihead для получения общей информации.
Также смотрите специфичные инструкции для GPU:
Более одной видеокарты
Вы должны определить нужный драйвер для использования и ввести ID шины (bus ID) нужной видеокарты.
Чтобы узнать ID шины:
ID шины здесь: 1:0:0.
Размер дисплея/DPI
DPI оконной системы X устанавливается следующими способами:
Чтобы получить правильные точки на дюйм (DPI), разрешение дисплея должно быть распознано или установлено. Наличие правильного DPI особенно необходимо, когда требуются точные детали (например, рендеринг шрифтов). Ранее производители пытались создать стандарт для 96 DPI (монитор с диагональю размером 10,3 дюйма был бы 800x600, 13,2-дюймовый монитор - 1024x768). Сейчас DPI экраном отличаются и могут быть не равными по горизонтали и по вертикали. Например, 19-дюймовый широкоэкранный ЖК-дисплей с разрешением 1440x900 может иметь DPI 89х87. Чтобы установить DPI, сервер Xorg пытается автоматически определить физическое разрешение вашего монитора с помощью видеокарты с DDC. Когда Xorg знает физическое разрешение экрана, он сможет установить правильный DPI в зависимости от размера этого разрешения.
Чтобы убедиться, что разрешение вашего дисплея и DPI обнаружены/правильно рассчитаны:
$ xdpyinfo | grep -B2 resolutionУбедитесь, что выведенное разрешение соответствует настоящему разрешению вашего монитора. Если Xorg не может правильно рассчитать разрешение экрана, он по умолчанию установит значение 75x75 DPI. Поэтому вам придется самому рассчитать его.
Если у вас есть в спецификации физическое разрешение экрана, его можно ввести в конфигурационный файл Xorg так, чтобы был рассчитан правильный DPI (регулируете идентификатор для вашего вывода xrandr):
Если вы только хотите ввести спецификацию вашего монитора без создания полного xorg.conf, тогда создайте новый конфигурационный файл. Например, ():
Если у вас нет в спецификации ширины и высоты монитора (сейчас в большинстве спецификаций указывается только размер диагонали), вы можете использовать родное разрешение монитора (или соотношение сторон) и размер диагонали для вычисления горизонтальных и вертикальных размеров. Используя теорему Пифагора для монитора с диагональю 13,3" и с родным разрешением 1280x800 (или соотношением сторон 16:10):
$ echo 'scale=5;sqrt(1280^2+800^2)' | bc # 1509.43698Вы получите размер диагонали в пикселях. С помощью него можно узнать ширину и высоту монитора в дюймах (а затем перевести их в миллиметры):
$ echo 'scale=5;(13.3/1509)*1280*25.4' | bc # 286.43072 $ echo 'scale=5;(13.3/1509)*800*25.4' | bc # 179.01920Настройка DPI вручную
Для RandR-совместимых драйверов (например, драйвер ATI с открытым исходным кодом) вы можете установить dpi так:
$ xrandr --dpi 144Чтобы сделать его постоянным, посмотрите запуск команд после запуска X.
Проприетарный драйвер NVIDIA
DPI можно установить вручную, если планируется использование только одного разрешения экрана (калькулятор DPI):
Вы можете установить DPI вручную, добавив параметры ниже в /etc/X11/xorg.conf.d/20-nvidia.conf
(внутри раздела Device):
Предостережение о ручной настройке DPI
GTK очень часто переопределяет DPI сервера через опциональный файл Xresource . Чтобы выяснить происходит ли это у вас, введите:
$ xrdb -query | grep dpiНачиная с версии GTK 3.16, если эта переменная явно не задана, GTK задаёт ей значение 96. Чтобы приложения GTK работали с DPI сервера, потребуется явно задать Xft.dpi то же значение, что и у сервера. Также некоторые среды рабочего стола опционально приводят DPI к определенному значению в своих настройках с помощью файла ресурсов Xft.dpi. Среди них KDE (Русский) и TDE.
Управление питанием дисплея
DPMS (Display Power Management Signaling (англ), сигналы управления энергопотреблением дисплеев) — технология, позволяющая настроить энергосбережение монитора, когда компьютер не используется. Она позволит вам автоматически переключить монитор в режим ожидания через определенное время простоя.
Композит
Композитное расширение для X приводит к вынесению всего поддерева иерархии окон в буфер вне экрана. Затем приложения могут загружать содержимое этого буфера и делать все, что им нравится. Закадровый буфер может автоматически объединяться в родительское окно или объединяться внешними программами, называемыми композитными менеджерами. Для получения дополнительной информации смотрите следующую статью: w:ru:Композитный менеджер окон
Некоторые оконные менеджеры (например, Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm) имеют встроенный композит. Для других оконных менеджеров можно использовать отдельные композитные менеджеры.
Список композитных менеджеров
Советы и рекомендации
Автоматизация
В этом разделе перечислены утилиты для автоматизации операций с окнами (например, перемещение, изменение размера или фокусировка), ввода/вывода клавиатуры и мыши.
Утилита | Пакет | Документация | Эмуляция клавиш | Операции с окнами | Примечание |
---|---|---|---|---|---|
xautomation | Да | Также содержит инструменты для очистки экрана. Не может эмулировать F13+. | |||
xdo | Да | Небольшая утилита X для выполнения элементарных действий над окнами. | |||
xdotool | xdotool | Да | Да | Очень забагованный и находится в неактивной разработке, например: имеет сломанный CLI parsing. | |
xvkbd | Да | Виртуальная клавиатура для Xorg, также имеет параметр для отправки символов. |
См. также Clipboard#Tools и обзор средств автоматизации X.
Вложенная X-сессия
Для запуска вложенного сеанса другой среды рабочего стола:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1Это запустит сеанс Window Maker в окне 1024 на 768 в рамках текущей X-сессии.
Для этого необходим установленный пакет .
Запуск программ с GUI удаленно
Смотрите основную статью: Secure Shell (Русский)#Проброс X11.
Отключение и включение при необходимости устройств ввода
С помощью xinput вы можете временно отключить или включить устройства ввода. Это полезно, например, на системах, имеющих несколько мышек, таких как ThinkPads и, если вам хотелось бы использовать только одну, чтобы избежать нежелательные нажатия.
Установите пакет xorg-xinput.
Найдите имя или ID устройства, которое вы хотите отключить:
$ xinputНапример для ноутбука Lenovo ThinkPad T500 вывод выглядит следующим образом:
Отключить устройство можно командой , где устройство это ID устройства или имя устройства, которое вы хотите отключить. В следующем примере мы отключим тачпад Synaptics с ID 10:
$ xinput --disable 10Чтобы снова включить устройство, просто выполните противоположную команду:
$ xinput --enable 10Так выглядит команда для выключения устройства (здесь тачпада) через его имя:
$ xinput --disable "SynPS/2 Synaptics TouchPad"Закрытие приложения с помощью горячей клавиши
Привяжите скрипт к горячей клавише:
#!/bin/sh windowFocus=$(xdotool getwindowfocus); pid=$(xprop -id "$windowFocus" | grep PID); kill -9 "$pid"Зависимости: , xdotool
Блокирование доступа к TTY
Чтобы запретить доступ к tty в X, добавьте следующее в файл xorg.conf:
Запрет пользователю закрывать, перезапускать X
Чтобы запретить пользователю закрывать, перезапускать запущенный Xorg, добавьте следующее в файл xorg.conf:
Section "ServerFlags" Option "DontZap" "True" EndSection
Использование Xorg без прав суперпользователя
Xorg может запускаться со стандартными привилегиями пользователя через , для получения дополнительной информации смотрите и . Для этого необходимо:
Если вам не удовлетворяют эти требования, повторно включите права суперпользователя в /etc/X11/Xwrapper.config
:
Для получения дополнительной информации смотрите и systemd (Русский)/User (Русский)#Xorg как пользовательская служба systemd.
Также GDM запускает Xorg без привилегий суперпользователя по умолчанию, когда используется KMS.
Неработающее перенаправление
Пока журналы пользователя Xorg хранятся в , они не включают вывод X-сессии. Чтобы повторно включить перенаправление, запустите X с флагом :
exec startx -- -keeptty > ~/.xorg.log 2>&1Или скопируйте в и добавьте . Для получения дополнительной информации смотрите .
Решение проблем
Общее
Если произошла какая-то проблема с X, посмотрите лог (журнал), хранящийся в или для пользователей без рут-доступа в ~/.local/share/xorg/
(по умолчанию с версии 1.16). Пользователям GDM следует проверить журнал systemd.
Файлы журналов имеют следующий вид , где n
- номер монитора. Для одного пользовательского компьютера с настройками по умолчанию имя нужного журнала обычно , но для остальных оно может отличаться. Чтобы убедиться, что выбранный вами файл правильный, посмотрите временную отметку запуска сеанса X сервера и из какой консоли он был запущен. Например:
Черный экран, протокол не указан.., Ресурс временно недоступен для всех или некоторых пользователей
X создает конфигурационные и временные файлы в текущем домашнем каталоге пользователя. Убедитесь в наличии свободного места на разделе, в котором находится домашний каталог. К сожаления, X сервер в этом случае не представляет очевидную информацию о недостатке места.
DRI с картами Matrox перестает работать
Если вы используете карту Matrox и DRI перестал работать после обновления Xorg, попробуйте добавить строку:
Option "OldDmaInit" "On"в раздел Device, который ссылается на видео карту в .
Проблемы с режимом Фреймбуфер
Если X не запускается со следующим сообщением в журнале,
(WW) Falling back to old probe method for fbdev (II) Loading sub module "fbdevhw" (II) LoadModule: "fbdevhw" (II) Loading /usr/lib/xorg/modules/linux//libfbdevhw.so (II) Module fbdevhw: vendor="X.Org Foundation" compiled for 1.6.1, module version=0.0.2 ABI class: X.Org Video Driver, version 5.0 (II) FBDEV(1): using default device Fatal server error: Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices
Удалите пакет xf86-video-fbdev.
Программа требует "font '(null)'"
Сообщение об ошибке: .
Некоторые программы работают только с растровыми шрифтами. Имеется два крупных пакета с растровыми шрифтами и . Вам не нужны оба; одного будет достаточно. Чтобы выяснить какой будет лучше в вашем случае, попробуйте утилиту из пакета таким образом:
$ xdpyinfo | grep resolutionи используйте тот шрифт, у которого dpi ближе к показанному значению.
Восстановление: отключение Xorg перед входом в GUI
Если Xorg настроен на автозапуск и по какой-то причине вам нужно предотвратить его запуск до менеджера входа/экранного менеджера (например, если ваша система неправильно настроена и Xorg не распознает ввод с помощью мыши или клавиатуры), вы можете решить эту задачу двумя способами.
В зависимости от настройки, вам необходимо выполнить один или более шагов:
Клиент X запускается с ошибкой "su"
Если вы получаете сообщение "Client is not authorized to connect to server" (Клиент не авторизован для подключения к серверу), попробуйте добавить строку:
session optional pam_xauth.soв и . Затем pam_xauth
правильно установит переменные среды и обработает ключи .
Не удалось запустить X: Ошибка инициализация клавиатуры
Если файловая система (в частности ) заполнена, не запустится. В конце журнала /var/log/Xorg.0.log
будет:
Освободите место на соответствующей файловой системе, и X сервер запустится.
Зеленый экран при попытке просмотра видео
У вас неправильно установлена цветовая глубина. Например, требуется 24 вместо 16.
Ошибка SocketCreateListener
Если X завершаются с сообщением об ошибке "SocketCreateListener() failed", вам необходимо удалить файлы сокета в . Это может происходить после того, как вы ранее запускали Xorg с правами суперпользователя (например, для создания ).
Неверный ключ MIT-MAGIC-COOKIE-1 при попытке запустить программу от суперпользователя
Эта ошибка означает, что только текущий пользователь имеет доступ к X-серверу. Решение состоит в том, чтобы предоставить доступ для суперпользователя:
$ xhost +si:localuser:rootЭта строка также может быть использована для предоставления доступа к X другому пользователю, нежели root.
Фатальная ошибка сервера: (EE) AddScreen/ScreenInit
Если Xorg-server не работает случайным образом и в логе Xorg вы видите:
systemd-logind: failed to take device /dev/dri/card0: Operation not permitted ... AddScreen/ScreenInit failed for driver 0Тогда, эта пробелема может быть вызвано проблемой systemd #134943. настройте Ранний запуск KMS.