За отрисовку всех графических элементов в Linux отвечает графический сервер. Он реализует интерфейс прослойки между драйверами видеокарты и различными программами, которые работают с графикой.
В самых современных дистрибутивах на замену Xorg серверу пришел новый дисплейный сервер Wayland. Но он все еще находится в активной разработке и не совсем готов к постоянному использованию. Поэтому Xorg все еще применяется в большинстве дистрибутивов.
После установки видеокарта работает достаточно хорошо и настроек по умолчанию в большинстве случаев хватает, но иногда нужно изменить некоторые параметры. Мы не будем рассматривать установку драйверов. В этой статье мы сосредоточимся на том, как выполняется настройка видеокарты linux через xorg.conf.
Настройка видеокарты 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 с открытым исходным кодом для NVIDIA, или fglrx для карт от AMD. Имя драйвера Intel будет зависеть от версии вашей карты, например, i810.
- Screen — здесь расположены все настройки вашего монитора и других графических устройств. Вы можете использовать эту секцию, например, для настройки нескольких экранов.
Настройка экрана xorg
Большинство параметров вашего экрана система получает с помощью технологии EDID или Extended Display Identification Data. Это информация, переданная дисплеем видеокарте. Здесь обычно содержится модель, производитель, такйминги, разрешение и размер дисплея. Xorg использует эти параметры для выбора оптимального разрешения экрана и глубины цвета.
Но иногда информация из EDID может быть неточной или неверной. Тогда вы можете установить нужные параметры вручную через xorg.conf. Но будьте осторожны, если ваш экран не поддерживает некоторые параметры, вы можете его повредить. Характеристики каждого отдельного устройства можно найти в интернете или же в инструкции от производителя.
Например, вот секция Monitor с настройкой вертикальной и горизонтальной частот, а также разрешения:
Добавив такие опции в секцию Device, вы можете отключить использование EDID:
Наиболее важное значение — это две частоты, которые определяют диапазон работы устройства. Строка ModeLIne необязательна, поскольку она вычисляется автоматически, но если X сервер задает значения неверно, вы можете их прописать жестко в этой строке.
Настройка видеокарты в 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» — этот параметр включает использование более совершенного метода двойной буферизации (используется для противостояния мерцанием).
Решение проблем xorg.conf
Если у вас не получается правильно настроить xorg.conf, нужно начать с самого меньшего. Используйте драйвер Vesa. Это стандартный видеодрайвер, а значит, его поддерживает любая видеокарта. Просто установите значение опции Driver — Vesa и попробуйте запустить X сервер. Вы должны увидеть свой рабочий стол.
Но драйвер Vesa работает намного медленнее, чем более современные драйвера. Если Vea позволяет запустить графическое окружение, значит проблема в вашем графическом драйвере или в настройке.
Попробуйте использовать утилиту lspci, чтобы посмотреть точную версию своей видеокарты, обычно для старых карт нужны более старые драйвера.
Если проблемы все еще возникают, посмотрите файл журнала, обычно он расположен в каталоге /var/log/ и имеет в расширении номер сессии, например, /var/log/Xorg.log.1 или /var/log/Xorg.log.0. Здесь будут выведены все сообщения об ошибках. Также вы можете запустить Xorg с опцией -verbose, чтобы сразу увидеть все ошибки. Одна из самых распространенных ошибок — это неверное выставленное разрешение экрана, вы можете попробовать закомментировать все строки ModeLine и перезапустить X сервер.