Конфигурирование x-сервера в linux

Настройка консоли

Несколько слов о работе консоли.

Любой вывод программы перенаправляется консольному драйверу в ядре. Ядро работает только в кодировке Unicode. Если программа не использует UTF-8 для вывода текста, необходима таблица ACM (Application Character Map), которая будет выполнять соответствующее преобразование из 8-битной кодировки в Unicode. Эту таблицу можно найти в директории , если используется пакет (в Arch установлен по умолчанию).

Далее ядро должно отобразить символ на экране. Таблица соответствия знаков шрифта кодам Unicode называется SFM (Screen Font Map). Она либо находится внутри шрифта (в большинстве случаев), либо подгружается дополнительно (из ). Сами шрифты располагаются в .

Кроме этого, также необходима клавиатурная раскладка — таблица по переводу скан-кодов клавиатуры в нужный код символа (соответственно, может быть либо старая 8-битная, либо новая Unicode).

Таким образом, настройка консоли разбивается на следующие пункты (рассмотрен вариант с UTF):

  1. Поиск клавиатурной раскладки, поддерживающей Unicode и необходимые способы переключения языков, а также указание её как в файле .
  2. Установка шрифта, имеющего встроенную таблицу SFM и необходимое начертание: в файле .
  3. Проверка, что необходимость в ACM пропадает ( остаётся пустым) в файле .

Вся остальная работа по настройке kbd (например, использование утилит и ) уже сделана людьми, написавшими стартовые файлы системы.

Пакет поддерживает русские раскладки в UTF-8. Дополнительные раскладки клавиатуры можно получить, пакет AUR.

Установите пакет для получения шрифта Terminus.

Отредактируйте файл :

LOCALE="ru_RU.UTF-8"
KEYMAP="ru" # Или ru-mab для раскладки с переключением по Ctrl+Shift или ruwin_alt_sh-UTF-8 для переключение по Alt+Shift
FONT="ter-v16n" # Можно поэкспериментировать с другими шрифтами ter-v* из /usr/share/kbd/consolefonts
CONSOLEMAP=""

Если возникают проблемы со шрифтом ter-v16n, воспользуйтесь конфигурацией файла , приведённой ниже:

LOCALE=ru_RU.UTF-8
KEYMAP=ru
FONT=ter-u16b
CONSOLEMAP=
TIMEZONE=Europe/Moscow
HARDWARECLOCK=UTC
USECOLOR=yes

Обратите внимание, что поиск шрифта происходит в .

Можно обойтись без Terminus, установив:

CONSOLEFONT="cyr-sun16"

Примечание: Значение может быть как , так и или . Но, с целью уменьшения путаницы, все же лучше использовать вариант .

Можно обойтись без установки пакета AUR, вариант с переключением по :

LOCALE="ru_RU.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Europe/Moscow"
KEYMAP="ru"
FONT="cyr-sun16"
CONSOLEMAP=""
USECOLOR="yes"

Примечание: Внесите в файл следующую строку:

LANG=ru_RU.UTF-8

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

HOOKS="base consolefont keymap udev <ваши хуки>"

то есть вставить два дополнительных хука consolefont и keymap.

После чего пересоздать образ ядра:

# mkinitcpio -p linux

и перезагрузить систему.

Примечание: Если вышеперечисленные способы не помогли изменить шрифт в tty, вероятно, изменения не сохраняются после KMS. Попробуйте добавить в initrd модуль, выполняющий modesetting (nouveau/radeon/i915 и т.п.):

MODULES="nouveau"

32-bit support

Games that are installed from Steam, or are running in Wine, or are both at the same time with the advent of Valve’s Proton, may all require 32-bit graphics libraries at some point or another when trying to run 32-bit games. This can be done by enabling multiarch and installing the appropriate libraries. Note that the following guide assumes that your user is configured to use sudo which some forms of installation may not do by default, make necessary adjustments if so.

First, to enable 32-bit support and update your repos as appropriate:

sudo dpkg --add-architecture i386 && sudo apt update

Then, to install the relevant libraries:

sudo apt install libglx-mesa0:i386 mesa-vulkan-drivers:i386 libgl1-mesa-dri:i386

Then, you may need to restart the relevant applications for them to load the new libraries. After which, there should be no problem.

Installation

This page will provide you with useful information but the Xorg guide details the installation of Xorg in a more convenient manner.

Installing xorg-server is much lighter than emerging the entire xorg package, and has all the necessary components to have a fully functional GUI such as plasma for example.

NoteIf you’re only updating, check the upgrade sub-article.

USE flags

Portage knows the USE flag for enabling support for X in other packages (default in all desktop profiles). Make sure this USE flag is added to the USE flag list to ensure X compatibility system wide:

FILE

USE="X"

xorg-drivers

  • Video cards, see
  • Input devices and

Follow the links for information how to set up these devices.

It is recommended to issue the option when emerging xorg-server because xorg-drivers or mesa may be pulled in as dependencies if they are not already installed. Using will show more information on USE flags and dependencies before package installation. If xorg-drivers and/or the mesa packages are emerged directly (IE without the option) they will be recorded in the world file and could cause future package upgrade conflicts when Portage is upgrading dependencies. It is a best practice to allow them to be merged into the system as dependencies by setting USE flags or using a graphical profile.

Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
Build the Distributed Multiheaded X server
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
Use elogind to get control over framebuffer when running as regular user
Add support for IP version 6
Build the kdrive X servers
Use libglvnd for dispatch.
Use dev-libs/libressl instead of dev-libs/openssl when applicable (see also the ssl useflag)
Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features)
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
Build static versions of dynamic libraries as well
Enable setuid root program, with potential security risks
Enable use of systemd-specific libraries and features like socket activation or session tracking
Enable virtual/udev integration (device discovery, power and storage device support, etc)
Enable libunwind usage for backtraces
Enable dev-libs/wayland backend
Build Security extension
Build the Xephyr server
Build the Xnest server
Build the Xorg X server (HIGHLY RECOMMENDED)
Build the Xvfb server

Как установить Xfce

Установка новой системы с Xfce

Если вы устанавливаете новую систему, то в объясняется способ установки Xfce напрямую:

  1. В меню приглашении установщика Debian (Debian Installer), нажмите клавишу tab для редактирования командной строки, и добавьте следующие

    • desktop=xfce

      Альтернатива, зайти в «Advanced options» далее выбрать «Alternate desktop environments», и там выбрать Xfce.

  2. Во время установки не забыть выбрать «Рабочие окружение (Desktop Environment)».

Рекомендуется почитать Debian Desktop Howto.

Установка Xfce в уже установленной системе

Опционально: Если вы хотите (до установки XFCE) удалить GNOME и его зависимости, то надо сделать следующие:

aptitude purge `dpkg --get-selections | grep gnome | cut -f 1`
aptitude -f install
aptitude purge `dpkg --get-selections | grep deinstall | cut -f 1`
aptitude -f install

Имейте в виду, что это может сломать вашу систему

Соблюдайте осторожность

Для установки Xfce сделайте следующие:

apt-get install xfce4

Это поставит метапакет, который установит основные пакеты Xfce, для его работы.

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

apt-get install xfce4-goodies

В некоторых минимальных установок Debian 8 (например, ВМ Google Compute Engine), может возникнуть следующая проблема, после установки Xfce:

Значки приложений и файлов, в файловом обозревателе, не отображаются.

Это возможно из-за нехватки некоторых не обязательных зависимостей Xfce. Одним из решений этой проблемы является установка пакета «task-xfce-desktop» (task-xfce-desktop):

sudo apt-get install task-xfce-desktop

Данный пакет установит нужные зависимости и решит данную проблему

Пожалуйста, обратите внимание: пакет task-xfce-desktop также установит окружение рабочего стола, менеджер входа (display manager) и другие программы (например LibreOffice), если они ещё не присутствуют в системе

Experimental options

ACO Compiler

ACO is an experimental shader compiler developed by Valve to reduce stuttering in games and improve overall performance in Vulkan applications. It’s included in Mesa by default though not enabled. You can run any application with the environment variable RADV_PERFTEST set to aco for this to take effect. In a typical case, this means prefixing it to the command you wish to run. For example, with Games/Supertuxkart, you might run:

RADV_PERFTEST=aco supertuxkart

While for Steam games, including those that run through Steam Play/Proton, you may go to the game’s «Properties» screen and set its launch options line to be:

RADV_PERFTEST=aco %command%

AMDGPU/Vulkan on older cards

If your graphics card is built on GCN 1.0 or GCN 1.1 (also known as being from the «Southern Islands» or «Sea Islands» card families), you may enable experimental AMDGPU support in order to see potentially better performance and Vulkan support.

Follow the normal installation instructions first, and then open the /etc/default/grub file in your text editor of choice. Note that it requires admin permissions to edit, so you will either need to open the text editor with sudo or use one such as Kate that supports PolKit permissions.

Within the quotes on the line that starts with GRUB_CMDLINE_LINUX_DEFAULT, add the options radeon.si_support=0 amdgpu.si_support=1 for Southern Islands (GCN 1.0) cards, or radeon.cik_support=0 amdgpu.cik_support=1 for Sea Islands (GCN 1.1) cards.

For example, if you were using a GCN 1.1 card, the final line may look similar to:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.cik_support=0 amdgpu.cik_support=1"

Furthermore, if you are using an AMD A10 APU with an integrated Sea Island (GCN 1.1) card, you may have to disable Radeon Dynamic Power Management to get a proper boot. This is a feature that dynamically re-clocks the graphics core in order to keep the APU cooler and quieter, however for kernel versions 4.x.x and 5.x.x, this feature may put you in an infinite restart loop. To disable it, following the instructions above, add radeon.dpm=0 to the boot options.

After editing and applying the changes, run sudo update-grub2 and reboot your system. If all goes well, it should be using the new driver.

Установка и обновление драйверов Nvidia/ATI с помощью sgfx

Sgfxi — простой скрипт, позволяющий легко устанавливать и обновлять закрытые драйверы видеокарт. На сегодняшний день поддерживаются драйверы ATI fglrx и Nvidia.

Sgfxi поддерживает следующие дистрибутивы: Debian Stable, Debian Testing, Debian Unstable. Так же нужно отметить, что поддержка ATI fglrx может меняться время от времени и в зависимости от дистрибутива.

Драйвер по-умолчанию — это драйвер, который устанавливается в случае, если не выбраны никакие дополнительные параметры. Если же ваша видеокарта достаточно старая, то может потребоваться вручную указать старую версию драйвера для обеспечения её работы.

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

Установка скрипта sgfxi

Существует много способов установки sgfxi. С ними можно познакомится на домашней странице проекта smxi http://smxi.org/site/install.htm. Однако, в подавляющем большинстве случаев вам будет достаточно ввести в терминале суперпользователя команду:

cd /usr/local/bin && wget -Nc smxi.org/sgfxi && chmod +x sgfxi

Sgfxi имеет множество различных параметров, некоторые из которых работают только с драйвером Nvidia или только ATI fglrx. Чтобы получить полный список параметров, введите в терминале команду:

sgfxi -h

Скрипт sgfxi автоматически заменяет нужную секцию xorg.conf для работы установленного драйвера (создавая при этом резервную копию старого файла). В случае если скрипт не обнаружит файл xorg.conf в системе, он будет сгенерирован автоматически.

Использование скрипта sgfxi

Для начала установки или обновления драйвера вам необходимо переключится в виртуальную консоль с помощью сочетания клавиш Ctrl+Alt+F1. После этого получите права суперпользователя и запустите скрипт:

sgfxi

В этом случае будет предложено установить последний доступный для вашей видеокарты драйвер. Для того чтобы указать другую версию, испоользуйте опцию -o:

sgfxi -o <версия драйвера>

Список доступных версий можно посмотреть с помощью команды:

sgfxi -h

ВАЖНО: в процессе установки закрытых драйверов скрипт завершает работу любых оконных менеджеров. Поэтому перед установкой необходимо завершить все работающие приложения с графическим интерфейсом

По окончанию установки вы получите полностью готовую к использованию систему.

Удалить драйвер можно так:

sgfxi -n

Также можно выбрать, какой драйвер необходимо установить:

sgfxi -N vesa

Возможные проблемы

На этапе установки скрипт выдал предупреждение о том, что не удалось удалить модуль Nouveau. Решение: на самом деле sgfxi сразу удаляет модуль Nouveau из ядра, но для продолжения работы потребуется перезагрузка системы и повторный запуск скрипта. Так как модуль Nouveau уже удалён из системы, то вам не удастся запустить xserver. Его можно будет запустить по окончанию установки.

Скрипт выдаёт ошибку запуска

Решение: в некоторых дистрибутивах скрипт не устанавливает автоматически необходимый для работы пакет build-essential. Для решения этой проблемы установите пакет в ручную с помощью команды:

aptitude install build-essential

Полная версия руководства на английском языке http://smxi.org/docs/sgfxi-manual.htm

Домашняя страница проекта http://smxi.org/

Tips and tricks

This article or section needs expansion.

Automation

This section lists utilities for automating keyboard / mouse input and window operations (like moving, resizing or raising).

Tool Package Manual Keysyminput Windowoperations Note
xautomation Yes No Also contains screen scraping tools. Cannot simulate F13+.
xdo No Yes Small X utility to perform elementary actions on windows.
xdotool Yes Yes
xvkbd AUR Yes No Virtual keyboard for Xorg, also has the option for sending characters.

Nested X session

This article or section needs expansion.

To run a nested session of another desktop environment:

$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1

This will launch a Window Maker session in a 1024 by 768 window within your current X session.

This needs the package to be installed.

On-demand disabling and enabling of input sources

With the help of xinput you can temporarily disable or enable input sources. This might be useful, for example, on systems that have more than one mouse, such as the ThinkPads and you would rather use just one to avoid unwanted mouse clicks.

Install the package.

Find the name or ID of the device you want to disable:

$ xinput

For example in a Lenovo ThinkPad T500, the output looks like this:

$ xinput
⎡ Virtual core pointer                          id=2    
⎜   ↳ Virtual core XTEST pointer                id=4    
⎜   ↳ TPPS/2 IBM TrackPoint                     id=11   
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   
⎣ Virtual core keyboard                         id=3    
    ↳ Virtual core XTEST keyboard               id=5    
    ↳ Power Button                              id=6    
    ↳ Video Bus                                 id=7    
    ↳ Sleep Button                              id=8    
    ↳ AT Translated Set 2 keyboard              id=9    
    ↳ ThinkPad Extra Buttons                    id=12   

Disable the device with , where device is the device ID or name of the device you want to disable. In this example we will disable the Synaptics Touchpad, with the ID 10:

$ xinput --disable 10

To re-enable the device, just issue the opposite command:

$ xinput --enable 10

Alternatively using the device name, the command to disable the touchpad would be:

$ xinput --disable "SynPS/2 Synaptics TouchPad"

Killing application with hotkey

Run script on hotkey:

#!/bin/bash
windowFocus=$(xdotool getwindowfocus);
pid=$(xprop -id $windowFocus | grep PID);
kill -9 $pid

Deps: ,

Block TTY access

This article or section needs expansion.

To block tty access when in an X add the following to :

Section "ServerFlags"
    Option "DontVTSwitch" "True"
EndSection

Prevent a user from killing X

To prevent a user from killing when it is running add the following to :

Section "ServerFlags"
    Option "DontZap"      "True"
EndSection

Rootless Xorg

Xorg may run with standard user privileges instead of root (so-called «rootless» Xorg). This is a significant security improvement over running as root. Note that most display managers do not support rootless Xorg.

You can verify which user Xorg is running as with .

To configure rootless Xorg using xinitrc:

  • Run startx as a subprocess of the login shell; run directly and do not use .

Session log redirection

When Xorg is run in rootless mode, Xorg logs are saved to . However, the stdout and stderr output from the Xorg session is not redirected to this log. To re-enable redirection, start Xorg with the flag and redirect the stdout and stderr output to a file:

startx -- -keeptty &> ~/.xorg.log

Uninstallation

If you run into issues with the drivers, switch to a different card, or simply want to use the open-source Nouveau drivers instead, uninstallation is made easy with recent versions of the drivers.

Also note that if issues with the driver prevent you from accessing a desktop, you can access a full-screen TTY with Ctrl-Alt-F3 (or almost any of the «F» keys).

You can remove all packages on your system with nvidia in the name by running:

# apt purge *nvidia*

And then reboot the system with:

systemctl reboot

This should leave you with a functioning system in almost all cases. If it seems to still be having issues, you may also try running:

# apt install --reinstall xserver-xorg-core xserver-xorg-video-nouveau

Or:

# X -configure

Драйвера

Фирменные драйвера «NVIDIA Accelerated Linux Graphics Driver» обеспечивают оптимизированное аппаратное ускорение для OpenGL приложений через прямой-рендеринг X сервера. It is a binary-only Xorg driver requiring a Linux kernel module for its use.

Для Debian 9 «Stretch» доступно несколько версий драйверов:

(поддерживаемые устройства)
Для видеокарт Fermi/Kepler/Maxwell/новые

Обратите внимание, что версия 390.48, в настоящее время, доступена только в stretch-backports. (поддерживаемые устройства)
ля видеокарт Kepler/Maxwell/новые

(поддерживаемые устройства)
Для видеокарт GeForce 8xxx — 7xx.

(поддерживаемые устройства)
Для видеокарт GeForce 6xxx и 7xxx.

Для Debian 8 «Jessie» доступно несколько версий драйверов:

(поддерживаемые устройства)
Для видеокарт Kepler/Maxwell/новые

Обратите внимание, что версия 375.66 доступна только в нестабильной версии Debian и через репозиторий Backports. (поддерживаемые устройства)
Для видеокарт GeForce 8xxx — 7xx

(поддерживаемые устройства)
Для видеокарт GeForce 6xxx и 7xxx.

Для Debian 7 «Wheezy» доступно 4 версий драйверов:

  • (поддерживаемые устройства)

    Для видеокарт GeForce 8xxx и выше.

  • (поддерживаемые устройства)

    Для видеокарт GeForce 6xxx и выше.

  • (поддерживаемые устройства)

    Для видеокарт GeForce 5xxx / GeForce FX.

  • (поддерживаемые устройства)

    Для видеокарт GeForce 2, GeForce 3 и GeForce 4.

Все вышеперечисленные версии доступны только для архитектур x86 и x86-64 (Debian i386 и AMD64 порты соответственно).

Installation

You can simply use the Debian installer, see the
prepared CD images.
Then the following steps will be needed for proper configuration.

You can also get a pre-installed image and run it in qemu:

 
$ wget https://cdimage.debian.org/cdimage/ports/current-hurd-i386/debian-hurd.img.tar.gz
$ tar xzf debian-hurd.img.tar.gz
$ kvm -m 1G -drive file=$(echo debian-hurd*.img),cache=writeback

To enable accessing the box through ssh, you can append

 
-net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

and ssh to your local TCP port 2222.

You can also convert the image to the VDI format for virtualbox:

 
$ VBoxManage convertfromraw debian-hurd-*.img debian-hurd.vdi --format vdi

Настройка

Xorg можно настроить через , или файлы, находящиеся в каталоге . Обычно никаких настроек не требуется. Вы можете создавать новые файлы конфигурации в , но их имена должны начинаться с , где XX — номер, и оканчиваться на (например, файл, начинающийся на 10, запускается раньше 20).

Кроме того, драйвер может поставляться с инструментами для настройки Xorg. Например, для NVIDIA запустите nvidia-xconfig, для ATI — aticonfig.

Устройства ввода

Synaptics Touchpad

Основная статья: Touchpad Synaptics

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

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

Отключение горячего подключения

С версии 1.8 Xorg-server использует udev для определения устройств. Эта настройка отключает его использование.

Section "ServerFlags"
    Option          "AutoAddDevices" "False"
EndSection

Важно: Это отключит горячее подключения для всех устройств ввода. Гораздо удобнее, чтобы udev сам подключал устройства

Отключение горячего подключения не рекомендуется!

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

Xorg может определить клавиатуру неправильно, что может дать проблемы с раскладкой.

Чтобы увидеть полный список поддерживаемых моделей клавиатур и раскладок, откройте .

Установка раскладки для текущего сеанса Xorg:

# setxkbmap dvorak

Просмотр настроек клавиатуры

$ setxkbmap -print -verbose 10

 Setting verbose level to 10
 locale is C
 Applied rules from evdev:
 model:      evdev
 layout:     us
 options:    terminate:ctrl_alt_bksp
 Trying to build keymap using the following components:
 keycodes:   evdev+aliases(qwerty)
 types:      complete
 compat:     complete
 symbols:    pc+us+inet(evdev)+terminate(ctrl_alt_bksp)
 geometry:   pc(pc104)
 xkb_keymap {
         xkb_keycodes  { include "evdev+aliases(qwerty)" };
         xkb_types     { include "complete"      };
         xkb_compat    { include "complete"      };
         xkb_symbols   { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)"    };
         xkb_geometry  { include "pc(pc104)"     };
 };

В связи с выходом X.org 1.8, HAL больше не отвечает за переключение раскладок клавиатуры.

Переключение раскладок средствами X.org

Примечание: Установите и добавьте в секцию DAEMONS файла .

Для настройки переключения раскладок нужно создать новый файл в , например, со следующим содержанием:

Section "InputClass"
	Identifier             "keyboard-layout"
	MatchIsKeyboard        "on"
	Option "XkbLayout" "us,ru"
	Option "XkbOptions" "grp:caps_toggle,grp_led:scroll"
EndSection

За комбинацию клавиш переключения между двумя раскладками отвечает опция XkbOptions. Например, если вы хотите настроить переключение по Caps Lock:

Option "XkbOptions" "grp:caps_toggle"

Или переключение по Ctrl+Shift:

Option "XkbOptions" "grp:ctrl_shift_toggle"

Опция «grp_led:scroll» отвечает за включение индикатора Scroll Lock при смене на вторую раскладку (в данном случае — ru(winkeys)). Можно использовать вместо Scroll Lock и Caps Lock, и Num Lock.

Также вместо редактирования настроек можно добавить следующую команду в :

setxkbmap -layout "us,ru" -option "grp:caps_toggle,grp_led:scroll"

Включение pointerkeys

Mouse keys теперь по умолчанию отключены, и их нужно включать вручную:

/etc/X11/xorg.conf.d/20-enable-pointerkeys.conf
Section "InputClass"
    Identifier             "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option                 "XkbOptions" "keypad:pointerkeys"
EndSection

Также можно запустить:

$ setxkbmap -option keypad:pointerkeys

Both will make the shortcut toggle mouse keys.

Модель клавиатуры

Чтобы изменить модель клавиатуры, используйте опцию XkbModel в разделе InputDevice клавиатуры. Например, если у вас клавиатура Microsoft Wireless Multimedia Keyboard:

Option "XkbModel" "microsoftmult"

Эта статья или раздел нуждается в переводе

Запуск

См. также: Запуск X при загрузке

Совет: Самый простой способ запустить X — воспользоваться экранным менеджером, например GDM, KDM или SLiM.

Если вы хотите запустить X без менеджера дисплея, установите пакет . Можно установить , и , чтобы запустилась среда, установленная по умолчанию.

Команды и запустят X-сервер и клиенты (Команда — просто интерфейс для более универсальной команды ). Для определения клиента / читают файл . При его отсутствии читается , который запустит оконный менеджер Twm, Xclock и Xterm.

Более подробная информация доступна в статье xinitrc.

Примечание:

  • Если возникают проблемы, почитайте журнал в . Строчки, начинающиеся с сообщают об ошибках, — предупреждения.
  • Если файл пустой, нужно удалить или отредактировать его, чтобы запустить X правильно. Если этого не сделать, X покажет пустой экран без ошибок в . Удаление этого файла запустит среду по умолчанию.

Configuration

Simple

The basic procedure is defining one «Monitor» section per Monitor and then tying everything together in a «Device» section that specifies the video chip driving the monitor(s). For the following examples, Xorg’s configuration is presumed to be stored in /etc/X11/xorg.conf.d (no /etc/X11/xorg.conf file will be used). Alternatively, if the user desires, all files defined in the xorg.conf.d folder can be combined together to form an xorg.conf. The following example is the basic version for two monitors of the same resolution.

FILE Right monitor

Section "Monitor"
    Identifier  "DVI"
EndSection

FILE Left monitor

Section "Monitor"
    Identifier  "DP"
    Option      "LeftOf"        "DVI"
EndSection

Each «Monitor» section must contain an Identifier, everything else is optional. The identifier may be freely chosen. The placement of the monitors is done relatively with one of the keywords , , , or . Additionally there is a keyword for fancy cases, however this article avoids using it. Each monitor can receive custom options (e.g. resolution) in its configuration.

Next the monitors need to be mapped to the outputs. This is done in the section describing the video chip and driver. The Device section of the two monitor example (using an Intel video card) would look like the following.

FILE Device section

Section "Device"
    Identifier  "Device0"
    Option      "Monitor-DVI2" "DVI"
    Option      "Monitor-DP1" "DP"
    Driver      "intel"
EndSection

ImportantThe Driver keyword has to be updated using the system’s video card. Common options are , or .

The names of the monitors are in the form «Monitor-<port>». The port each monitor was on was determined by running the xrandr -q command. This should be everything needed for a basic setup.

More complex cases

Sometimes more complex layouts will be needed. A third example of a monitor file, with resolution options could look like the following.

FILE Advanced configuration with resolution defined

Section "Monitor"
    Modeline    "1280x800x60" 71.00 1280 1328 1360 1440 800 803 809 823
    Option      "PreferredMode" "1280x800"
    Identifier  "LVDS"
    Option      "RightOf"       "DVI"
    VendorName  "CMO"
EndSection

It is possible to see in the example above that manufacturer names can be used to get a single config file attached to a single device.

FILE Advanced intel example

Section "Device"
    Option      "Monitor-DVI2" "DVI"
    Option      "Monitor-DP1" "DP"
    Option      "Monitor-LVDS2" "LVDS"
    Option      "AccelMethod" "sna"
    Option      "TearFree" "true"
    Option      "DRI" "True"
    Option      "XvMCSurfaces" "6"
    Identifier  "GMA-X4500"
    Driver      "intel"
EndSection

FILE Radeon driver example

Section "Device"
    Option      "Monitor-DVI-0" "DVI"
    Option      "Monitor-HDMI-0" "DP"
    Option      "Monitor-LVDS" "LVDS"
    Option      "AccelMethod" "EXA"
    Option      "ClockGating" "On"
    Option      "ForceLowPowerMode" "On"
    Option      "VGAAccess" "On"
    Identifier  "HD3450"
    Driver      "radeon"
    Option      "MonitorLayout" "LVDS, AUTO"
EndSection

Different resolutions

Xrandr-1.3 is a little deficient in this regard. X can precisely probe the screen devices, but xrandr will get/display the minimum resolution fitted to the smallest screen attached to the machine. This is annoying because it creates a debug situation. Xorg.0.log has to be read in order to get possible monitor resolutions, define a few modes with xrandr, and then choose a video mode with xrandr. There is nothing user friendly about the process. The process usually takes matter of minutes, but is annoying when a user desires to attach a bigger screen to a computer for a simple event like watching a movie. The latter can be achieved, somewhat, with the following example.

FILE Preferred video modes example

Section "Monitor"
    Option      "SyncOnGreen" "True"
    Modeline    "1280x1024x85" 157.50 1280 1344 1504 1728 1024 1025 1028 1072
    Modeline    "1600x1200x85" 229.50 1600 1664 1856 2160 1200 1201 1204 1250
    Modeline    "1600x1200x75" 202.50 1600 1664 1856 2160 1200 1201 1204 1250
    Option      "PreferredMode" "1600x1200"
    Identifier  "VGA"
    VendorName  "GSM"
EndSection

Установка

Установите пакет из официальных репозиториев.

В дополнение к нему, могут понадобиться пакеты из мета-пакета для некоторых способов настроек. О них рассказано в соответствующих разделах. Другие полезные пакеты находятся в группе .

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

Установка драйвера

Ядро Linux включает в себя видеодрайверы с открытым исходным кодом и поддержку аппаратного ускорения буфера кадров. Однако, для работы OpenGL и двухмерного ускорения в X11 требуется поддержка пользовательского ПО.

Сперва определите вашу видеокарту:

$ lspci | grep -e VGA -e 3D

Затем установите соответствующий драйвер. Вы можете поискать в базе данных пакетов полный список видеодрайверов с открытым исходным кодом:

$ pacman -Ss xf86-video

Стандартный графический драйвер — , который поддерживает огромное число чипсетов, но не включает в себя ни 2D, ни 3D ускорение. Если более подходящий драйвер отсутствует или не загружается, X будет использовать vesa.

Для того, чтобы ускорение видео работало, и часто для того, чтобы разблокировать все режимы, в которых может работать GPU, требуется правильный видеодрайвер:

Примечание: Если Вы пользуетесь ноутбуком с разрешённым NVIDIA Optimus, который использует интегрированную видеокарту вместе с дискретной видеокартой, обратитесь к статье Bumblebee.

Бренд Тип Драйвер Multilib Документация
AMD/ATI Свободный ATI (Русский)
Проприетарный AUR AUR AMD Catalyst
Intel Свободный Intel graphics (Русский)
Nvidia Свободный Nouveau (Русский)
Проприетарный NVIDIA (Русский)

Другие видео драйверы можно найти в группе .

Во избежание проблем X следует запускать без драйверов с закрытым исходным кодом, которые обычно требуются только для расширенных возможностей, таких, как быстрый 3D рендеринг в играх.

Troubleshooting

  • Use of firmware/microcode used by the radeon DRM driver can be verified using the dmesg command. For example:

    dmesg | grep -E 'drm|radeon' | grep -iE 'firmware|microcode'
      Loading BARTS Microcode
     radeon 0000:01:00.0: firmware: direct-loading firmware radeon/BARTS_pfp.bin
     radeon 0000:01:00.0: firmware: direct-loading firmware radeon/BARTS_me.bin
     radeon 0000:01:00.0: firmware: direct-loading firmware radeon/BTC_rlc.bin
     radeon 0000:01:00.0: firmware: direct-loading firmware radeon/BARTS_mc.bin
     radeon 0000:01:00.0: firmware: direct-loading firmware radeon/BARTS_smc.bin
     radeon 0000:01:00.0: firmware: direct-loading firmware radeon/SUMO_uvd.bin
  • If files were unable to be loaded, ensure the firmware-linux-nonfree package is installed (refer to ).

  • Screen flickering with Adobe Flash: see .

Hybrid Graphics

AMD ships hybrid graphics that may have an AMD graphics card combined with one of a different kind. Without proper support, the cards may run inefficiently, only using one or the other or even activating both at the same time which causes excessive power consumption.

Debian Stretch and newer come with a Mesa version which supports DRI Offloading. Make sure all necessary drivers are installed. It also needs firmware-linux-nonfree package to work.

Check if both the cards are getting listed:

xrandr --listproviders

The above listing should give both the names of the cards and the associated drivers. Assuming you’re using a dedicated chip that uses the radeon and an integrated Intel card for example that’s using the intel driver, you may set:

xrandr --setprovideroffloadsink radeon Intel

You can test the settings with the command:

DRI_PRIME=1 glxinfo | grep "OpenGL renderer"

Where the output should be AMD.

What is the X Window server?

Graphical vs command-line

An average user may be frightened at the thought of having to type in commands at a command-line interface (CLI). 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 they can!

Gentoo offers a wide variety of flashy graphical interfaces such as window managers and desktop environments which can be installed on top of an existing installation.

One of the biggest surprises users who are new to Linux come across: graphical user interfaces are nothing more than an application (or in some cases a suite of applications) which are run on a system. It is not part of the Linux kernel or any other internals of the system. That said, GUIs are powerful tools that unlock the graphical abilities of a workstation.

As standards are important, a standard for drawing and moving windows on a screen, interacting with the user through mouse, keyboard, and other basic, yet important aspects has been created and named the X Window System, commonly abbreviated as X11 or just X. It is used on Unix, Linux, and Unix-like operating systems throughout the world.

The application that provides Linux users with the ability to run graphical user interfaces and that uses the X11 standard is Xorg-X11, a fork of the XFree86 project. XFree86 has decided to use a license that might not be compatible with the GPL license; the use of Xorg is therefore recommended. XFree86 packages are no longer provided through the Gentoo repository.

The X.org project

Xorg provides an interface between your hardware and the graphical software you want to run. Besides that, Xorg is also fully network-aware, meaning you are able to run an application on one system while viewing it on a different one.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *