next up previous contents
Next: Ввод информации о видеоадаптере Up: Система X Window Previous: Автоматическое создание файла XF86Config

Конфигурирование XFree86

   

В этом разделе описывается, как создавать и редактировать файл XF86Config, конфигурирующий сервер XFree86. В большинстве случаев лучше всего будет начать с конфигурации, в которой используется низкое разрешение, например, 640x480. Такое разрешение поддерживается почти всеми видеоадаптерами и мониторами. После того, как программу XFree86 удастся заставить работать со стандартным (низким) разрешением, можно попробовать, изменяя конфигурацию, более полно использовать возможности имеющегося аппаратного обеспечения. Такой подход позволит убедиться, что система XFree86 в принципе работает на данном компьютере; это полезно сделать до того, как перед системой XFree86 будут поставлены отчасти сложные задачи для работы с высоким разрешением.

В дополнение к данной здесь информации, следует ознакомиться со следующими документами.

            Основным конфигурационным файлом системы XFree86 является файл /usr/X11R6/lib/X11/XF86Config. Этот файл содержит информацию об используемой мыши, параметры видеоадаптера и т.п. В качестве образца в дистрибутиве приводится файл XF86Config.eg. Для начала можно содержимое этого файла можно скопировать в файл XF86Config и отредактировать.

Формат файла XF86Config изложен в экранной документации к нему. С ней нужно ознакомиться (если это еще не сделано).

Далее здесь будет описываться некоторый образец файла XF86Config -- раздел за разделом. Этот файл может не быть в точности тем образцом, который включен в дистрибутив XFree86 и о котором упоминалось выше, однако структура его будет та же.

Следует иметь в виду, что формат файла XF86Config может меняться с каждой новой версией XFree86. Информацию о внесенных изменениях можно найти в документации, сопровождающей данную версию.

Не следует копировать себе приведенный здесь файл и пытаться использовать его. Конфигурационный файл, который не соответствует характеристикам аппаратного обеспечения, может выдать на монитор слишком высокую для него частоту. Имеются сообщения о случаях повреждения мониторов, особенно имеющих постоянную частоту развертки, при неправильной конфигурации файла XF86Config. Перед тем, как пытаться использовать файл XF86Config, следует абсолютно твердо убедиться, что он соответствует имеющемуся аппаратному обеспечению.

Каждый раздел файла XF86Config окружен парой строк со следующим синтаксисом: Section "название_раздела"...EndSection.

Первый раздел в файле XF86Config -- раздел Files (файлы), который выглядит следующим образом:gif

Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath    "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
Строка RgbPath указывает путь к базе данных цветов X11R6 RGB. Каждая строка FontPath указывает путь к каталогу, который содержит шрифты X11. Эти строки не надо изменять. Надо просто убедиться, что для каждого типа шрифтов, которые установлены в системе (т.е. для каждого подкаталога в каталоге /usr/X11R6/lib/X11/fonts), имеется своя строка FontPath.

Следующий раздел называется ServerFlags (флаги сервера). Он задает положение некоторых глобальных флагов (т.е. переменных со значениями типа "да" и "нет"). Как правило, этот раздел пуст.



Section "ServerFlags"
# Эту строку следует раскомментировать, если надо вызывать дамп
# ядра (core dump) в момент получения сигнала. Это может
# привести консоль в неработоспособное состояние, однако дает
# возможность лучше отследить состояние стека в дампе ядра, что
# облегчает поиск ошибок.
#
#    NoTrapSignals

# Эту строку надо раскомментировать, чтобы отменить действие
# комбинации клавиш <Crtl><Alt><BS>, которые прерывают работу
# сервера
#    DontZap
EndSection


В этом примере все строки в разделе ServerFlags закомментированы.

Следующий раздел -- Keyboard (клавиатура). Приведенный ниже пример является минимальной конфигурацией, которая должна работать на большинстве компьютеров. В файле XF86Config описывается, как производить модификацию этой конфигурации.gif

Section "Keyboard"
    Protocol    "Standard"
    AutoRepeat  500 5
    ServerNumLock
EndSection

Следующий раздел -- Pointer (координатное устройство). В нем указываются параметры мыши.

Section "Pointer"

    Protocol    "MouseSystems"
    Device      "/dev/mouse"

# Скорость обмена (Baudrate) и частота опроса (SampleRate)
# указаны для некоторых мышей фирмы Logitech
#    BaudRate   9600
#    SampleRate	150

# Опция Emulate3Buttons применяется для двухкнопочных
# мышей Microsoft
#    Emulate3Buttons

# Опция ChordMiddle применяется для некоторых трехкнопочных
# мышей фирмы Logitech
#    ChordMiddle

EndSection
На данный момент опции, которые, может быть, придется менять, это только опции Protocol и Device. Опция Protocol обозначает используемый протокол, имя которого не обязательно совпадает с названием фирмы-производителя. Система XFree86, работающая в системе Linux, распознает следующие протоколы интерфейса мыши: Для мышей Logitech, подключаемых к шине (bus mouse), должен использоваться протокол BusMouse. Более старые мыши фирмы Logitech используют протокол Logitech, а новые мыши этой фирмы с последовательным интерфейсом используют либо протокол Microsoft, либо Mouseman.

Опция Device указывает файл устройства (device file), через которое осуществляется доступ к мыши. В большинстве систем Linux это файл /dev/mouse, который обычно является ссылкой на соответствующий последовательный порт, например, /dev/cua0 для мышей с последовательным интерфейсом, и порт шины для мышей, подключаемых к шине. Во всяком случае, надо убедиться, что данное устройство (файл) существует.

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



Section "Monitor"

   Identifier  "CTX 5468 NI"

   # Приведены величины только для монитора CTX 5468NI!
   # Не пытайтесь применять их в своей конфигурации,
   # если у вас не та же самая модель!

   Bandwidth    60
   HorizSync    30-38,47-50
   VertRefresh  50-90

   # Режимы: Название  частота        гориз.          вертик.
   #                   тактового
   #                   генератора
   # (Modes:  Name     dotclock       horiz           vert)

   ModeLine "640x480"  25      640 664 760 800      480 491 493 525
   ModeLine "800x600"  36      800 824 896 1024     600 601 603 625
   ModeLine "1024x768" 65      1024 1088 1200 1328  768 783 789 818

EndSection


В опции Identifier указывается любая строка, в которой будет указано название монитора. Эта строка будет потом использоваться при обращении к разделу Monitor файла XF86Config.

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

    HorizSync    31.5, 35.2, 37.9, 35.5, 48.95
Эти величины должны быть перечислены в руководстве к монитору в разделе технических спецификаций. Если там их нет, можно связаться с производителем или продавцом монитора и получить эти данные от них.

Опция VertRefresh указывает частоту вертикальной развертки (или частоту вертикальной синхронизации) монитора в килогерцах. Подобно опции HorizSync, здесь может быть как диапазон, так и список дискретных значений. Этот список также должен быть в документации к монитору.

Параметры HorizSync и VertRefresh используются лишь для того, чтобы еще раз убедиться, что параметры разрешения монитора находятся в допустимых границах. Это уменьшает шансы, что монитор будет поврежден в результате выхода частоты сигнала за дозволенные границы.

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

ModeLine \cparam{name} \cparam{clock} \cparam{horiz-values} \cparam{vert-values}
где name -- произвольная строка, которая будет использоваться в дальнейшем (в этом же файле) при указании режима разрешения; dot-clock -- частота управляющего тактового генератора, которая ассоциируется с режимом разрешения -- т.е. та частота, с которой видеоадаптер должен посылать пикселы на экран при данном разрешении (обычно указывается в мегагерцах); horiz-values и vert-values -- группы по четыре числа каждая, которые указывают, когда должна стрелять электронная пушка монитора, и когда во время развертки подаются импульсы вертикальной и горизонтальной синхронизации.

Файл VideoModes.doc, включенный в дистрибутив XFree86, подробно описывает, как определять величины в строках ModeLine для каждого режима разрешения, поддерживаемого конкретным монитором. Значение clock должно соответствовать одному из значений частоты тактового генератора, которая поддерживается данным видеоадаптером. Эти значения будут далее указаны в файле XF86Config.

Информация о том, что нужно писать в строку ModeLine, может находиться еще в двух файлах: modeDB.txt и Monitors. Эти файлы расположены в каталоге /usr/X11R6/lib/X11/doc.

Начинать следует с тех значений в строке ModeLine, которые являются стандартными временными параметрами монитора для шины VESA. Файл ModeDB.txt содержит временные характеристики для стандартного разрешения монитора для шин VESA. Например, для видеорежима 640x480 эти стандартные значения таковы:



# 640x480@60Hz Неперемежаемый режим (Non-Interlaced mode)
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# name       clock   horizontal timing    vertical timing     flags
 "640x480"   25.175  640  664  760  800   480  491  493  525


Управляющая частота для этого режима равна 25.175 МГц, и эту частоту видеоадаптер должен поддерживать. Это описано ниже. Для того, чтобы внести данные параметры в файл XF86Config, надо создать в нем такую строку:

ModeLine "640x480" 25.175\ \ 640 664 760 800\ \ 480 491 493 525
В строке ModeLine аргумент name является произвольной строкой (здесь -- "640x480"). По устоявшемуся правилу, режимы именуются по их разрешению, однако с технической точки зрения здесь может стоять любая строка.

Для каждой строки ModeLine сервер проверяет спецификации режимов и убеждается, что они попадают в диапазоны, указанные для Bandwidth, HorizSync и VertRefresh. Если это вдруг оказывается не так, то при попытке запуска X сервер выдает сообщение об ошибке. Во-первых, используемая частота тактового генератора не должна быть больше, чем величина, используемая для опции Bandwidth. Однако во многих случаях будет безопасным использовать режим, ширина полосы (Bandwidth) которого несколько больше, чем может поддерживать монитор.

Если задание стандартных временных параметров монитора для шины VESA не дает эффекта (это можно узнать, попробовав работать с ними), то следует поискать значения параметров видеорежимов для конкретных моделей мониторов в файлах modeDB.txt и Monitors. Список моделей в этих файлах весьма велик, и из найденных там значений можно сформировать строки ModeLine самостоятельно. Следует только весьма точно идентифицировать модель своего монитора. Многие мониторы с экраном в 14 и 15 дюймов не поддерживают режимов с высоким разрешением, иногда даже режима 1024x768, при низкой частоте тактового генератора. Если в указанных файлах для данного типа монитора эти режимы не указаны, то возможно, что такой монитор их не поддерживает.

Если попытки найти информацию о своем мониторе для строки ModeLine окончились неудачей, можно следовать инструкциям, изложенным в файле VideoModes.doc, который включен в состав дистрибутива XFree86, и самостоятельно сформировать строку ModeLine из параметров, указанных в руководстве к монитору. Вероятно, что производительность при ручной установке параметров будет варьироваться, однако при отсутствии другой информации данный метод может служить хорошей начальной точкой для поиска нужных значений параметров. Также в файле VideoModes.doc весьма подробно описывается формат строки ModeLine и другие аспекты работы сервера XFree86.

Наконец, если найденные значения, стоящие в строке ModeLine, лишь немного отличаются от истинных, можно будет определить, насколько их следует скорректировать, чтобы получить желаемый результат. Например, если образ экрана XFree86 немного сдвинут, или если изображение "прокручивается", то нужно исправить соответствующие значения, следуя инструкциям в файле VideoModes.doc. Следует проверить также положение ручек регулировки на самом мониторе. Во многих случаях после запуска XFree86 надо будет изменить горизонтальный и вертикальный размер изображения, чтобы изображение хорошо разместилось на экране.

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

Следующий раздел файла XF86Config называется Device (устройство). Здесь указываются параметры видеоадаптера. Пример:

Section "Device"
        Identifier "#9 GXE 64"

        # Пока раздел пуст; мы заполним его позднее.

EndSection

Здесь указываются свойства конкретного видеоадаптера. В поле Identifier указывается произвольная строка, которая будет использоваться далее для обозначения данного видеоадаптера.

Поначалу в этот раздел не обязательно что-либо включать, помимо строки Identifier. Далее параметры видеоадаптера будут определены с помощью X-сервера и занесены в этот раздел. Сервер XFree86 может определять тип микросхем видеоадаптера, частоты тактового генератора, RAMDAC и объем оперативной видеопамяти. Это описано в разд. 5.6.

Однако, прежде чем перейти к этому, требуется закончить составление файла XF86Config. Следующий раздел называется Screen (экран), в котором указывается, какие комбинации монитора и видеоадаптера используются для конкретных серверов. Приведем пример.

 Section "Screen"
     Driver     "Accel"
     Device     "#9 GXE 64"
     Monitor    "CTX 5468 NI"
     Subsection "Display"
         Depth      16
         Modes      "1024x768" "800x600" "640x480"
         ViewPort   0 0
         Virtual    1024 768
     EndSubsection
 EndSection

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

  • Accel: для серверов XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX и XF86_W32;
  • SVGA: для сервера XF86_SVGA;
  • VGA16: для сервера XF86_VGA16;
  • VGA2: для сервера XF86_Mono;
  • Mono: для монохромных не-VGA драйверов серверов XF86_Mono и XF86_VGA16.
Надо убедиться, что файл /usr/X11R6/bin/X является символической ссылкой на данный сервер.

В строке Device указывается значение параметра Identifier из раздела Device, которое соответствует используемому для данного сервера видеоадаптеру. Выше был создан раздел Device со следующей строкой:

Identifier "#9 GXE 64"
Поэтому здесь в строчке Device используется строка "#9 GXE 64".

Аналогично, в строчке Monitor указывается имя того раздела Monitor, параметры из которого будут браться для данного сервера. В данном примере значением параметра Identifier в разделе Monitor (см. выше) было "CTX 5468 NI".

Некоторые свойства сервера XFree86, соответствующие используемой комбинации видеоадаптера и монитора, описываются в подразделе "Дисплей" (Subsection "Display"). Все эти параметры подробно описаны в файле XF86Config. Большинство из них не является обязательными для работы системы.

Надо знать о следующих опциях.

  • Depth (глубина). Эта опция определяет число цветовых плоскостей, т.е. число битов на один пиксел. Обычно значением Depth устанавливается 16. Для сервера VGA16 будет использоваться значение 4, а для монохромного сервера -- 1. Если ускоренный видеоадаптер имеет достаточно видеопамяти, чтобы поддерживать большее число битов на один пиксел, то можно установить значением Depth числа 24 или 32. Если при этом возникают проблемы, следует вернуться к значению 16 и пытаться разрешить эту проблему позднее.
  • Modes (режимы). Здесь дается список имен режимов, которые были указаны в строках ModeLine раздела Monitor. Выше в строках ModeLine использовались названия "1024x768", "800x600" и "640x480". Следовательно, здесь используется следующая строка Modes:
             Modes    "1024x768" "800x600" "640x480"
    Первой в этой строке указывается режим, который используется по умолчанию при запуске XFree86. После того, как система XFree86 запущена, можно переключаться между указанными здесь режимами, используя комбинации клавиш Ctrl-Alt-Numeric + и Ctrl-Alt-Numeric -.

    Лучше всего будет при начальном конфигурировании XFree86 использовать режимы с более низким разрешением, например, 640x480, которые реализуются почти любыми устройствами. После того, как эта начальная конфигурация заработала, можно попытаться внести изменения в файл XF86Config, чтобы задействовать режимы с более высоким разрешением.

  • Virtual. Эта опция задает виртуальный размер рабочего стола (virtual desktop size). Система XFree86 может использовать дополнительную память, установленную на видеоадаптере, с тем, чтобы увеличить размер рабочего стола. Когда указатель мыши придвигается к краю экрана, рабочий стол сдвигается, и взгляду открывается новая часть рабочего стола. Даже если сервер работает при относительно низком разрешении, например, 800x600, можно установить значение Virtual, которое будет соответствовать полному разрешению, поддерживаемому видеоадаптером. Видеоадаптер с одним мегабайтом видеопамяти может поддерживать режим 1024x768 с глубиной 8 бит на пиксел, с двумя мегабайтами -- режим 1280x1024 с глубиной 8, или 1024x768 с глубиной 16 бит на пиксел. Разумеется, вся эта область не будет видна сразу, однако ее можно будет использовать.

    Возможности опции Virtual весьма ограничены. Для создания "настоящего" виртуального рабочего стола сервер окон fvwm и подобные ему позволяют иметь большие виртуальные поверхности, спрятанные в окнах, и использовать другие приемы, вместо того, чтобы сохранять рабочий стол целиком в видеопамяти. Более подробно об этом написано в экранной документации к программе fvwm. Многие системы Linux использую сервер fvwm по умолчанию.

  • ViewPort. Если указанная выше опция Virtual используется, то опция ViewPort задает для нее координаты верхнего левого края виртуального рабочего стола при запуске XFree86. Часто используется ViewPort 0 0. Если эта опция не указана, то рабочий стол будет установлен по центру виртуального дисплея, что может в некоторых случаях быть нежелательным.

Для этого раздела существует еще много других опций; их полное описание можно найти в экранной документации к XF86Config. Как показывает практика, для того, чтобы система XFree86 заработала, указывать эти опции не обязательно.


next up previous contents
Next: Ввод информации о видеоадаптере Up: Система X Window Previous: Автоматическое создание файла XF86Config

root
Sun Aug 29 12:01:30 MSD 1999