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

Настройка видеокарты в xorg.conf

У драйверов видеокарт ест множество различных полезных опций, которые вы можете настроить с помощью xorg.conf. Большинство из них специфичны для конкретного производителя видеокарт. Например, есть множество настроек для видеокарт NVIDIA, но с другой стороны карты от ATI не настраиваются через этот файл. Драйвера с открытым исходным кодом от Intel имеют только несколько настроек. Дальше будет рассмотрена настройка видеокарты linux для различных производителей.

Настройка Nvidia

У видеокарт NVIDIA есть множество настроек, которые можно указать в xorg.conf. Каждая строка состоит из ключа и значения, ее можно разместить в секции Screen или Device:

  • Option «NoLogo» «true» — во время инициализации драйвера показывается логотип NVIDIA. Это занимает некоторое время, поэтому с помощью такой строки можно отключить логотип;
  • Option «LogoPath» «адрес_файла» — вы можете заменить логотип NVIDIA на свое изображение, для этого просто укажите его адрес в этой строке;
  • Option «CursorShadow» «true» — если вы хотите видеть тень вокруг курсора, включите эту опцию. Тут есть два дополнительных параметра CursorShadowXOffset и CursorShadowYOffset, которые позволяют установить положение тени;
  • Option «Coolbits» «true» — эта опция позволяет включить возможность разгона частоты процессора и скорости памяти вашей видеокарты. Но вам нужно быть аккуратным с этим параметром, поскольку так вы можете повредить сове оборудование. Параметры разгона будут отображаться в утилите nvidia-config;
  • Option «DPI» «75 x 85» — если значение DPI (количество точек на дюйм) установлено неверно, то это может повлиять на правильность отображения шрифтов. Обычно, Xorg вычисляет этот параметр на основе EDID, но вы можете установить его вручную. Например, для монитора с разрешением ,440×900 и физическим размером 16×10 дюймов, значение DPI будет составлять (1,440/16)x(900/10) = 90×90.

Настройка видеокарты Intel

Графическими картами от Intel не всегда поддерживается настройка xorg.conf. Поэтому вам нужно проверить каждую из опций чтобы увидеть дает ли она какой-либо результат. Опции нужно добавлять в раздел Device:

  • Option «AccelMethod» «EXA» — эта опция позволяет включить новую архитектуру ускорения EXA. Она поддерживается в большинстве интегрированных карт Intel 943/940 и позволяет улучшить скорость композитинга.
  • Option «MigrationHeuristic» «greedy» — позволяет уменьшить использование видеопамяти на хранение различных текстур, что повышает общую производительность;
  • Option «TripleBuffer» «true» — этот параметр включает использование более совершенного метода двойной буферизации (используется для противостояния мерцанием).

Проблемы

Тиринг и неработающий VSync

Для решения проблемы необходим 1.19 или выше, ядро 4.5 или выше и 370.23 или выше. Затем включите «», что, в свою очередь, включит синхронизацию PRIME и исправит разрывы изображения.

EDID errors in Xorg.log

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

Для предоставления пути к файлу EDID отредактируйте раздел «Device» для NVIDIA в Xorg.conf, добавив эти строки. Не забудьте изменить поля в соответствии с вашей системой:

/etc/X11/xorg.conf
Section "Device"
    Option "ConnectedMonitor" "CRT-0"
    Option "CustomEDID" "CRT-0:/sys/class/drm/card0-LVDS-1/edid"
    Option "IgnoreEDID" "false"
    Option "UseEDID" "true"
EndSection

Если Xorg не запускается попробуйте поменять ссылки CRT на DFB. card0 это идентификатор чипа Intel, который подключен к дисплею с помощью LVDS. Если расположение аппаратных средств отличается, значение пользовательского EDID может быть другим. Путь же будет начинаться с /sys/class/drm.

Adding undetected resolutions

Due to buggy hardware or drivers, your monitor’s correct resolutions may not always be detected. For example, the EDID data block queried from your monitor may be incorrect.

If the mode already exists, but just isn’t associated for the particular output, you can add it like this:

$ xrandr —addmode S-video 800×600

If the mode doesn’t yet exist, you’ll need to create it first by specifying a modeline:

$ xrandr —newmode

You may create a modeline using the gtf or cvt utility. For example, if you want to add a mode with resolution 800×600 at 60 Hz, you can enter the following command: (The output is shown following.)

$ cvt 800 600 60
# 800×600 59.86 Hz (CVT 0.48M3) hsync: 37.35 kHz; pclk: 38.25 MHz
Modeline «800x600_60.00» 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync

Then copy the information after the word «Modeline» into the xrandr command:

$ xrandr —newmode «800x600_60.00» 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync

After the mode is entered, it needs to be added to the output using the —addmode command as explained above.

Installation

Xorg can be installed with the package.

Additionally, some packages from the group are necessary for certain configuration tasks. They are pointed out in the relevant sections.

Finally, an group is also available, which includes Xorg server packages, packages from the group and fonts.

Tip: You will typically seek to install a window manager or a desktop environment to supplement X.

Driver installation

The Linux kernel includes open-source video drivers and support for hardware accelerated framebuffers. However, userland support is required for OpenGL and 2D acceleration in X11.

First, identify the graphics card (the Subsystem output shows the specific model):

$ lspci -v | grep -A1 -e VGA -e 3D

Then, install an appropriate driver. You can search the package database for a complete list of open-source video drivers:

$ pacman -Ss xf86-video

Xorg searches for installed drivers automatically:

  • If it cannot find the specific driver installed for the hardware (listed below), it first searches for fbdev ().
  • If that is not found, it searches for vesa (), the generic driver, which handles a large number of chipsets but does not include any 2D or 3D acceleration.
  • If vesa is not found, Xorg will fall back to kernel mode setting, which includes GLAMOR acceleration (see ).

In order for video acceleration to work, and often to expose all the modes that the GPU can set, a proper video driver is required:

Brand Type Driver OpenGL OpenGL (multilib) Documentation
AMD / ATI Open source AMDGPU
ATI
Proprietary AUR AUR AMDGPU PRO
Intel Open source Intel graphics
NVIDIA Open source Nouveau
Proprietary NVIDIA
AUR AUR AUR

Note:

  • For NVIDIA Optimus enabled laptop which uses an integrated video card combined with a dedicated GPU, see NVIDIA Optimus.
  • For Intel graphics on 4th generation and above, see for available drivers.

Other video drivers can be found in the group.

Xorg should run smoothly without closed source drivers, which are typically needed only for advanced features such as fast 3D-accelerated rendering for games. The exceptions to this rule are recent GPUs (especially NVIDIA GPUs) not supported by open source drivers.

AMD

For a translation of model names (e.g. Radeon RX 6800) to GPU architectures (e.g. RDNA 2), see wikipedia:List of AMD graphics processing units.

GPU architecture Open-source driver Proprietary driver
RDNA, RDNA 2 AMDGPU AMDGPU PRO
GCN 3, GCN 4, GCN 5
GCN 1, GCN 2 AMDGPU* / ATI not available
TeraScaleand older ATI not available
*: Experimental

Альтернативная конфигурация

Если возникли сбои в работе Xorg-server 1.17.1 и выше с описанной выше конфигурацией, измените раздел для Intel в /etc/X11/xorg.conf как показано ниже:

/etc/X11/xorg.conf
Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "PCI:0:2:0"
    Option "AccelMethod" "sna"
    #Option "TearFree" "True"
    #Option "Tiling" "True"
    #Option "SwapbuffersWait" "True"
EndSection

Как указано выше BusID должен совпадать с выводом lspci. Найдите строку с «VGA compatible controller», которая содержит «Intel». Например:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)

Если X запустился, но на экране ничего не происходит, проверьте содержит ли /var/log/xorg.conf подобную строку:

/var/log/xorg.conf
 (EE) Screen 1 deleted because of no matching config section.

Если да, проблема может исчезнуть при добавлении раздела ServeLayout в /etc/X11/xorg.conf

/etc/X11/xorg.conf
Section "ServerLayout"
    Identifier "layout"
    Screen 1 "nvidia"
    Inactive "intel"
EndSection

Зачем нужен процесс Xorg в операционной системе Linux?

Xorg — это сервер окон операционной системы Linux − X Window System display server (упрощенно сервер X). Он служит интерфейсом, помогающим ему управлять аппаратными устройствами компьютера, в том числе видеокартами.

Для справки:

Сервер X обычно запускается с помощью специальной программы - менеджера дисплеев (аналог explorer.exe в Windows). В xubuntu это программа lightdm (в других Linux-подобных системах используют gdm3, kdm и другие программы). Менеджер дисплеев обеспечивает возможность ввода логина и пароля в операционной системе, работающей в оконном (графическом) режиме. LightDM - это один из самых легких менеджеров, который используется не только в xubuntu, но и в LUbuntu.

Он может быть установлен в любом из дистрибутивов Ubuntu командой:

sudo apt-get install lightdm

Удаляется менеджер дисплеев lightdm командой:

sudo apt-get remove lightdm

Проверить, какой менеджер дисплеев используется в системе можно командой:

cat /etc/X11/default-display-manager

Отображение информации о работающем менеджере дисплеев в xubuntu 18.04:

Управление работой видеокарт Nvidia как в консольном, так и в графическом режиме осуществляется драйверами. Их работу можно скорректировать в нужном направлении с помощью конфигурационного файла xorg.conf, который находится в каталоге /etc/X11:

Если по какой-либо причине этот файл отсутствует, то (после установки драйверов nvidia) его можно сгенерировать командой:

sudo nvidia-xconfig

после чего перезагрузить компьютер.

Данная команда автоматически обнаруживает и создает (или изменяет, если было уже создана) конфигурацию /etc/X11/xorg.conf, в соответствии с текущим аппаратным обеспечением.

При этом X Window сервер сам генерирует настройки для работы с монитором, клавиатурой и мышью.

Для более точной настройки параметров работы видеокарт можно использовать программы, входящие в пакет драйверов (nvidia-smi, nvidia-settings), а также ручную подстройку графической системы в GUI и конфигурационном файле xorg.conf.

Для изменений в файл xorg.conf можно использовать команду:

sudo nvidia-xconfig опции

а также ручное внесение изменений в текстовую часть этого файла.

Для избегания ошибок лучше создавать файл xorg.conf и вносить в него изменения именно командой nvidia-xconfig, а затем, в случае необходимости, лишь вносить в него небольшие изменения в текстовом редакторе.

X Window System, X11, Xlib, Xorg

X11 напрямую не относится к графической системе — в него включена система доставки сообщений, описание свойств окон и многое другое. Кроме того, поверх X11 реализована куча вещей, вообще не имеющих отношение к графике (например, буфер обмена и поддержка “drag-and-drop”). Я пишу о X11 тут только для общего понимания его места внутри X Window System. Надеюсь, когда-нибудь получится написать отдельный пост об X Window System, X11 и их странной архитектуре.

  • X11
    Коммуникационный протокол X Window System;
  • Xlib
    Библиотечная реализация клиентской части X Window System и основа для прикладной логики управления окнами. Используется тулкитами типа GTK+ или Qt. В нынешних приложениях напрямую практически не используется;
  • XCB
    The X protocol C-language Binding («привязки протокола X11 для языка C»). Иногда упоминается как альтернатива Xlib. Содержит реализацию большой части протокола X11. Программный интерфейс XCB гораздо более низкоуровневый, чем у той же Xlib, причём современный Xlib полностью построен поверх XCB. Будем считать, что просто вспомнили и расшифровали ещё одно сокращение;
  • Xorg
    Библиотечная реализация серверной части X Window System.

В архитектуру X11 была заложена возможность быть прозрачным для сетевой среды. Проще говоря, мы не можем полагаться на то, что клиентская и серверная части (X-сервер и X-клиент) находятся на одной машине, поэтому общение между ними должно быть реализовано посредством сети. На самом деле, современные среды рабочего стола в обычной конфигурации так не работают, потому что, кроме X11 в интерпроцессном взаимодействии участвуют, например, всякие DBus. Работа же по сетевому соединению достаточно интенсивна и порождает большое количество трафика. Когда клиентская и серверная часть X Window System находятся на одной машине, вместо общения посредством сетевого соединения они общаются через UNIX-сокет и это здорово снижает нагрузку на ядро.

К X Window System и ряду его расширений мы вернёмся чуть-чуть позже.

Troubleshooting

Problem with rendering

Try before you start the X server (replace with the name of your driver). Also, try building agpgart into the kernel instead of as a module.

Failed to load kernel module agpgart when running startx

error: » failed to load kernel module agpgart» after invoking `startx` is caused by presents of compiled agpgart in the kernel instead of as a module. Ignore it unless you’re having problems.

PCI card doesn’t work properly

Create a config file in /etc/X11/xorg.conf.d/; name it anything you want as long as it ends in .conf. Add the following to it:

FILE Adding ForcePCI Mode

Section "Device"
  Option "ForcePCIMode" "True"
EndSection

Как работает сервер X Window

Система X Window (X11 или просто X) предназначена для отображения базовой графики. Более продвинутые графические возможности для пользователя создаются приложениями графического окружения DE (в xubuntu это среда xfce4) .

X работает независимо от ядра операционной системы по модели клиент-сервер. Сервером является X-процесс, а графические приложения и программы, работающие с видеокартой (в том числе майнеры), являются его клиентами. Так как X является серверным процессом, то к нему можно подключаться удаленно, не используя дополнительных инструментов.

X-Window отвечает за базовый функционал графической среды на низком уровне. Для работы графического окружения в Linux еще нужны оконный и дисплейный менеджеры плюс (при необходимости) другие программы.

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

Посмотреть, какие компоненты на компьютере связаны с сервером X можно командой

apt-cache search xorg

Установка xorg при его отсутствии делается командой

sudo apt-get install xorg

Конфигурирование сервера X в консольном окружении делается командой

sudo X -configure

В результате в директории /etc/X11/ появится конфигурационный файл xorg.conf.

В системе, уже работающей в графическом окружении, при попытке выполнить эту команду появится ошибка Fatal server error: (EE) Server is already active for display 0. If this server is no longer running, remove /tmp/.X0-lock and start again.

Запуск X-сервера делается командой

startx

По команде

xwininfo

можно вывести информацию об окне, с которым работает сервер X:

По команде

 xdpyinfo | less

можно посмотреть информацию о версии x-сервера,и его возможностям.

Если на компьютере, работающей в консольном режиме запустить сервер X, то уже можно ограниченно работать с оконными программами, использовать мышь и клавиатуру.

Для пользователей, привыкших к Windows, а также для тех, кто использует компьютер в качестве домашней рабочей станции, удобнее пользоваться оконным графическим интерфейсом. При этом в некоторых дистрибутивах Linux могут возникать проблемы, связанные с необходимостью ручной конфигурации X-сервера.

Это связано с тем, что для видеокарт Nvidia для включения опций разгона и управления температурным режимом используются настройки файла xorg.conf из директории /etc/X11/, в то время как Ubuntu-подобные системы для этого используют конфигурационные файлы, находящиеся в каталоге /usr/share/X11/xorg.conf.d/

Продвинутая настройка требуется, если нужно использовать нестандартную конфигруацию, например, Internal GPU или видеокарту AMD для работы xserver (вывода видео), а GPU Nvidia — задействовать для CUDA-вычислений с включенными опциями разгона.

Разные способы настройки видеокарт nvidia, AMD и Intel осложняют их совместное использование в Linux. При работе в сложной конфигурации необходимо работать с конфигурационными файлами X-сервера, точно указывая параметры работы видеокарт, прописывая мониторы к которым они подключены, даже если они виртуальные.

Настройка

Примечание: Arch предоставляет файлы конфигурации по умолчанию в . Большинству пользователей никакая дополнительная настройка не нужна.

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

Через файлы .conf

Каталог хранит конфигурацию, специфичную для хоста (вашего компьютера). Вы можете свободно добавлять конфигурационные файлы сюда, но они обязательно должны оканчиваться на : файлы читаются в кодировке ASCII и по соглашению их имена должны начинаться с (две цифры и дефис, так, например, файл, начинающийся на 10, читается раньше 20). Эти файлы анализируются x-сервером при запуске и рассматриваются как часть традиционного конфигурационного файла

Обратите внимание, что при конфликтующей настройке последний прочитанный файл будет обработан. Поэтому наиболее общие файлы конфигурации должны быть упорядочены по имени

Конфигурационные записи в обрабатываются в конце.

Через файл xorg.conf

Xorg также можно настраивать через или . Чтобы сгенерировать основу
файла :

# Xorg :0 -configure

Это создает файл в , который можно скопировать в .

Совет: Если вы уже запустили X, тогда используйте другой дисплей, например .

Кроме того, ваш проприетарный видеодрайвер может поставляться с инструментом для автоматической настройки Xorg: смотрите статьи NVIDIA (Русский) или AMDGPU (Русский) для подробностей.

Примечание: Ключевые слова файла конфигурации не учитывают регистр, а символы «_» игнорируются. Большинство строк (включая имена опций) также нечувствительны к регистру и к пробелам, да к символам «_».

Introduction

What is hardware 3D acceleration and why do I want it?

With hardware 3D acceleration, three-dimensional rendering uses the graphics processor on the video card instead of taking up valuable CPU resources drawing 3D images. It’s also referred to as «hardware acceleration» instead of «software acceleration» because without this 3D acceleration the CPU is forced to draw everything itself using the Mesa software rendering libraries, which takes up quite a bit of processing power.

While Xorg typically supports 2D hardware acceleration, it often lacks hardware 3D acceleration. Three-dimensional hardware acceleration is valuable in situations requiring rendering of 3D objects such as games, 3D CAD, and modeling.

What is the DRM and how does it relate to regular Xorg?

The DRM (Direct Rendering Manager) is an enhancement to Xorg that adds 3D acceleration for cards by adding the kernel module necessary for direct rendering.

Purpose

This guide is for people who can’t get direct rendering working with just Xorg. The DRM works for the following drivers:

  • 3dfx
  • amdgpu
  • amdgpu-pro (closed source)
  • fglrx (closed source; deprecated)
  • intel
  • matrox
  • nouveau
  • nvidia-drivers (closed source)
  • rage128
  • radeon
  • radeonhd (deprecated)
  • mach64
  • sis300
  • via

Конфигурирование утилитой xrandr

Для сервера Xorg существуют функциональные модули расширений, упрощающие конфигурирование. Одним из таких расширений является утилита xrandr. Она позволяет без ручного копания в файле xorg.conf задать требуемую компоновку X-сервера, выполнив всю рутинную работу. При выполнении без аргументов утилита xrandr выводит информацию о текущей компоновке, включающей в себя данные о подключенных мониторах и доступных им разрешениях и режимах работы:

$ xrandr

Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 16384 x 16384
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
HDMI-A-0 disconnected (normal left inverted right x axis y axis)
HDMI-A-1 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 459mm x 296mm
1680x1050     59.88*+
1920x1080     60.00    59.94
1280x1024     75.02    60.02
1440x900      74.98    59.90
1280x960      60.00
1280x800      59.91
1152x864      75.00
1280x720      60.00    59.94
1024x768      75.03    70.07    60.00
832x624       74.55
800x600       72.19    75.00    60.32    56.25
720x480       60.00    59.94
640x480       75.00    72.81    66.67    60.00    59.94
720x400       70.08

Как видно из этого вывода, в системе активным является (обозначено символом звёздочки «*») разрешение 1680×1050.

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

$ xrandr --auto --output VGA-0 --mode 800x600 --right-of DVI-0

Здесь опция —auto включит все доступные мониторы. Опции —output и —mode указывают всем мониторам с матрицей VGA задействовать разрешение 800×600 точек. А опция —right-of определяет расположение VGA-монитора справа от монитора, подключенного через DVI-разъём.

Утилиту xrandr можно запускать автоматически во время запуска X-сервера. Для этого соответствующую команду нужно поместить в файл ~/.xprofile.

Какие здесь можно сделать выводы? Конфигурирование X-сервера — задача довольно сложная, но ещё сложнее вручную копаться в синтаксисе и формате файла xorg.conf. Поэтому для облегчения и экономии времени по настройке Xorg стоит использовать только утилиту xrandr или подобные ей. Вместе с тем, однако, нужно обязательно разобраться в основах работы конфигурации X-сервера, вручную настроив хотя бы пару компоновок. В дальнейшем это позволит смело и уверенно использовать такие утилиты как xrandr, при этом понимая, что и как они делают и, таким образом, более полно контролировать ситуацию.

Графическая установка драйвера Nvidia в Manjaro

Откройте настройки системы и перейдите в Manjaro Settings Manager.

Далее выберите пункт Конфигурация оборудования.

Откроется окно с устройствами компьютера и доступными для них драйверами. В данном случае есть только видеокарта Nvidia GeForce GT 630.

Пока ни одно из предложенных ПО не установлено. Чтобы система автоматически выбрала и установила проприетарный драйвер Nvidia, нажмите кнопку Auto Install Proprietary Driver. Будет запрошено подтверждение действия.

После этого начнётся процесс установки. Дождитесь его окончания и перезагрузите компьютер.

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

Будет также запрошено подтвеждение действия, но уже с указанием выбранного драйвера.

Когда установка драйвера Nvidia в Manjaro завершиться, перезагрузите компьютер.

Чтобы проверить успешность процесса, снова перейдите в Настройки → Конфигурация оборудования. Теперь в поле Установлен будет стоять галочка напротив video-nvidia.

Настройка видеокарты Linux c помощью xorg.conf

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

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

Создание Xorg.conf

Обычно, этот файл размещен в директории /etc/X11/xorg.conf. Но если в вашем дистрибутиве его нет, можно без проблем создать xorg.conf на основе журнала.

Сначала скопируйте файл журнала для новой сессии:

$ cp /var/log/Xorg.0.log /var/log/Xorg.1.log

$ Xorg -configure :1

Программа проанализирует файл лога, и на его основе создаст новый файл /etc/X11/xorg.conf учитывая конфигурацию вашей системы. В вашем домашнем каталоге появиться файл xorg.conf.new, который нужно скопировать в /etc/X11/

cp xorg.conf.new /etc/X11/

Синтаксис конфигурационного файла

Перед тем как переходить к настройке xorg.conf нужно разобраться в его синтаксисе, чтобы вы могли немного ориентироваться в самом файле. X сервер отвечает за все интерактивные связи во время сессии. Поэтому конфигурационный файл разбит на секции, несколько из них отвечают за работу с дисплеем, другие за мышь и клавиатуру. Рассмотрим основные секции файла:

  • Module – в этом разделе описываются подключение модулей, расширяющих функциональность видео драйвера. Например, GLX модуль добавляет 3D ускорение, а модули Type1 и Freetype используются для рендеринга шрифтов;
  • ServerLayout – в этой секции указаны имена трех самых необходимых устройств для каждой рабочей сессии Xorg – имена мыши, клавиатуры и экрана, которые могут использоваться в других местах файла;
  • InputDevice – в xorg.conf обычно есть две секции InputDevice, первая для мыши и вторая для клавиатуры. Большинство мышей работают отлично по умолчанию, здесь понадобиться что-то менять только если вы захотите добавить дополнительные возможности;
  • Monitor – в этой секции перечислены все настройки вашего экрана, один из наиболее важных параметров, частота горизонтальной развертки HorizSync и вертикального обновления VertRefresh, именно на основе них рассчитывается разрешение экрана. Также можно жестко задать разрешение с помощью строки ModeLine;
  • Device – тут перечислено все ваше графическое оборудование вместе с драйверами, которые используются. Чаще всего, это nv с открытым исходным кодом для NV >Настройка экрана xorg

Большинство параметров вашего экрана система получает с помощью технологии EDID или Extended Display Identification Data. Это информация, переданная дисплеем видеокарте. Здесь обычно содержится модель, производитель, такйминги, разрешение и размер дисплея. Xorg использует эти параметры для выбора оптимального разрешения экрана и глубины цвета.

Но иногда информация из EDID может быть неточной или неверной. Тогда вы можете установить нужные параметры вручную через xorg.conf. Но будьте осторожны, если ваш экран не поддерживает некоторые параметры, вы можете его повредить. Характеристики каждого отдельного устройства можно найти в интернете или же в инструкции от производителя.

Например, вот секция Monitor с настройкой вертикальной и горизонтальной частот, а также разрешения:

Identifier «Monitor0» VendorName «Unknown» ModelName «DFP-0» HorizSync 28.0 – 72.0 VertRefresh 43.0 – 60.0 ModeLine «1440x900_60.00» 106.5 1440 1520 1672 1904 900 901 904 932 -hsync +vsync

Добавив такие опции в секцию Device, вы можете отключить использование EDID:

Option «UseEDIDFreqs» «FALSE» Option «UseEDIDDpi» «FALSE» Option «ModeValidation» «NoEdidModes»

Наиболее важное значение – это две частоты, которые определяют диапазон работы устройства. Строка ModeLIne необязательна, поскольку она вычисляется автоматически, но если X сервер задает значения неверно, вы можете их прописать жестко в этой строке

Советы и рекомендации

This article or section needs expansion.

Автоматизация

В этом разделе перечислены утилиты для автоматизации операций с окнами (например, перемещение, изменение размера или фокусировка), ввода/вывода клавиатуры и мыши.

Утилита Пакет Документация Эмуляцияклавиш Операциис окнами Примечание
xautomation Да Нет Также содержит инструменты для очистки экрана. Не может эмулировать F13+.
xdo AUR Нет Да Небольшая утилита X для выполнения элементарных действий над окнами.
xdotool Да Да
xvkbd AUR Да Нет Виртуальная клавиатура для Xorg, также имеет параметр для отправки символов.

Вложенная X-сессия

This article or section needs expansion.

Для запуска вложенного сеанса другой среды рабочего стола:

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

Это запустит сеанс Window Maker в окне 1024 на 768 в рамках текущей X-сессии.

Для этого необходим установленный пакет .

Отключение и включение при необходимости устройств ввода

С помощью xinput вы можете временно отключить или включить устройства ввода. Это полезно, например, на системах, имеющих несколько мышек, таких как ThinkPads и, если вам хотелось бы использовать только одну, чтобы избежать нежелательные нажатия.

Установите пакет .

Найдите имя или ID устройства, которое вы хотите отключить:

$ xinput

Например для ноутбука Lenovo ThinkPad T500 вывод выглядит следующим образом:

$ 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   

Отключить устройство можно командой , где устройство это ID устройства или имя устройства, которое вы хотите отключить. В следующем примере мы отключим тачпад Synaptics с ID 10:

$ xinput --disable 10

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

$ xinput --enable 10

Так выглядит команда для выключения устройства (здесь тачпада) через его имя:

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

Закрытие приложения с помощью горячей клавиши

Привяжите скрипт к горячей клавише:

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

Зависимости: ,

Блокирование доступа к TTY

This article or section needs expansion.

Чтобы запретить доступ к tty в X, добавьте следующее в файл :

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

Запрет пользователю закрывать, перезапускать X

Чтобы запретить пользователю закрывать, перезапускать запущенный Xorg, добавьте следующее в файл :

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

Использование Xorg без прав суперпользователя

  • Запустить X через xinit; экранный менеджер не поддерживается

Если вам не удовлетворяют эти требования, повторно включите права суперпользователя в :

/etc/X11/Xwrapper.config
needs_root_rights = yes

Для получения дополнительной информации смотрите и .

Также GDM запускает Xorg без привилегий суперпользователя по умолчанию, когда используется KMS.

Неработающее перенаправление

Пока журналы пользователя Xorg хранятся в , они не включают вывод X-сессии. Чтобы повторно включить перенаправление, запустите X с флагом :

exec startx -- -keeptty > ~/.xorg.log 2>&1

Установка более новой версии драйвера из PPA

Для Ubuntu существует неофициальный репозиторий, в котором выкладываются новые версии драйверов, это драйверы собранные из исходников с сайта Nvidia упакованные в deb пакеты.

  1. Удаляем ранее установленный драйвер nvidia, если устанавливали:
    sudo apt-get purge nvidia*
  2. Подключаем репозиторий:

    sudo add-apt-repository ppa:graphics-driversppa
  3. Смотрим какие версии драйвера Nvidia есть в репозитории:

    sudo apt-get update && clear && apt-cache search nvidia--9 | grep 'binary driver'
  4. Устанавливаем драйвер (nvidia-версия) и программу для его настройки (nvidia-settings):

    sudo apt-get install nvidia-370 nvidia-settings
  5. Создаем xorg.conf:

    sudo nvidia-xconfig
  6. Перезагружаем компьютер.
  7. После перезагрузки проверяем какой видео драйвер используется:

    lspci -k | grep -EA2 'VGA|3D'

    Получится примерно такой вывод, в последней строке указано название используемого видео драйвера

    03:00.0 VGA compatible controller: NVIDIA Corporation G92  (rev a2)
        Subsystem: Elitegroup Computer Systems Device 1a0e
        Kernel driver in use: nvidia

Xorg без применения аппаратных драйверов

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

По умолчанию, файла конфигурации находится здесь: /etc/X11/xorg.conf , и отдельные секции могут быть разделены в отдельные файлы (вспомнить каталог). Также по умолчанию, в большинстве современных дистрибутивов xorg.conf не создаётся автоматически, а процесс конфигурирования полностью автоматизирован: X-сервер подбирает модули\драйверы на основе данных о мониторе и выставляет самые качественные параметры. Но достаточно часто бывает так, что автоматика не срабатывает и приходится самому создавать xorg.conf. Если файл xorg.conf существует в /etc/X11/ , то автоматика отключается и все настройки берутся из него.

Шаг 1. Создание базового xorg.conf

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

 # Xorg -configure

В процессе выполнения Xorg просканирует оборудование, с которым будет работать, опробует модули, и создаст в текущем каталоге файл xorg.conf.new с настройками по умолчанию для текущей версии Xorg и рабочей комбинацией оборудования.

Шаг 2. Опробование конфигурации

Теперь опробуем текущую конфигурацию — запустим иксы с этим конфигом:

 # Xorg -config xorg.conf.new

После ввода, запустится Xorg-сервер с параметрами из файла конфига. Если всё нормально, то текстовая консоль должна смениться чёрным экраном. Нажимаем комбинацию Ctrl + Alt + BackSpace и возвращаемся в консоль. Возможен вариант, что машина зависнет — пробуем перейти в соседнюю локальную консоль Alt + F1 или Alt + F2 и тд. и завершить работу X-сервера.

Если применить ключ -retro, то вместо пустого экрана появится курсор мыши и экранная заставка:

 # Xorg -retro -config xorg.conf.new 

Выход из режима по Ctrl + Alt + BackSpace , либо через переход в ту текстовую консоль, откуда был сделан запуск через Alt + F1 или Alt + F2 и тд., и нажатие на Ctrl + C.

Шаг 3. Правка конфигурации и опробование вместе с графической средой

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

Инсталлируем какую-нибудь графическую среду: GNOME, KDE, Xfce, twm и тд. В домашнем каталоге пользователя создаём файл .xinitrc . В зависимости от среды добавляем одну из таких команд (не забудьте раскомментировать нужную):

.xinitrc
#  exec lxsession
#  exec twm
#  exec ck-launch-session gnome-session
#  exec gnome-session
#  exec xfce4-session
#  exec enlightenment
#  exec e16
#  exec jwm
#  exec icewm
#  exex fluxbox
#  exec wmii
#  exec fvwm

и из консоли стартуем сессию:

 $ startx

Если всё нормально — должна запуститься графическая среда. Для завершения работы, через меню серды переходим по «Logout» или «Завершить сессию». Можно также воспользоваться комбинацией: Ctrl + Alt + BackSpace.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: