Журнал LinuxFormat - перейти на главную

LXF117:Xorg.conf

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Xorg.conf изнутри

Безупречная графика: немного ручной правки конфигурационных файлов, много советов от Грэма Моррисона.

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

Во многих смыслах, на фоне установленной системы xorg.conf выглядит как руины утраченного здания на месте археологических раскопок. Он содержит останки того, что некогда было сложным и запутанным файлом настройки, использовавшим язык и синтаксис давно ушедших дней. С годами эти древние структуры удалялись, переделывались, подстраивались и оттачивались несколькими поколениями пользователей, систем и устройств. И, наконец, настал момент, когда многие современные дистрибутивы (типа Fedora 10) отказались от xorg.conf, предпочтя преимущества автоматической настройки, скрытой в новых версиях X.org.

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

Основная причина, по которой может понадобиться редактирование файла xorg.conf – это создание графических настроек, ориентированных на вашу систему. Сюда входят установка родного разрешения для вашего монитора или включение одновременного вывода на два дисплея. Можно также изменить параметры ваших устройств, включив проприетарные функции, вроде тени курсора или повышения частоты обновления экрана. Xorg.conf обычно расположен в каталоге /etc/X11. Если его не существует (как в Fedora 10), или имеющийся файл слишком скуден, чтобы иметь хоть какое-то применение, то лучший способ создать новый – это переключиться в командную строку под root и набрать Xorg -configure. X.org подгрузит все доступные видеодрайверы, попробует их на вашей машине и создаст файл xorg.conf.new в вашем домашнем каталоге. Если вы установили проприетарный драйвер Nvidia вручную, то инсталлятор может сам создать новый файл xorg.conf.

Ориентация

Определитесь, что надо делать с файлом, до выполнения серьезных изменений.

Прежде чем погружаться в детали, научимся распознавать некоторые особенности xorg.conf, на случай неудачи. Главное, что следует уяснить – то, что он разбит на несколько разделов, и большинство из них не работает с дисплеем напрямую. Связано это с тем, что исторически X-сервер отвечал за все содержимое интерактивной сессии между «безмозглым» терминалом и большой ЭВМ, которая и выполняла полезную работу. А потому в нем необходимо было скомбинировать подпрограммы дисплея с теми, что управляют устройствами типа клавиатуры и мыши. Он выполняет эти же функции и сегодня.

  1. Module В данном разделе находится список подключаемых модулей, используемых X.org для расширения функциональности дисплея. Например, модуль ‘glx’ добавляет к рабочему столу 3D-ускорение, а модули ‘type1’ и ‘freetype’ используются для отрисовки шрифтов.
  2. ServerLayout Здесь объединяются вместе три периферийных устройства, необходимых для работы сессии X.org. Этот раздел содержит имена клавиатуры, мыши и настройки экрана, заданной где-то внутри файла xorg.conf.
  3. InputDevice Вообще в xorg.conf обычно имеется два раздела устройств ввода: один для мыши, а другой для клавиатуры. Большинство мышей и клавиатур совместимы с используемыми протоколами, то есть должны работать без внесения особых изменений. Из данного правила есть исключение: это когда необходимо задействовать добавочные функции вашей периферии, например, лишние кнопки мыши или клавиши на клавиатуре.
  4. Monitor В этом разделе приводятся спецификации вашего монитора. Наиболее важные параметры – частоты развертки по вертикали и горизонтали, поскольку они используются для вычисления допустимых разрешений. Специфические разрешения для вашего дисплея могут быть созданы при помощи инструкции ‘ModeLine’.
  5. Device Здесь указывается ваша видеокарта, а также драйвер, который ее поддерживает. Обычно это ‘nv’ для открытого драйвера Nvidia или ‘nvidia’ для проприетарного, ‘ati’ для свободного драйвера ATI и ‘fglrx’ для проприетарного. Драйвера Intel – открытые, но зависят от вашего устройства. Например, ‘i810’ – популярный вариант для встроенных устройств Intel 845.
  6. Screen Данный раздел объединяет ваше графическое устройство и настройки монитора в то, что X.org называет ‘screen’ [экран]. Например, вы можете создать два экрана для системы с двумя мониторами.

Поправим монитор


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

Но иногда EDID изготовителя бывает неточен или неполон, и может обнаружиться, что разрешения, которое, как вы точно знаете, поддерживается аппаратно, нет на вашей панели настроек экрана. В таком случае добавьте возможности своего монитора в файл xorg.conf вручную – но будьте осторожны! Если вы назначите разрешение, не поддерживаемое вашим устройством, есть шанс его испортить [на самом деле это уже много лет не так, все современные мониторы имеют встроенную защиту от задания неправильных параметров развертки]. Поэтому, прежде чем начать, убедитесь, что обладаете верными спецификациями и что вы не отклонились от них, каким заманчивым ни казалось бы разрешение экрана 4000 × 2000.

Вот пример раздела 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

Как можно видеть, строки HorizSync и VertRefresh определяют области, в которых будет работать устройство, и это два наиболее важных параметра для создания корректной конфигурации. Строка ModeLine не обязательна, поскольку X.org вычисляет ее содержимое автоматически. Но если у вас есть проблемы с получением верного экранного разрешения, ModeLine поможет жестко «прошить» его. Эти строки требуют глубоких знаний принципов работы монитора, и их практически невозможно определить вручную [это утверждение абсолютно не соответствует действительности, на просторах интернета можно обнаружить множество инструкций в том числе и на русском языке, все что необходимо это навыки по работе с калькулятором]. Однако есть несколько утилит, способных рассчитать для вас соответствующие значения: например, зайдите на http://xtiming.sourceforge.net/cgi-bin/xtiming.pl, где вы сможете ввести спецификации монитора и требуемое разрешение, чтобы создать ModeLine для вашего устройства.

Wiki MythTV также содержит полезную базу данных определений ModeLine для распространенных устройств вывода, которые особенно полезны, если вы пытаетесь приспособить в качестве монитора телевизор. см. http://www.mythtv.org/wiki/Modeline_Database.

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

Xorg.conf позволяет влезть во внутренности вашего видеоустройства.

Как и в секции Monitor, в разделе Device можно применить множество поправок и добавок, влияющих на производительность вашей видеокарты. Однако большая часть этих уловок специфична для возможностей и производителя конкретного устройства. Мы обнаружили, что карты Nvidia более распространены, и многие пользователи Linux предпочитают проприетарный драйвер, ради максимальной производительности. Впрочем, иные используют и проприетарные драйвера от ATI, и открытые драйвера Intel. Однако ни один из этих производителей не предлагает такой же уровень настраиваемости в xorg.conf, как Nvidia. Пользователи ATI, например, могут менять параметры производительности и настройки своей карты через инструмент командной строки aticonfig или панель настройки Catalyst Control Centre. На другом конце шкалы – устройства и драйвера Intel: они разработаны не для высокой производительности, но тоже предоставляют несколько опций.

Nvidia

Проприетарные драйверы Nvidia предлагают удивительный набор параметров настройки, применимых в xorg.conf. Каждая опция представляет собой строку текста, предназначенную для разделов Device или Screen. Ниже приведен наш выбор лучших опций, с которыми стоит поэкспериментировать.

  • Option “NoLogo” “true” Подавляет вывод логотипа Nvidia, появляющегося при инициализации драйвера. Это создает ощущение более плавной загрузки компьютера.
  • Option “LogoPath” “string” Если вас бесит логотип Nvidia как таковой, поставьте вместо него что-то вам милое – например, вид на вулкан Этна или портрет любимого пуделя. Просто замените string в приведенной команде на путь к PNG-файлу.
  • Option “CursorShadow” “true” Если курсор выглядит инородным на рабочем столе с включенным Compiz с тенями и прозрачностью, выход есть. Данная опция заставит карту Nvidia отрисовывать тень указателя мыши. Два добавочных параметра, CursorShadowXOffset и CursorShadowYOffset, определяют положение тени относительно курсора.
  • Option “Coolbits” “true” Мы отметим эту опцию как экспериментальную: обращайтесь к ней, только если уверены в возможностях вашей системы. Дело в том, что она открывает потенциал по разгону вашей карты, разрешая ручное управление быстродействием процессора и памяти. Она может выжать из вашей карты все до последнего треугольника, но в случае вашей ошибки может и повредить устройство. Опции разгона появляются в приложении nvidia-settings.
  • Option “DPI” “75 x 85” Неверно установленные настройки DPI (число точек на дюйм) могут повлиять на размер и вид экранных шрифтов. Обычно X.org вычисляет корректный DPI для вашего дисплея на основании данных EDID, предоставляемых монитором, но они бывают неверны или неточны. Тогда ручная установка данной опции переопределит значение. Разрешение экрана 1440 × 900 при физических размерах 16 × 10 дюймов даст DPI (1,440/16) × (900/10) = 90 × 90.

Intel

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

Самой важной опцией, на наш взгляд, является включение в X.org новой архитектуры ускорения ‘EXA’, путем добавления в раздел Device следующего:

  • Option “AccelMethod” “EXA” Это особенно полезно для новых композиционных эффектов KDE 4 и поможет улучшить частоту обновления экрана на многих проблемных встроенных контроллерах Intel 943/940. Попробуйте также установить true или false для ExaNoComposite и проверить, не вырастет ли скорость.

Следующие две опции могут также улучшить производительность и качество 3D OpenGL, и даже помочь пользователям устройств ATI и Nvidia:

  • Option “MigrationHeuristic” “greedy” и Option “TripleBuffer” “true” Название опции MigrationHeuristic, пожалуй, звучит лучше всех нами рассмотренных: оно напоминает беседы среднего руководящего звена о сокращении по собственному желанию. Но на самом деле параметр управляет количеством пиксельных данных, перемещаемых в видеопамять. Видеопамять работает быстрее, чем стандартное ОЗУ, поэтому greedy улучшает быстродействие ценой сокращения объема памяти для большего числа текстур. Но при обычном настольном использовании проблем быть не должно. Опция TripleBuffer включает более эффективный метод двойной буферизации (прием, используемый для устранения мерцания при обновлении экрана).

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

Борьба с проблемами Xorg.conf

Если не удается получить хоть какуюто работающую конфигурацию дисплея, обратитесь к «наименьшему общему знаменателю», то есть используйте нечто по имени Vesa. Vesa – это древний стандарт для графических устройств ПК, и практически любая карта должна его поддерживать. Просто замените строку Driver в разделе Device на vesa и перезапустите X-сервер. По крайней мере, рабочий стол действительно заработает. Но экраны Vesa медлительны по сравнению с остальными, и хотя они и устраняют ошибки, это не есть долгосрочное решение. Если Vesa все отображает, то, похоже, проблема в выборе драйвера или его настройке. Попытайтесь ввести в командной строке lspci и найдите ваше графическое устройство в списке после ‘VGA compatible controller’. Это может навести на мысли о должном драйвере. Следует отметить, что старые устройства от Nvidia и ATI требуют других драйверов, по сравнению с новыми (‘nv’ для старых карт Nvidia и ‘radeon’ для старых моделей ATI).

Если проблемы остаются, обратитесь к файлу журнала X.org. Обычно он расположен в каталоге /var/log и называется Xorg.0.log. Цифра в конце имени файла – это номер сессии; почти всегда это 0, но бывает также и 1. В нем приведен каждый шаг, предпринятый X.org при создании дисплея, и если встретились проблемы, то они будут здесь описаны. Можно также попробовать запустить X.org с аргументом Xorg --verbose – тогда в журнале приводится больше информации. Наиболее распространенная ошибка на данном этапе – некорректное определение режима экрана в xorg.conf. Рекомендуем закомментировать все строки ‘ModeLine’, поместив в их начало символ #, и попытаться запустить X.org в самой простой конфигурации.

Nvidia TwinView

Имеется два стандартных метода расширения одного рабочего стола на более чем один монитор: Xinerama, являющаяся частью X.org, и TwinView, работающий только с устройствами Nvidia. TwinView на вашей карте Nvidia легко включить с помощью замечательной программы nvidia-settings. Но это работает не всегда и не предоставляет управления разрешением. Для создания конфигурации TwinView из файл xorg.conf, сначала убедитесь, что для обоих подключенных мониторов имеется раздел ‘Screen’. Если мониторы одинаковые, достаточно будет одного раздела. Затем добавьте новый раздел в файл xorg.conf – он должен выглядеть так:

 Section “ServerFlags”
  Option “Xinerama” “0”
 EndSection

Здесь отключается Xinerama, чтобы исключить конфликты между двумя методами отображения на два монитора. Теперь нужно добавить несколько родных для Nvidia опций, а располагаться они должны где-то в разделе Screen.

  Option “TwinView” “1”
  Option “metamodes” “DFP-0:1440x900_60.00 +0+0, DFP-1:1440x900_60.00 +1440+0”

В первой строке включается TwinView от Nvidia, а вторая строка используется для создания виртуального экрана из двух подключенных мониторов. В нашем примере, это две плоские панели (DFP-0: и DFP-1:), подключенные при помощи двух DVI-кабелей и работающие с разрешением 1440 × 900. Мы используем режим экрана, определенный в разделе Monitor файла xorg.conf, а два значения, предваренные знаком + – это смещения. Для левого монитора смещение по вертикали и горизонтали нулевое. Для правого монитора смещение равно горизонтальному разрешению первого.

Персональные инструменты
купить
подписаться
Яндекс.Метрика