Original of this documet is at
http://knot.pu.ru/faq/xfaq.html
--------------------------------------------------------------- Этот текст описывает настройку монитора в Xfree. Его можно распространять как FAQ, не забывая указать следующее:
  1. Текст распространяется на условиях Copyleft GPL. Специально оговариваю, что если Вам приспичило процитировать его в какой либо книге, то Вы обязаны сделать доступной для копирования на машинном носителе саму книгу по цене носителя.

  2. Первоначально читаемый Вами текст написал Игорь Николаев ([email protected]), каноническое место этого FAQ здесь: URL="http://knot.pu.ru/faq/xfaq.html".

  3. Я очень прошу не обращаться как с вопросами по форме, так и по сути изложенного процесса по E-mail. Лучше это сделать в телеконференциях ru.unix, ru.networks, su.hardware... Эти конференции читают квалифицированные специалисты. Вам сразу помогут.

  4. С другой стороны, если у Вас предложения по содержанию - то не смущаясь пишите мне в кои8-r предложения/добавления/изменения. Я читаю Всю почту, которую легко прочитать.

  5. Этот текст вначале писался как письмо за жизнь для молодого специалиста. Только потом он был приближен к теме обсуждения. Сделайте на это скидку.

Настройка режима монитора в XFree86.

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

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

Процесс описан применительно к широко распространгнным мониторам среднего качества. Можно говорить, что это мониторы с невысокой ценой (до $1000 за новый) и последних пяти лет выпуска. Процесс установки экзотических мониторов отличается большей сложностью. Это относится как к устаревшим моделям (мониторы с набором фиксированных частот развгртки, с нестандартным для Вашего компьютера интерфейсом), так и к хорошим моделям с большим количеством функций (к примеру мониторы с регулировкой муара, демонстрационные мониторы).

  1. Общее понимание.

    Мы настраиваем X server. Это та программа, которая показывает Вам на экране монитора картинку. Именно она в Xwindow называется сервером. А разные там оконные менеджеры (fvwm, twm, motif) и прикладные программы, такие как netscape, xterm etc - клиенты этого сервера.

    Кроме монитора, unix-box и Xfree86 нам потребуется простой калькулятор. Извините, но экран будет занят - поэтому отдельный от машины калькулятор.

    Предполагается, что в Вашем unix-box имеется видеокарта или видеоадаптер. (Картой обычно называют отдельную плату в машине, которую можно вынуть и посмотреть. Адаптером - всг равно как выполненную подсистему машины, имеющую с разных сторон два разных интерфейса. Это почти то же самое, что контроллер. Но контроллер подразумевает наличие чего то подчингнного по отношению к процессору, несимметричных отношений. Я буду использовать все три термина как попадгтся - потому как для видеосистемы они все корректны.)

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

    Видеоадаптер передагт в монитор три сигнала: видео сигнал ( RGB ), строчную синхронизацию (HS), кадровую синхронизацию(VS).

    Монитор делает две независимых вещи: развгртку луча и изображение картинки. Важно понять, что это вещи независимые - может быть картинка без развгртки и развгртка без картинки. Картинку монитор не анализирует вообще. Параметры развгртки же анализируются монитором и для него существенно более важны, чем картинка.

  2. Видеоадаптер.

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

    Процессор видеоадаптера выполняет команды, поступающие от центрального процессора. Он как таковой есть в платах графических акселераторов - тех которые некоторые операции (такие операции часто называются графическими примитивами) выполняют сами. В простых платах процессор выполняет функции адаптера между шиной компьютера (ISA, MCA, VLB, PCI в случае PC-AT) и внутренней шиной видеоадаптера (реально это шина доступа к памяти плюс несколько управляющих регистров).

    Биос представляет из себя ПЗУшку с небольшой программой, выполняемой центральным процессором компьютера с нашей видеокартой при запуске компьютера. Содержит обычно несколько команд по инициализации регистров видеокарты, тестирования, установки стартового режима etc. Иногда удавалось запустить под Xwindow карты с неисправным (физически вынутым) биос. Само это слово просто "отсутствующий перевод" от bios = basic input/output system. Пыво?

    Обратите внимание, что система Xwindow не использует различные видеорежимы, доступные после первоначальной загрузки компьютера. То есть всякие там EGA, VGA или VESA режимы, поддерживаемые в DOS или "прерывания BIOS" объявляются фикцией и не используются. Xwindow знает как работает процессор видеоадаптера и программирует его напрямую. Биос используется только для начальной инициализации.

    ЦАП. Это правильный перевод слова DAC (digital/analog converter), то есть цифро-аналоговый преобразователь. ЦАП занимается тем, что из содержимого памяти делает RGB сигнал. На самом деле в видеокарте ЦАП делает ещг множество вещей, связанных с преобразованиями палитры, регенерацией памяти, импульсной коррекцией видеосигнала etc. Хорошая видеокарта обычно имеет отдельный ярко выраженный ЦАП, составляющий изрядную часть стоимости.

    Единственным существенным ограничением у карты является верхняя тактовая частота ЦАПа. Хорошо, когда она за 200MHz. Плохо, когда 50MHz. Возможны варианты. Обычно хорошая карта имеет внешний ЦАП. Карта с хорошим ЦАПом лучше, чем с накрученным акселератором, но без ЦАПа. Хорошая карта стоит больше $150. Sorry. Но для монитора в 15" можно пережить и на простой карте. Плохое качество ЦАПа может проявляется как непрорисовка одиночных точек, странная структура на фоне, который должен быть однородным, дрожание сигнала etc.

    Память. Сейчас расплодилось большое количество различных типов видеопамяти. Для нас здесь интересно только ег количество. Вы должны понимать, что вся картинка, которая есть на экране, содержится в памяти. Соответственно, чем больше памяти - тем больше точек на экране Вы можете отобразить при одной и той же глубине цвета. Если Вы работаете в режиме 256 цветов, то каждая точка занимает один байт и соответственно, при памяти в один мегабайт наилучший размер картинки на экране для Вас будет ограничен размерами примерно 1100x880 (исходя из того, что отношение сторон экрана 4x3 и произведение этих чисел при одном мегабайте не может быть более 2**20). Соответственно для 65K цветов (depth=16) при одном мегабайте точек не будет более 2**19.

    Так как сейчас память стоит недорого, то крайне желательно иметь видеокарту как минимум с двумя мегабайтами. Иногда небольшое количество памяти (одна-две строки) отъедается X сервером под свои нужды. Этим обычно страдают акселерированные платы. Тип памяти для нас не имеет решающего значения, если мы не занимаемся on-line real time графикой. Если же Вы ей занимаетесь, то Вы вряд ли будете использовать для своей работы PC и экономить на видеопамяти и вообще на видеоподсистеме в целом :-)

    Интерфейс между ЦАП и памятью определяет следующее ограничение: XFree позволяет выставить *любое* соотношение количества строк в кадре и любое кратное (2**n) количество точек в строке. Где n зависит от карты и режима и лежит в диапазоне 3..7. Иначе говоря, число точек в строке должно делится на 8, 16, 32, 64, 128 - зависит от видеокарты и режима.

    Вы должны идентифицировать видеоадаптер и записать, как называется чип (микросхема) на которой он собран. Если у Вас это не получается - то попросите, пожалуйста, специалиста. Проверьте, что этот чип поддерживается системой Xfree. В противном случае Вам лучше заменить видеоадаптер. Альтернативой является написание для Вашей карты нового драйвера. Запишите также, сколько у Вас видеопамяти, что написано на ЦАП и на тактовом генераторе. Иногда эта информация требуется для настроек.

    Иногда видеокарта пытается сгенерить какое-нибудь прерывание. Прерывания от видеокарт остались как тяжглое наследство от старинного EGA адаптера. Этот адаптер генерировал прерывания по каждому кадровому синхроимпульсу. По видимости, у разработчиков чесались руки что-нибудь завести на ламель IRQ2 - чтобы ег никто не занял (именно в машине IBM PC/AT появилось как EGA, так и каскадирование контроллера прерываний).

    Однако нам не надо прерываний от видеокарты. Они просто никому не нужны. В лучшем случае ваша машина будет дгргаться семьдесят раз в секунду. В худшем Вы когда-нибудь пересечгтесь с сетевой или звуковой картой. Наверное, Вам этого не надо. Для ISA карт видеоадаптеры пытаются подгргать ламельку IRQ2 на шине, которая заведена на сигнал IRQ9 контроллера прерываний. Попробуйте найти на карте перемычку, отвечающую за прерывания и отключить ег. Иногда на карте нет микрика отключения IRQ. Если Вы имеете некоторые навыки работы с ножом :-) и карта не на гарантии то аккуратно перережьте ламельку (если держать карту разъгмом к себе - то четвгртая справа, между двумя питаниями). Для PCI попробуйте заткнуть прерывание от слота с видеокартой в BIOS (если поддерживает).

  3. Монитор. Флаги настроек.

    Как уже говорилось, монитор принимает от видеоадаптера три сигнала: видео сигнал ( RGB ), строчную синхронизацию (HS), кадровую синхронизацию(VS). На самом деле ещг есть сигналы на тему P&P, но они нам не потребуются. Видео сигнал передагтся по тргм кабелям (R-красный, G-зелгный, B-синий) в позитивном формате напряжением от 0 (уровень чгрного) до 0.7 вольт (уровень яркого) по кабелю с волновым сопротивлением 75ом. Эти параметры совместимы с параметрами, применяемыми в телевизионной технике.

    Синхронизация представляет из себя импульсы с большой скважностью (то есть длительность импульса мала по сравнению с длительностью паузы между импульсами) и обычно передагтся по отдельным проводам в стандарте TTL (это значит, что низкий уровень не более 0.8 вольт, а высокий не менее 2.4 вольт). Активным уровнем может быть как низкий, так и высокий. Вы сможете настроить это в системе Xfree при помощи флагов -vsync, -hsync, +vsync, +hsync. Флаг vsync определяет активный уровень кадровой развгртки, а флаг hsync - строчной.

    В телевизионной технике синхронизацию никогда не передают так, как в компьютерной технике, поэтому и появился этот (крайне неудачный) способ. У телевизионщиков используется как единая отдельная синхронизация для всех мониторов, так и так называемый полный видеосигнал - по зелгному каналу (G) передаются строчные и кадровые врезки. Зелгный канал выбран потому, что он содержит максимум информации, его можно подключить к чгрно-белому монитору и получить сносную картинку. Именно на такой режим часто рассчитаны дорогие мониторы с BNC разъгмами сзади. Некоторые видеоплаты могут управлять такими мониторами напрямую. Для этого существует флаг Composite. Полярность врезок синхронизации в полный (композитный) сигнал определяется флагами +csync и -csync.

    С точки зрения монитора имеется два независимых сигнала развгртки - кадровая и строчная синхронизации. Частота кадровой синхронизации обычно лежит в диапазоне от 25 до 150 Гц, а строчной - от 30 до 200 Кгц.

    Развгрткой в мониторе занимаются два блока развгрток: блок строчной развгртки быстро двигает луч по строкам (слева направо для человека перед экраном) и иногда совмещгн с блоком питания. Этот блок содержит в свогм составе строчный трансформатор - одну из самых ненадгжных деталей в мониторах. Блок кадровой развгртки устроен проще - он существенно более медленно осуществляет развгртку по кадрам (сверху вниз). Предполагается, что монитор стоит на столе в штатном положении.

    Единственным критичным параметром монитора для Вас будет является максимальная частота строчной развгртки. Учтите, что ограничения по частоте кадров у монитора реально нет. То есть оно конечно есть - но Вы его не заметите. Самый плохенький монитор легко развернгт 75 Гц по вертикали - но ограничит Вас к примеру частотой 35Кгц по горизонтали. Возьмите инструкцию и смотрите на максимальное значение строчной развгртки. Мониторы с максимальной частотой 35Кгц брать нельзя. С частотой 48Кгц - только очень дгшево и не себе. Нормальная частота строк начинается от 65Кгц.

    Объяснение. Мы будем добиваться как минимум 72Гц по вертикали. Это та частота, при которой глаза болят через четыре-пять часов. Учтите, что каждый герц здесь на счету. 75 герц *сильно* отличается от 72. Дело в том, что нам нужно, чтобы картинка не мерцала. Яркость люминофора монитора затухает после облучения по экспоненте. Частота 75 герц соответствует 1/75 секунде = 13.3 ms, а частота 72гц это соответственно 13.8 ms. Разница в 0.5 ms может привести к тому, что экран будет затухать к примеру не до 90%, а до 80% от наведгнной яркости, то есть пульсации увеличатся в два раза - будет не десять процентов пульсаций, а двадцать. Конкретные параметры очень сильно зависят от параметров конкретного люминофора. Сюда же относится рекомендация *не ставить максимальную яркость и контрастность* - не насыщайте люминофор. При частоте 60Гц люминофор обычно протухает до полной темноты.

    Посчитаем строчную частоту на калькуляторе (рекомендуется делать при приобретении монитора - маркетоиды редко понимают, чем торгуют). Для 72Гц по вертикали при 800 строк потребуется 72*800 = 57.6 КГц. Для 600 строк 72*600 = 43 КГц. На самом деле потребуется чуть больше - так как к 600 строкам прибавится десяток строк на обратный ход. Всг. Подсчитали. Итого: мониторы с 48 КГц строчной *не могут* работать без давления на глаз при что_угодно*800 (например 1024*800), а мониторы с 35КГц строчной - вообще в принципе не могут работать :-)

    Вы можете вспомнить про всякие там interlaced mode. По-русски это называется черезстрочным режимом. Это лажа. Можно заставить X работать с interlaced, только вот сможете ли Вы заставить себя на это смотреть? Я считаю, что interlaced для текстовых мониторов - это не изящное техническое решение, а нахальный маркетоидный пригм. Хотя понятно, что сделан он был чтобы обеспечить возможность выдать телевизионный видеосигнал (телевизионный сигнал всегда черезстрочный, то есть в одном полукадре идут чгтные, а в другом нечгтные строки, что позволяет уменьшить моргание телевизионной картинки). Чтобы понять, interlaced ли режим перед Вами, выведите на экран вот это. Чтобы получить на Вашем мониторе этот режим, нужно указать флаг Interlace.

    Существует похожий на обратный к interlace режим под названием doublescan. Однако он не связан с проблемами развгртки, а скорее компенсирует недостаток строк. Если Вы занимаетесь тем, что отлаживаете картинку в формате типа 320x200 на мониторе с большим экраном, то каждая строка Вам будет слишком хорошо видна, а между строками будут толстые ничем не заполненные линии. Что бы как то облегчить восприятие, используется режим двойного сканирования, при котором каждая строка выводится на экран два раза. То есть количество строк, но не количество информации, удваивается. Чтобы включить этот режим нужно указать флаг doublescan.

    С точки зрения монитора количество точек на экране определяется размером лица монитора, количеством дырок и качеством фокусировки. Учтите, что реальная диагональ монитора может быть на дюйм-полтора меньше заявленной. Возьмите рулетку, померьте ширину картинки. Например, для монитора Acer 17" ширина видимой области экрана 320мм и высота 240мм. При точке 0.28 получаем 1140 точек по горизонтали и 850 по вертикали. Большее разрешение на этом мониторе просто не имеет смысла. На самом деле неплохо понимать, что и от этого разрешения нужно скинуть ещг около 5% - так как между точками есть некоторое расстояние.

    Обратите внимание, что монитор ничего не знает про глубину цвета, он просто воспроизводит аналоговую картинку от видеокарты, а ег местоположение определяется параметрами синхронизации нижеописанным образом.

    Настраиваться лучше начать с 256 цветов, добиться пригмлимой картинки и затем уже идти к 65K цветам etc. Возьмите инструкцию от Вашего монитора. Попытайтесь определить максимальную строчную частоту. Обычная линейка максимальных частот 35, 48, 65КГц, далее без остановки.

    Далее займгмся подсчгтами и рассчитаем режим монитора.

  4. Настройка системы.

    Итак, перейдгм к настройке XFree. Я надеюсь, что Вы уже взяли этот пакет откуда-нибудь, и установили его, разобрались, в каких каталогах какие файлы лежат - словом освоились немного.

    Если Вы это ещг не сделали, то Вам потребуется собранная (портированная) под вашу операционную систему XFree и права супервизора (rootТа):

     su
     umask 022
     cd /usr
     for i in /место_порта_XFree/*tgz
     do
      tar -xzf $i
     done
     ln -s X11R6 X11
    

    Я не уверен, что это самый правильный метод, но он работает.

    Для начала просмотрите man 5 XF86Config и man 1 xf86config. Если Вам понравилось читать документацию, то запустите man X, но учтите, что эту документацию приятнее читать внутри X. Первый man - это описание файла настроек XFree, а второй - программы для генерации образца такого файла. Воспользуйтесь программой xf86config и сгенерируйте файл XF86config.

    Постарайтесь более-менее правильно отвечать на вопросы - это может значительно облегчить работу. Если Вы не знаете, как ответить на вопрос - то просто нажмите enter, значения по умолчанию разумны.

    Здесь нужно обратить внимание на следующие места. Во-первых, xf86config назойливо предлагает ввести кучу имгн как видеокарты так и для монитора. Вам ничто не мешает спокойно вводить одинаковые имена для каждого или просто жать enter. Во-вторых, Вам необходимо руками верно выбрать один из акселерированных драйверов, если такой драйвер есть для вашей карты. Так как скорее всего такой драйвер есть, то это нужно сделать. Поставьте символический линк между /usr/X11/bin/ваш_драйвер и /usr/X11/bin/X (xf86config спросит Вас об этом). В-третьих, xf86config попытается сам определить параметры Вашей карты, попросив у Вас разрешения запустить X -probeonly. Позвольте ему это сделать.

    В файле желательно получить хотя бы одну рабочую моду (640x480x8 к примеру). Других мод можно не делать - мы их построим ручками.

    Запустите сначала

    X -probeonly >/tmp/x 2>&1
    
    и рассмотрите результат в файле /tmp/x. Постарайтесь понять, что там написано.

    Посмотрите, какая линейка частот доступна. Запишите ег на бумажку. Линейку частот X пишет при старте. Некоторые платы имеют плавно программируемый тактовый генератор. В этом случае стоит записать максимально допустимую частоту.

    Затем запустите X и убедитесь, что на экране возникла картинка, что мышка шевелится, что по кнопкам left_ctrl + left_alt + gray_plus режимы переключаются (или нет, если Вы сконфигурировали только одну моду). По left_ctrl + left_alt + backspace происходит завершение работы X сервера.

    Если у Вас проблемы с мышью, то попытайтесь получить с нег несколько байт по команде od </dev/mouse (когда Вы двигаете мышку должен получаться octal dump, предполагается, что Вы слинковали /dev/mouse на реальное устройство с мышкой). Для отладки мыши на последовательном интерфейсе иногда помогает tip label, где label - метка в /etc/remote (смотри man tip).

    В системе Xfree каждый режим работы монитора может описываться в файле XF86config в таком формате:

    Modeline	"mode_name"	D	H1 H2 H3 H4	V1 V2 V3 V4	Flags
    

    • Modeline это ключевое слово, означающее, что мы описываем видеорежим. Можно использовать развгрнутое описание, начинающееся со слова Mode, но оно с моей точки зрения ничего, кроме увеличения числа строк не дагт.

    • "mode_name" название моды в кавычках, например вы можете написать "test" или "1x1" - что Вам больше понравится. Хотя я бы не стал писать здесь явную ерунду, псевдографику или русские буквы.

      Это "mode_name" используется в качестве ссылки на имя режима в Section "Screen", Subsection "Display", Modes "mode_name". Режимы устанавливаются в порядке перечисления. Когда Вы заводите новый режим, то назовите его "test" и включите в Modes например так:

        Modes "test" "640x480" "800x600"
      

    • D частота тактового генератора, или, если точнее, частота выдачи точек на монитор. Это число выражается в мегагерцах и может быть вещественным, например С98.7Т.

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

    • H1..4 четыре числа, отвечающие за горизонтальную развгртку, то есть за строчную синхронизацию.

    • V1..4 четыре числа, отвечающие за вертикальную развгртку, то есть за кадровую синхронизацию.

    • Flags флаги, задающие тонкости развгртки. Они описаны в предыдущей главе.

    К сожалению, числа, отвечающие за развгртку выбраны так, чтобы их было удобно запихивать в видеоадаптер, а вовсе не воспринимать человеку. Разбергмся с ними сначала на примере строчной синхронизации. Представим себе, что только что кончился импульс синхронизации и монитор начал двигать луч слева направо. Один тик соответствует частоте тактового генератора - параметру D.

    Через K тиков тактового генератора видеокарта начала выдавать картинку. И выдавала ег L тиков (то есть L точек изобразились на экране). Затем через M тиков карта подождала и выдала строчный синхроимпульс, который длился N тиков. По началу строчного синхроимпульса монитор начал обратный ход развгртки, и через некоторое время (какое то, не обязательно N или ещг что-то) его закончил.

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

    V1 = L
    V2 = L + M
    V3 = L + M + N
    V4 = L + M + N + K

    Иначе говоря, V1 - это количество точек, изображаемых в одной строке на экране, то есть ширина экрана в тиках тактового генератора. V2 - расстояние в тиках между началом картинки и началом синхроимпульса. V3 - расстояние в тиках между началом картинки и концом синхроимпульса. V4 - полная длина одной строки в тиках.

    Это означает, что частота строк равна частоте тактового генератора D поделгнной на общее количество тиков в одной строке V4.

    Для кадровой развгртки в качестве тика используется частота строк, иначе говоря: H1 - количество строк, отображаемых в одном кадре, H2 - количество строк от начала кадра до начала кадрового синхроимпульса, H3 - от начала кадра до конца кадрового синхроимпульса, H4 - общее количество строк в кадре.

    Таким образом, частота кадров определяется как частота тактового генератора D поделить на общее количество тиков в строке V4 поделить на общее количество строк H4.

    Начнгм рассчитывать реальные числа. Возьмгм желаемую частоту кадров, к примеру 72 Hz. Если наш монитор позволяет вытянуть 64 kHz строчной частоты, то это значит, что H4 можно принять равным 64000/72 = 888. Для выполнения обратного хода по кадрам обычно достаточно принять H2 = H1 + 1 и H3 = H2 + 1. Тогда обратный ход кадровой развгртки будет выполняться сразу после окончания кадра. Длительность хода кадровой развгртки обычно около 5..10 строк. Примем H1=880, H2=881, H3=882. Если мы ошибгмся в кадровой развгртке - то обычно это проявится только как "загнутость" или неравномерность верхних строчек.

    Теперь посмотрим, что можно сделать с V. Если мы хотим, чтобы картинка соответствовала пропорции экрана 3x4, то V должно быть порядка 1200. Здесь есть одна тонкость, про которую не нужно забывать. А именно: V1 должна делиться на 2**n. Подробнее написано при обсуждении ЦАП. Значения V2, V3, V4 также обычно должны делиться по крайней мере на 8. Обратный ход строки составляет примерно 2..5% от длины развгртки. Для надгжности выберем V1 из ряда 960, 1024, 1088, 1152, 1216, 1280, например 1152. Итак пусть V1=1152, V2=1168, V3=1184, V4=1248.

    При этом D = 72Hz * H4 * V4 = 72Hz * 888 * 1248 = 79.8 MHz

    Если такой частоты в линейке частот нет, то нужно установить ближайшую. Если ближайшая расположена не очень близко, то пересчитать числа, исходя из частоты тактового генератора и частоты строк. Учтите, что увеличить частоту кадров можно всегда просто уменьшив количество строк в кадре, а вот изменение в количестве точек в строке всегда болезненная процедура.

    Итого записываем в XF86config

    Modeline "test"    79.8    1152 1168 1184 1248 882  883  884  888
    

    Не забываем оформить секцию Screen:

    Subsection "Display"
            Depth       8
            Modes       "test" "640x480" "800x600" "1024x768"
            ViewPort    0 0
    #        Virtual     1024 768
        EndSubsection
    

    Обратите внимание на то, что Virtual пришлось закомментировать - значение по умолчанию нас не очень устраивает. Запускаем X. Рассматриваем экран на тему загибающихся крагв, подгргивающейся синхронизации etc. Если синхронизации вообще нет, то нужно попробовать поиграть флагами +hsync, -hsync, +vsync, -vsync или, скопировав работающую моду в "test" немного поиграть параметрами, чтобы усвоить их назначение ещг раз.

  5. Проблемы, тонкости, непонятности.

    Не забудьте, что H1 * V1 не должно быть больше, чем максимальное количество точек, определяемое оперативной памятью и глубиной цвета.

    Если синхронизация дрожит, то нужно увеличивать H4 или уменьшать D, видимо монитор не может вытянуть заданную синхронизацию. Если курсор раздвоился на небольшом расстоянии, значит нужно увеличить n в признаке делимости на 2**n для всех H1..4

    Учтите, что некоторые "несколькочастотные мониторы" определяют частоту синхронизации по полярностям сигналов кадровой и строчной развгрток. Наша цель в таком случае - попытаться выставить максимальный вариант.

    На некоторых мониторах чтобы достичь максимальной строчной частоты приходится устанавливать H1=H2 или даже H1>H2. Не все видеокарты это позволяют или обрабатывают корректно. Остерегайтесь ставить H2=H3. Обычно это имеет мало смысла так как строчная развгртка может не сработать на маленьком иголочном импульсе, который выдаст видеоплата. Такое желание скорее говорит о необходимости изменить флаг hsync.

    Если Вы превысите паспортное значение строчной частоты, то синхронизация может и не сорваться. Однако через некоторое время может сгореть строчный трансформатор. На гарантийных мониторах я бы посоветовал экспериментировать и задирать частоту насколько можно. Так как если монитор можно выжечь программно - то кому нужен такой монитор? Жгите и пусть продавец меняет.

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

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

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


    © Copyleft 1997, Игорь Николаев,
    СПб, 12 коллегий,
    8 комната.

    Популярность: 1, Last-modified: Wed, 06 Aug 1997 17:36:43 GmT