Linux для пользователя - Виктор Костромин
Шрифт:
Интервал:
Закладка:
Section "ServerLayout"
Identifier "MainSection"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Секция Screen определяет используемые монитор и видеоадаптер и задает режимы работы экрана. Она может иметь примерно такой вид:
Section " Screen"
Identifier "Screen0"
Device "Trident 3DImage985 (generic)"
Monitor "ViewSonic|ViewSonic G771"
DefaultColorDepth 24
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x400"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 32
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Как видите, она содержит указания на используемый графический адаптер (задается в секции Device с идентификатором "Matrox Millenium G200") и монитор (задается в секции Monitor с идентификатором "Monitor0").
Cекция Screen может содержать несколько подсекций (Subsection) Display, по одной такой подсекции на каждую глубину цвета. В каждой такой подсекции вы должны прописать те режимы монитора, которые будете использовать. Режимы задаются в строке Modes. Они указываются путем перечисления их наименований, взятых из секции Monitor (в точности в том виде, как эти названия указаны после слова Modeline). В одной строке можно перечислить любое число таких имен режимов. Первый из указанных режимов будет запускаться по умолчанию, в остальные можно будет переключаться (циклически), нажимая комбинацию клавиш ‹Ctrl›+‹Alt›+‹+› или ‹Ctrl›+‹Alt›+‹-› (используются клавиши ‹+› и ‹-› на цифровой клавиатуре).
В этой подсекции указывается также размер виртуального экрана, который будет использоваться сервером. Соответствующая строка имеет вид "Virtual xdim ydim", где xdim и ydim - размерности виртуального экрана. Например, вы можете иметь дисплей с разрешением 800* 600, а размер виртуального экрана задать равным 1024* 768. Тогда в каждый момент времени вы будете видеть на дисплее только часть полного изображения. Надо, однако, учитывать, что видеопамять должна хранить изображение, равное по размеру виртуальному экрану, а также то, что нежелательно занимать всю память хранением виртуального экрана, поскольку в этом случае не остается резерва на кэширование, что может повлечь потерю 30-40% производительности сервера.
Секция Monitor обычно начинается тремя строками, в которых указывается производитель монитора и его модель, однако если у вас только одна секция Monitor, то эти строки вполне могут иметь вид:
Identifier "Unknown"
VendorName "Unknown"
ModelName "Unknown"
Далее идут две очень важные строки, определяющие допустимые значения частот вертикальной и горизонтальной синхронизации. Для современных мульти-частотных мониторов эти строки могут иметь примерно такой вид:
HorizSync 30-70
VertRefresh 50-180
Для мульти-частотных мониторов с фиксированными частотами:
HorizSync 31.5, 35.2
VertRefresh 60, 65
Для мульти-частотных мониторов с несколькими интервалами допустимых частот:
HorizSync 15-25, 30-50
VertRefresh 40-50, 80-100
Частоты горизонтальной синхронизации задаются в килогерцах, частоты вертикальной синхронизации (обновления экрана) - в герцах.
Внимание!
Обязательно проверьте, что здесь указаны значения, соответствующие характеристикам вашего монитора, приведенным в документации.
Секций Monitor в файле может быть несколько, они различаются уникальными идентификаторами (первая строка в секции). В 4-й версии XFree86 перечисление режимов монитора в этой секции является необязательным, поскольку X-сервер использует встроенный список стандартных VESA-режимов. Однако явное задание режима в секции Monitor и не возбраняется, причем, если заданный вами режим получит такое же название, как один из стандартных режимов, будут использованы ваши установки. Встроенные режимы с именами, не встречающимися в секции Monitor, будут использоваться сами по себе.
Видеорежимы могут быть заданы также в секции Modes. Таких секций в файле тоже может быть несколько. Каждая из них задает некоторый набор видеорежимов, на который можно сослаться из секции Monitor, используя ключевое слово UseModes.
Режимы могут задаваться в двух эквивалентных форматах: в виде одной строки или несколькими строками. Вот пример задания одного и того же режима в этих двух форматах:
Modeline "640x480example" 25.175 640 664 760 800 480 491 493 525 -HSync +VSync
Mode "640x480example"
DotClock 25.175
Htimings 640 664 760 800
VTimings 480 491 493 525
Flags "-HSync +VSync"
EndMode
Первое слово в каждом формате (Modeline или Mode), как и слово EndMode, являются служебными. По ним X-сервер определяет, что данная строка или группа строк служат для задания видеорежима. Следующее слово (в кавычках) является названием данного режима. Вы можете выбрать это название по своему вкусу (хотя, как пишет Игорь Николаев [П9.1], "я бы не стал использовать в названии ничего, кроме цифр и букв латинского алфавита").
Следующее число (оно может быть дробным) задает тактовую частоту развертки (частоту вывода точек на экран) в мегагерцах.
Далее следуют четыре целых числа (группа Htimings), определяющих параметры строки, а, значит, разрешение по горизонтали. Первое из этих чисел задает число видимых точек в строке. Чтобы пояснить значение следующих трех чисел, надо иметь в виду, что началом строки на экране считается не самая левая точка в строке (она попадает в невидимую, затемненную область экрана), а левая граница видимого изображения. Поэтому первое число в этой группе определяет число точек от начала до конца видимой части строки. Второе число - число точек от начала строки до начала импульса горизонтальной синхронизации (в этот момент начинается перемещение электронного луча с правой границы экрана на левую).
Третье число - число тактов развертки от начала изображения до того момента, когда электронный луч будет готов к выводу следующей строки изображения. То есть разность третьего и второго чисел задает длительность интервала, отводимого на перевод электронного луча от правой (с точки зрения пользователя) границы экрана к левой границе. И, наконец, четвертое число - общее число тактов, затрачиваемых на формирование одной строки изображения (с учетом невидимой части и времени, необходимого для перевода луча на новую строку).
Аналогично формируются следующие 4 числа (VTimings) в описании формата, только в данном случае речь будет идти о числе строк на экране (видимых и невидимых) и импульсе вертикальной синхронизации (началом экрана считаем верхнюю границу видимой части изображения).
О последней группе параметров в описании видеорежима (группа Flags) мы поговорим позже, когда рассмотрим вопрос о том, как правильно сформировать значения числовых параметров.
В большинстве случаев нет необходимости в наличии секции Modes и строки UseModes, так как достаточно встроенного в сервер набора видеорежимов, соответствующих стандарту VESA. При запуске X-сервера он автоматически выбирает из возможных режимов лучший вариант, поддерживаемый монитором и видеокартой (решение принимается на основе значений, указанных в строках HorizSync и VertRefresh секции Monitor, так что очень важно, чтобы они были заданы корректно).
Следующая секция Device, описывает вашу видеоплату. По-видимому, самая важная строка в этой секции - указание на драйвер. У меня эта строка имеет вид:
Driver "mga"
В этой секции могут быть также указаны следующие данные:
• тип набора микросхем (Chipset);
• количество видеопамяти (указывается в килобайтах);
• допустимые значения тактовой частоты развертки (dot-clocks) или наименование используемого генератора тактовой частоты;
• тип RAMDAC (RAMDAC - это часть графического контроллера, отвечающая за преобразование изображения из цифровой в аналоговую форму). Эти параметры были, по-видимому, критичны для старых видеоплат, но для современных они перестали играть существенное значение. Большинство современных видеоплат имеют программируемые генераторы частот, которые могут задавать тактовую частоту развертки в очень широких пределах. Только в том случае, если у вас какой-то экзотический тип видеоплаты (особенно если вы знаете, что она поддерживает только ограниченное число частот генератора), надо позаботиться о корректном задании режимов в этой секции. В этом случае вначале воспользуйтесь программой SuperProbe для того, чтобы узнать нужные параметры, а затем пропишите полученные значения в секции Device.
Две секции InputDevice определяют мышь и клавиатуру (в 3-й версии XFree86 вместо секций InputDevice имелись секции: Keyboard и Pointer). Во-первых, здесь нужно указать тип клавиатуры. Помните, что обычная клавиатура для персональных компьютеров обозначается как "Generic 102-key PC (intl)" вместо предлагаемого по умолчанию варианта "Generic 101-key PC". Однако наиболее часто сейчас встречаются 104-клавишные клавиатуры, так что секция, определяющая конфигурацию клавиатуры должна содержать следующие строки: