Xorg (Українська)
- Проект X.Org забезпечує реалізацію з відкритим вихідним кодом X Window System. Робота над проектом ведеться спільно зі спільнотою freedesktop.org. Фундація X.Org є освітньою некомерційною корпорацією, чия Рада служить цим зусиллям, і Члени якої керують цією роботою.
Xorg (зазвичай називають просто X) - найпопулярнішою віконною системою серед користувачів Linux. Її поширеність призвела до того, що вона стала невід'ємним атрибутом програм з графічним інтерфейсом, що призвело до масового впровадження у більшості дистрибутивів. Дивіться статтю Xorg у Вікіпедії або відвідайте веб-сайт Xorg для отримання детальнішої інформації.
Про альтернативу та наслідника див. Wayland.
Встановлення
Xorg можна встановити за допомогою пакета xorg-server.
Крім того, деякі пакети з групи xorg-apps необхідні для певних завдань конфігурації. Про них зазначено у відповідних розділах.
Нарешті, також доступна група xorg, до якої входять пакети сервера Xorg, пакети з групи xorg-apps та шрифти.
Встановлення драйверів
Ядро Linux містить відеодрайвери з відкритим вихідним кодом та підтримку апаратного прискорення фрейм-буферів. Втім, для OpenGL і 2D-прискорення у X11 потрібна підтримка користувацького середовища.
Спочатку визначте відеокарту (у виводі Subsystem буде показано конкретну модель):
$ lspci -v | grep -A1 -e VGA -e 3D
Потім встановіть відповідний драйвер. Повний список відеодрайверів з відкритим кодом можна знайти у базі даних пакетів:
$ pacman -Ss xf86-video
Xorg шукає встановлені драйвери автоматично:
- Якщо не вдається знайти певний драйвер, встановлений для апаратних засобів (перелічено нижче), спочатку шукається fbdev (xf86-video-fbdev), який не включає жодного 2D або 3D прискорення.
- Якщо його не знайдено, шукає vesa (xf86-video-vesa), типовий драйвер, який працює з великою кількістю чипсетів, але не містить жодного 2D або 3D прискорення.
- Якщо vesa не знайдено, Xorg повернеться до налаштування режиму ядра, яке включає прискорення GLAMOR (див. modesetting(4)).
Для того, щоб відеоприскорення працювало, і часто для того, щоб показати усі режими, які може встановити графічний процесор, потрібен належний відеодрайвер:
Виробник | Тип | Документація | Драйвер | OpenGL | OpenGL (multilib) | Vulkan | Vulkan (multilib) |
---|---|---|---|---|---|---|---|
AMD (ex-ATI) | Відкритий код | AMDGPU | xf86-video-amdgpu | mesa | lib32-mesa | vulkan-radeon / amdvlk4 | lib32-vulkan-radeon / lib32-amdvlk4 |
ATI | xf86-video-ati | Немає | |||||
Proprietary | AMDGPU PRO | xf86-video-amdgpu | amdgpu-pro-oglpAUR | lib32-amdgpu-pro-oglpAUR | vulkan-amdgpu-proAUR | lib32-vulkan-amdgpu-proAUR | |
Intel | Відкритий код | Intel graphics | xf86-video-intel2 | mesa або mesa-amber3 | lib32-mesa | vulkan-intel | lib32-vulkan-intel |
NVIDIA | Відкритий код | Nouveau1 | xf86-video-nouveau | mesa | lib32-mesa | vulkan-nouveau | lib32-vulkan-nouveau |
Власність виробника | NVIDIA1 | nvidia | nvidia-utils | lib32-nvidia-utils | nvidia-utils | lib32-nvidia-utils | |
nvidia-470xx-dkmsAUR | nvidia-470xx-utilsAUR | lib32-nvidia-470xx-utilsAUR | nvidia-470xx-utilsAUR | lib32-nvidia-470xx-utilsAUR | |||
nvidia-390xx-dkmsAUR | nvidia-390xx-utilsAUR | lib32-nvidia-390xx-utilsAUR | nvidia-390xx-utilsAUR | lib32-nvidia-390xx-utilsAUR |
- Для ноутбуків з підтримкою NVIDIA Optimus, які використовують інтегровану відеокарту у поєднанні з виділеним графічним процесором, див. NVIDIA Optimus.
- Для графічних процесорів Intel 4-го покоління і вище див. Intel graphics#Installation щодо доступних драйверів.
- Класичні драйвери OpenGL (не Gallium3D) для старішого обладнання (Mesa 22.0 і вище не підтримує класичний драйвер i915)
- vulkan-radeon / lib32-vulkan-radeon рекомендовано замість amdvlk / lib32-amdvlk (див. AMDGPU#Installation).
Інші відеодрайвери можна знайти у групі xorg-drivers.
Xorg має безперебійно працювати без драйверів із закритим кодом, які зазвичай потрібні лише для розширених можливостей, таких як швидкий 3D-рендеринг для ігор. Винятком з цього правила є новітні графічні процесори (особливо NVIDIA GPU), які не підтримуються драйверами з відкритим кодом.
AMD
Переклад назв моделей (наприклад, Radeon RX 6800) на архітектури графічних процесорів (наприклад, RDNA 2) див. у Wikipedia:List of AMD graphics processing units#Features overview.
Архітектура GPU | Драйвер з відкритим кодом | Власний драйвер |
---|---|---|
RDNA і пізніше | AMDGPU | AMDGPU PRO |
GCN 3 і пізніше | ||
GCN 1&2 | AMDGPU1 / ATI | не доступно |
TeraScale та старіші |
ATI | не доступно |
- Експериментальний.
Запуск
Команду Xorg(1) зазвичай не виконують безпосередньо. Замість цього X-сервер запускається за допомогою віконного менеджера або xinit.
Конфігурація
/usr/share/X11/xorg.conf.d/
, і в більшості випадків не потрібно додаткового налаштування.Xorg використовує файл налаштуваньxorg.conf
і файли що закінчуються на .conf
для початкового налаштування: повний список тек, в яких знаходяться ці файли, можна знайти у xorg.conf(5), разом з детальним поясненням усіх доступних варіантів.
Використання .conf файлів
Каталог /etc/X11/xorg.conf.d/
зберігає конфігурацію, специфічну для хоста. Ви можете додавати там конфігураційні файли, але вони повинні мати суфікс .conf
: файли зчитуються в порядку ASCII, тому, відповідно, їхні імена починаються з XX-
(дві цифри і дефіс, для прикладу: 10 читається перед 20). Ці файли аналізуються сервером X під час запуску і обробляються як частина традиційного конфігураційного файлу xorg.conf
. Зверніть увагу, що при конфліктній конфігурації цей файл буде оброблено останнім. З цієї причини найбільш загальні конфігураційні файли слід упорядковувати першими за назвою. Записи конфігурації у файлі xorg.conf
обробляються наприкінці.
Приклади налаштування дивіться на fedora wiki.
Використання xorg.conf
Xorg також можна налаштувати за допомогою /etc/X11/xorg.conf
або /etc/xorg.conf
. Ви також можете створити основу для xorg.conf
з:
# Xorg :0 -configure
Це має створити файл xorg.conf.new
в /root/
, в який можна скопіювати /etc/X11/xorg.conf
.
Xorg :2 -configure
.Крім того, драйвери пропрієтарних відеокарт можуть постачатися з інструментом для автоматичної настройки Xorg: див. Статтю вашого відео-драйвера, NVIDIA або AMDGPU PRO.
Пристрої введення
Для пристроїв введення даних X-сервер типово використовує драйвер libinput (xf86-input-libinput), але xf86-input-evdev та відповідні драйвери доступні як альтернатива.[1]
Udev, яка забезпечується як залежність від systemd, буде виявляти апаратні засоби, і обидва драйвера виступатимуть як драйвер введення для гарячого підключення майже для всіх пристроїв, як це типово визначено у файлах конфігурації 10-quirks.conf
та 40-libinput.conf
за шляхом /usr/share/X11/xorg.conf.d/
.
Після запуску X-серверу, у файлі журналу відображатиметься, який драйвер буде задіяний для окремих пристроїв (зауважте, що найновіше ім'я файлу журналу може змінюватися):
$ grep -e "Using input driver " Xorg.0.log
Якщо обидва драйвери не підтримують певний пристрій, встановіть потрібний драйвер з групи xorg-drivers. Те ж саме зробіть, якщо ви хочете використовувати інший драйвер.
Щоб вплинути на гаряче підключення, див #Конфігурація.
Для більш конкретних інструкцій див. статтю libinput, читайте нижче, або Fedora wiki.
Ідентифікація введення
Дивіться Keyboard input#Identifying keycodes in Xorg.
Прискорення миші
Дивіться Mouse acceleration.
Додаткові кнопки миші
Дивіться Mouse buttons.
Тачпад
Дивіться libinput або Synaptics.
Тачскрін
Дивіться Touchscreen.
Налаштування клавіатури
Дивіться Keyboard configuration in Xorg.
Налаштування монітору
Ручне налаштування
- Новіші версії Xorg йдуть з автоконфігуруванням, тому ручна конфігурація не потрібна.
- Якщо Xorg не може виявити якийсь монітор або знайти автоматичного налаштування, можна використовувати файл конфігурації. Загальний випадок, коли це необхідно, це система, яка завантажується без монітора і автоматично запускає Xorg, або з віртуальної консолі при вході, або з менеджеру вікон.
Для конфігурації без-моніторних систем потрібен драйвер xf86-video-dummy; встановіть його та створіть файл конфігурації, подібний до цього:
/etc/X11/xorg.conf.d/10-headless.conf
Section "Monitor" Identifier "dummy_monitor" HorizSync 28.0-80.0 VertRefresh 48.0-75.0 Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 EndSection Section "Device" Identifier "dummy_card" VideoRam 256000 Driver "dummy" EndSection Section "Screen" Identifier "dummy_screen" Device "dummy_card" Monitor "dummy_monitor" SubSection "Display" EndSubSection EndSection
Декілька моніторів
Дивіться головну статтю Multihead для отримання більшої інформації.
Дивіться також інструкції відповідно до вашого GPU:
Більш ніж одна графічна карта
Ви повинні визначити правильний драйвер для використання і ввести BusID ваших графічних карт.
Section "Device" Identifier "Screen0" Driver "intel" BusID "PCI:0:2:0" EndSection Section "Device" Identifier "Screen1" Driver "nouveau" BusID "PCI:1:0:0" EndSection
Отримати BusID (у шістнадцятковому форматі):
$ lspci | grep -e VGA -e 3D
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04) 01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
BusID тут 0:2:0
та 1:0:0
.
Розмір екрану та DPI
За замовчуванням, починаючи з 2009-01-30 року, Xorg завжди встановлює DPI на 96. У версії 21.1 було зроблено зміну для забезпечення належного автоматичного визначення DPI, але її було скасовано.
DPI сервера X можна встановити за допомогою параметра командного рядка -dpi
.
Правильне значення DPI є корисним там, де потрібні дрібні деталі (наприклад, при відтворенні шрифтів). Раніше виробники намагалися створити стандарт для 96 DPI (монітор з діагоналлю 10.3" матиме роздільну здатність 800x600, монітор з діагоналлю 13.2" - 1024x768). Сьогодні кількість точок на дюйм на екрані варіюється і може бути неоднаковою по горизонталі та вертикалі. Наприклад, 19-дюймовий широкоформатний LCD-дисплей з роздільною здатністю 1440x900 може мати DPI 89x87.
Щоб перевірити, чи правильні розмір вашого дисплея та DPI:
$ xdpyinfo | grep -B2 resolution
Переконайтеся, що розміри відповідають розміру дисплея. Якщо сервер Xorg не може правильно розрахувати розмір екрану, він типово буде дорівнює 75x75 DPI, і вам доведеться розрахувати його самостійно.
Якщо у вас в документації є інформація про фізичний розмір екрана, вона може бути введена в файл конфігурації Xorg, щоб обчислити відповідний DPI (налаштувати ідентифікатор вашого виводу xrandr) :
Section "Monitor" Identifier "DVI-D-0" DisplaySize 286 179 # В міліметрах EndSection
Якщо ви бажаєте лише ввести специфікацію вашого монітора, без створення повного xorg.conf, створіть новий конфігураційний файл. Наприклад (/etc/X11/xorg.conf.d/90-monitor.conf
):
Section "Monitor" Identifier "<default monitor>" DisplaySize 286 179 # В міліметрах EndSection
Option "UseEdidDpi" "FALSE"
у розділі Device
або Screen
, щоб він набув чинності.Якщо у вас немає в документації інформації про ширину та висоту екрана (більшість специфікацій наведено лише за діагональним розміром), можна використовувати власне дозвіл монітора (або співвідношення сторін) і діагональний розмір для обчислення горизонтальних і вертикальних фізичних розмірів. Використання теореми Піфагора на екрані діагоналі 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 драйвер), ви можете встановити його:
$ xrandr --dpi 144
Виконайте команди після старту X щоб зробити зміни постійними.
Пропрієтарний драйвер NVIDIA
Ви можете встановити DPI вручну, додавши параметр у розділі Device
або Screen
:
Option "DPI" "96 x 96"
Застереження, щодо ручного налаштування DPI
GTK дуже часто перевизначає DPI сервера за допомогою додаткового файлу Xresource Xft.dpi
. Щоб дізнатися, чи відбувається це з вами, перевірте з:
$ xrdb -query | grep dpi
З версіями бібліотеки GTK після 3.16, коли ця змінна явно не встановлена, GTK встановлює його 96. Щоб програми GTK підкорялися серверу DPI, вам може знадобитися точно встановити Xft.dpi на те ж значення, що і сервер. Ресурс Xft.dpi - це метод, за допомогою якого деякі настільні середовища примушують DPI до певного значення в особистих налаштуваннях. Серед них KDE та TDE.
Управління енергозбереженням монітора
DPMS (Display Power Management Signaling) це технологія, що визначає функції управління енергозбереженням моніторів за допомогою відеокарти, коли комп'ютер не використовується. Це дозволить монітору автоматично переходити в режим очікування після попередньо визначеного періоду часу.
Композит
Композитне розширення для X призводить до того, що усе піддерево ієрархії вікна буде відтворено у буфері поза екраном. Програми можуть приймати вміст цього буфера і робити все, що їм подобається. Екранний буфер може бути автоматично об'єднаний у батьківське вікно або об'єднаний зовнішніми програмами, які називаються композитними менеджерами. Докладнішу інформацію див. у наступній статті: Композитний менеджер вікон
Багато віконних менеджерів (наприклад: Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm) роблять композицію самостійно. Для інших менеджерів вікон можна використовувати автономний композитний менеджер.
Список композитних менеджерів
- Picom — Легкий композитор із затіненням, розширеним розмиванням та вицвітанням. Запозичено з Compton.
- Xcompmgr — Композитний менеджер віконних ефектів.
- Gamescope — Мікро-компілятор від Valve, з ігровими можливостями, такими як масштабування FSR. Отримано з steamos-compositor.
- steamos-compositor-plus — Композитор від Valve, з деякими додатковими твіками та виправленнями.
Поради та підказки
Автоматизація
У цьому розділі перелічено утиліти для автоматизації введення та виведення клавіатури / миші, операцій з вікнами (наприклад переміщення, зміна розміру або фокусування).
Інструмент | Пакет | Документація | Емуляція введення |
Операції з вікнами |
Примітка |
---|---|---|---|---|---|
xautomation | xautomation | xte(1) | Так | Ні | Також містить інструменти для очищення екрана. Не може емулювати F13 +.
|
xdo | xdo | xdo(1) | Ні | Так | Невелика утиліта X для виконання елементарних дій над вікнами. |
xdotool | xdotool | xdotool(1) | Так | Так | Багато помилок і не перебуває в активній розробці, наприклад: зламався парсинг CLI.[2][3] |
xvkbd | xvkbdAUR | xvkbd(1) | Так | Ні | Віртуальна клавіатура для Xorg, також має параметр -text для надсилання символів.
|
AutoKey | autokey-qtAUR autokey-gtkAUR | документація | Так | Так | Високорівнева, потужна утиліта для написання макросів і сценаріїв, з інтерфейсами Qt і Gtk. |
Дивіться також Clipboard#Tools та огляд інструментів автоматизації X.
Вкладені X сесії
Для запуску вкладеного сеансу іншого середовища робочого столу:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
Це запустить сеанс Window Maker у вікні 1024 на 768 у вашому поточному X сеансі.
Для цього потрібно встановити пакунок xorg-server-xnest.
Більш сучасним способом створення вкладеного сеансу X є використання Xephyr.
Запуск програми без віконного менеджера
Дивіться xinit#Starting applications without a window manager.
Віддалений запуск програм з GUI
Див. статтю: OpenSSH#X11 forwarding.
Вимикання та увімкнення пристроїв введення на вимогу
За допомогою xinput ви можете тимчасово вимкнути або ввімкнути пристрої введення. Це може бути корисним, наприклад, у системах, які мають більше однієї миші, наприклад ThinkPad, і ви бажаєте використовувати лише одну, щоб уникнути небажаних кліків мишею.
Встановіть пакунок xorg-xinput.
Знайдіть ім'я або ID пристрою що ви хочете відключити:
$ xinput
Наприклад для Lenovo ThinkPad T500, вивід інформації такий:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]
Відключити цей пристрій можна командою xinput --disable пристрій
, де пристрій це ID пристрою або ім'я пристрою, який ви хочете відключити. У цьому прикладі ми відключимо Synaptics Touchpad з ID 10:
$ xinput --disable 10
Щоби включити знов цей пристрій, просто виконайте команду:
$ xinput --enable 10
Альтернатива - використовуємо ім'я пристрою, ця команда його відключить:
$ xinput --disable "SynPS/2 Synaptics TouchPad"
Постійне вимкнення джерела вхідного сигналу
Ви можете вимкнути певне джерело вхідного сигналу за допомогою фрагмента конфігурації:
/etc/X11/xorg.conf.d/30-disable-device.conf
Section "InputClass" Identifier "disable-device" Driver "назва_драйверу" MatchProduct "назва_пристрою" Option "Ignore" "True" EndSection
device
- довільна назва, а назва_драйверу
- назва драйвера вводу, наприклад libinput
. назва_пристрою
- це те, що фактично використовується для зіставлення з відповідним пристроєм. Щодо альтернативних методів визначення правильного пристрою, таких як MatchIsTouchscreen
у libinput, зверніться до документації до вашого драйвера вводу. Хоча у цьому прикладі використано libinput, це метод діагностики драйвера, який просто запобігає передачі пристрою до драйвера.
Закриття додатку гарячою клавішею
Запустіть скрипт для гарячої клавіші:
#!/bin/sh windowFocus=$(xdotool getwindowfocus); pid=$(xprop -id "$windowFocus" | grep PID); kill -9 "$pid"
Потрібні пакунки: xorg-xprop, xdotool
Дивіться також #Killing an application visually[broken link: invalid section].
Блокування доступу до TTY
Щоб заблокувати доступ до tty в X, до xorg.conf додати наступне:
Section "ServerFlags" Option "DontVTSwitch" "True" EndSection
Це може бути використано для обмеження доступу до командного рядка в системі, доступної недовіреним користувачам.
Запобігання закриттю X-сервера користувачем
Щоб запобігти втручанню користувача в роботу X-сервера, додайте наступне до xorg.conf:
Section "ServerFlags" Option "DontZap" "True" EndSection
Ctrl+Alt+Backspace
викликає завершення роботи X-сервера не безпосередньо, а дію Terminate_Server
зі схеми клавіатури. Зазвичай її не встановлено за замовчуванням, див. Xorg/Keyboard configuration#Terminating Xorg with Ctrl+Alt+Backspace.Візуальне закриття програми
Якщо програма поводиться неправильно або застрягла, замість використання kill
або killall
з термінала і пошуку ідентифікатора або назви процесу, xorg-xkill дозволяє клацнути на цій програмі, щоб закрити її з'єднання з X-сервером. Багато наявних програм справді завершують роботу після закриття з'єднання з X-сервером, але деякі з них можуть продовжити роботу.
Xorg без прав користувача
Xorg може запускатися зі стандартними правами користувача замість root (так званий "без прав користувача" Xorg). Це є значним покращенням безпеки у порівнянні із запуском від імені користувача root. Зауважте, що деякі популярні менеджери дисплеїв не підтримують Xorg без прав користувача (наприклад, LightDM або XDM).
Ви можете перевірити, від імені якого користувача запущено Xorg за допомогою ps -o user= -C Xorg.
Дивіться також Xorg.wrap(1), systemd-logind(8), Systemd/User#Xorg as a systemd user service, Fedora:Changes/XorgWithoutRootRights та FS#41257.
Використання xinitrc
Налаштування безправного Xorg за допомогою xinitrc:
- Запустіть startx як підпроцес оболонки входу до системи; запускайте
startx
безпосередньо і не використовуйтеexec startx
. - Переконайтеся, що Xorg використовує віртуальний термінал, для якого було надано дозволи, тобто передано логіном у
$XDG_VTNR
через .xserverrc. - У разі використання певних пропрієтарних драйверів дисплея, налаштування режиму ядра auto-detection не спрацює. У таких випадках вам слід встановити
needs_root_rights = no
у/etc/X11/Xwrapper.config
.
Використання GDM
За замовчуванням GDM запускатиме Xorg без привілеїв користувача root, якщо використано налаштування режиму ядра.
Перенаправлення журналу сеансу
Коли Xorg запущено у режимі без прав користувача, журнали Xorg зберігаються у ~/.local/share/xorg/Xorg.log
. Втім, виведення stdout і stderr з сеансу Xorg не перенаправляється до цього журналу. Щоб увімкнути перенаправлення, запустіть Xorg з прапором -keeptty
і перенаправте виведення stdout і stderr до файла:
startx -- -keeptty >~/.xorg.log 2>&1
Крім того, скопіюйте /etc/X11/xinit/xserverrc
до ~/.xserverrc
і додайте -keeptty
. Зверніться до [4].
Xorg як Root
Як пояснювалося вище, існують обставини, за яких за замовчуванням використовується Xorg без прав користувача. Якщо у вашій конфігурації це так, і вам потрібно запустити Xorg від імені користувача root, ви можете налаштувати Xorg.wrap(1) так, щоб він вимагав права користувача root:
/etc/X11/Xwrapper.config
needs_root_rights = yes
Вирішення проблем
Загальне
Якщо виникла проблема, перегляньте журнал, який зберігається у /var/log/
або, за замовчуванням, у ~/.local/share/xorg/
для безкореневого X починаючи з версії 1.16. Користувачам GDM слід перевірити systemd journal. [5]
Файли журналів мають вигляд Xorg.n.log
де n
номер дисплею. Для однокористувацького комп'ютера зі стандартною конфігурацією типовим журналом часто є Xorg.0.log
, але в інших випадках він може відрізнятися. Щоб переконатися, що вибрано правильний файл, можна подивитися на мітку часу початку сеансу X-сервера і на те, з якої консолі його було запущено. Наприклад:
$ grep -e Log -e tty Xorg.0.log
[ 40.623] (==) Log file: "/home/archuser/.local/share/xorg/Xorg.0.log", Time: Thu Aug 28 12:36:44 2014 [ 40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty
$ tail -f ~/.local/share/xorg/Xorg.0.log | ts
- У файлі журналу слідкуйте за рядками, що починаються з
(EE)
, які позначають помилки, а також(WW)
, які є попередженнями, що можуть вказувати на інші проблеми. - Якщо у вашому каталозі
$HOME
є "порожній" файл.xinitrc
, видаліть або відредагуйте його, щоб X міг запуститися належним чином. Якщо ви цього не зробите, X покаже порожній екран, а у вашомуXorg.0.log
не буде жодних помилок. Просто видаливши його, X буде запущено у типовому середовищі X. - Якщо екран стає чорним, ви можете спробувати переключитися на іншу віртуальну консоль (наприклад,
Ctrl+Alt+F6
) та увійти до системи від імені користувача root. Це можна зробити, ввівшиroot
(після введення натиснітьEnter
) і введіть пароль користувача root (знову ж таки, натиснітьEnter
після введення).
- Ви також можете спробувати вбити X-сервер за допомогою:
# pkill -x X
- Якщо це не працює, перезапустіть використовуючи:
# reboot
- Перевірте окремі сторінки у Category:Input devices, якщо у вас виникли проблеми з клавіатурою, мишею, тачпадом тощо.
- Шукайте типові проблеми у статтях про AMDGPU, Intel та NVIDIA.
Чорний екран, Не вказано протокол, Ресурс тимчасово недоступний для всіх або деяких користувачів
X створює конфігураційні та тимчасові файли у домашньому каталозі поточного користувача. Переконайтеся, що на розділі, у якому знаходиться ваш домашній каталог, є вільне місце на диску. На жаль, сервер X не надає більш очевидної інформації про нестачу місця на диску у цьому випадку.
DRI з картами Matrox перестала працювати
Якщо ви використовуєте карту Matrox і DRI перестав працювати після оновлення до Xorg, спробуйте додати цей рядок:
Option "OldDmaInit" "On"
до секції Device
, яка посилається на відеокарту у xorg.conf
.
Проблеми з кадрово-буферним режимом
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)'"
Повідомлення про помилку: unable to load font `(null)'
.
Деякі програми працюють лише з растровими шрифтами. Доступно два основні пакунки з растровими шрифтами: xorg-fonts-75dpi і xorg-fonts-100dpi. Вам не потрібні обидва шрифти; одного з них має бути достатньо. Щоб дізнатися, який з них буде кращим у вашому випадку, спробуйте отримати xdpyinfo
з xorg-xdpyinfo, наприклад, так:
$ xdpyinfo | grep resolution
і скористайтеся тим, що ближче до показаного значення.
Відновлення: вимкнення Xorg перед входом у GUI (графічний інтерфейс)
Якщо Xorg налаштовано на автоматичне завантаження і з якихось причин вам потрібно запобігти його запуску до появи входу/менеджера дисплея (наприклад, якщо систему налаштовано неправильно і Xorg не розпізнає введення за допомогою миші або клавіатури), ви можете виконати це завдання двома способами.
- Змініть default target на
rescue.target
. Див. systemd#Change default target to boot into. - Якщо у вас не лише несправна система, через яку Xorg не працює, але й встановлено нульовий час очікування у меню GRUB, або ви не можете іншим чином використати GRUB для запобігання завантаженню Xorg, ви можете скористатися Arch Linux live CD. Дотримуйтеся вказівок інструкції з встановлення щодо монтування та входження до встановленого Arch Linux. Також спробуйте переключитися на інший tty за допомогою комбінації
Ctrl+Alt
+ функціональна клавіша (зазвичай відF1
доF7
, залежно від того, яка з них не використовується у X), увійдіть від імені користувача root і виконайте наведені нижче кроки.
Залежно від налаштувань, вам потрібно буде виконати один або декілька з цих кроків:
- Вимкнути менеджер дисплеїв.
- Вимкнути автоматичний запуск Х.
- Перейменуйте файл
~/.xinitrc
або закоментуйте рядокexec
у ньому.
X-клієнти, що починаються з "su", не працюють
Якщо ви отримуєте Client is not authorized to connect to server
, спробуйте додати рядок:
session optional pam_xauth.so
до /etc/pam.d/su
та /etc/pam.d/su-l
. Тоді pam_xauth
правильно встановить змінні середовища і оброблятиме xauth
ключі.
X не вдалося запустити: Не вдалося ініціалізувати клавіатуру
Якщо файлову систему (зокрема /tmp
) переповнено, startx
не вдасться виконати. Файл журналу буде виведено:
(EE) Error compiling keymap (server-0) (EE) XKB: Could not compile keymap (EE) XKB: Failed to load keymap. Loading default keymap instead. (EE) Error compiling keymap (server-0) (EE) XKB: Could not compile keymap XKB: Failed to compile keymap Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config. Fatal server error: Failed to activate core devices. ...
Звільніть місце на відповідній файловій системі й X запуститься.
Зелений екран при спробі переглянути відео
Неправильно встановлено глибину кольору. Наприклад, вона має бути 24 замість 16.
Помилка SocketCreateListener
Якщо X завершує роботу з повідомленням про помилку SocketCreateListener() failed
, можливо, вам слід видалити файли сокетів у /tmp/.X11-unix
. Це може статися, якщо ви раніше запускали Xorg від імені користувача root (наприклад, для створення xorg.conf
).
Недійсний ключ MIT-MAGIC-COOKIE-1 під час спроби запустити програму від користувача root
Ця помилка означає, що лише поточний користувач має доступ до X-сервера. Рішення - надати доступ root:
$ xhost +si:localuser:root
Цей рядок також може бути використано для надання доступу до X іншому користувачеві, окрім root.
Xorg-сервер фатальна помилка сервера: (EE) AddScreen/ScreenInit
Якщо сервер Xorg не працює випадковим чином і в журналі Xorg ви бачите:
systemd-logind: failed to take device /dev/dri/card0: Operation not permitted ... AddScreen/ScreenInit failed for driver 0
Тоді цю проблему може спричинити проблема 13943 у systemd. Налаштуйте ранній запуск KMS.
Дивіться також
- Xplain - поглиблене пояснення системи X Window System
- Xorg(1)
- Підготовка до іспиту LPIC-1 2 - тема 106.1: X11 - коротко описує архітектуру, #Конфігурація, оточення робочого столу, віддалене використання, Wayland.
- xorg.conf(5)
- Gentoo:Xorg/Guide#Configuration