Заполнение информации о видеокарте
Теперь ваш файл XF86Config готов к использованию. Единственное, что мы не сделали - не заполнили информацию о видеокарте. Сейчас нам следует запустить X сервер в режиме определения видеокарты и дооформить XF86Config файл.
Эту информацию вы можете найти и в файлах modeDB.txt, AccelCards и Devices (все эти файлы находятся в каталоге /usr/X11R6/lib/X11/doc). Кроме этого существуют различные файлы README для конкретных микросхем. Вам следует просмотреть эти файлы и используя эту информацию (частоты, тип микросхем и другие режимы) доопределить файл XF86Config. Если какой то информации не хватает, вы можете определить ее путем описанным ниже.
В этом примере мы опишем настройку видеокарты #9 GXE 64, использующую микросхему S3. Эта карта одна из тех, с которыми работает автор, но все описанное ниже справедливо и для другой видеокарты.
Перво-наперво вам надо определить тип микросхемы, используемой видеокартой. Команда SuperProbe (располагающаяся в каталоге /usr/X11R6/bin) сообщит вам эту информацию, но вам необходимо знать под каким именем известна данная микросхема X серверу.
Чтобы определить это запустите команду:
X -showconfig
Сервер сообщит вам имена микросхем, с которыми он работает (руководство на X сервер также содержит эту информацию). Например, сервер XF86_S3 сообщит:
XFree86 Version 3.1 / X Window System (protocol Version 11, revision 0, vendor release 6000) Operating System: Linux Configured drivers: S3: accelerated server for S3 graphics adaptors (Patchlevel 0) mmio_928, s3_generic
То есть сервер работает с микросхемами mmio_928 и s3_generic. Руководство на сервер XF86_S3 описывает эти микросхемы и видеокарты, использующие их. В нашем случае видеокарта #9 GXE 64
использует микросхему mmio_928.
Если вы не знаете какая микросхема стоит на видеокарте, X сервер может это определить. Запустите:
X -probeonly > /tmp/x.out 2>&1
если вы работаете в оболочке shell. Если вы используете csh запустите:
X -probeonly &> /tmp/x.out
Эту команду следует запускать при низкой загрузке компьютера. Эта команда определяет также частоту видеоадаптера и большая загрузка системы может исказить эти данные.
Выходная информация в файле /tmp/x.out будет содержать следующие строки:
XFree86 Version 3.1 / X Window System ( protocol Version 11, revision 0, vendor release 6000) Operating System: Linux Configured drivers: S3: accelerated server for S3 graphics adaptors (Patch level 0) mmio_928, s3_generic Several lines deleted... (--) S3: card type: 386/486 localbus (--) S3: chipset: 864 rev. 0 (--) S3: chipset driver: mmio_928
Мы видим, что сервер (XF86_S3) может работать с микросхемами mmio_928 и s3_generic. Сервер протестировал видеокарту и опознал микросхему mmio_928. Следовательно, в секцию Device вам следует добавить строку, содержащую имя микросхемы, найденное сервером.
Section "Device" # We already had Identifier here... Identifier "#9 GXE 64" # Add this line: Chipset "mmio_928" EndSection
Теперь нам требуется определить частоты, поддерживаемые видеокартой. Как мы уже видели, каждый режим разрешения на мониторе требует определенной передачи точек от видеокарты. Нам необходимо определить какие частоты может обеспечить видеокарта.
Сначала следует просмотреть справочные файлы (modeDB.txt, и т п) описанные выше и определить, нет ли там описания частот вашей карты. Частоты, как правило представлены списком из 8 или 16-ти значений частот в Мегагерцах. Например в файле modeDB.txt можно найти строку описания видеокарты Cardinal ET4000:
chip ram virtual clocks default-mode flags ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"
Как вы видите, данная карта поддерживает частоты: 25, 28, 38, 36, 40, 45, 32, and 0 MHz.
В секции Device файла XF86Config, вам следует добавить строку Clocks со списком частот. В нашем случае мы добавляем строку:
Clocks 25 28 38 36 40 45 32 0
к секции Device, после описания Chipset. Заметьте, что порядок частот важен! Вам не следует дублировать или изменять порядок частот.
Если вы не можете найти список частот для вашей карты, X сервер может также определить и эти значения. После вызова команды X -probeonly, описанного выше, вы увидите строку :
(-- ) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00
Теперь вам осталось лишь добавить строку Clocks, перечислив указанные значения. Так как часто список содержит 8 и более значений и не помещается в одной строке, вы можете продолжить список в следующих строках, только не забывайте сохранять порядок указанных значений.
Перед запуском X -probeonly, убедитесь что в секции Devices
нет строк описания Clocks или они закомментированы. Если эти значения уже есть, X сервер не будет проверять поддерживаемые платой частоты, а возьмет указанные в строке Clocks.
Заметьте, что некоторые видеокарты с акселератором используют микросхему с программируемой частотой (Смотрите руководство XF86_Accel; это в основном относится к картам S3, AGX и XGA-2 boards.) Эти микросхемы позволяют X-серверу сообщать карте какую использовать частоту. В этом случае мы вполне вероятно не сможем найти в вышеперечисленных файлах список частот для карты. Или список частот, выдаваемых командой X -probeonly будет содержать одно два значения с остальными дублированными или нулевыми значениями.
Для видеоплат, использующих микросхему программирования частоты, вам вместо строки Clocks следует использовать строку ClockChip. Эта строка задает имя микросхемы программирования частоты, установленной на карте. Руководства для каждого сервера описывает их имена. Например, в файле README.S3 мы определили, что несколько S3-864 видеокарт используют микросхему ``ICD2061A''. Следовательно, нам следует использовать строку:
ClockChip "icd2061a"
вместо строки Clocks. Так же как и строка Clocks, строка ClockChip
должна быть в секции Devices после строки Chipset.
Некоторые карты с акселератором требуют определения в файле XF86Config строки Ramdac, описывающей тип используемой микросхемы RAMDAC. Руководство на сервер XF86_Accel описывает подробно опции этой строки. Как правило, X сервер верно определяет тип используемой микросхемы RAMDAC.
Некоторые видеокарты требуют определения нескольких дополнительных опций в секции Devices. Эти опции описаны как в руководствах на ваш X сервер, так и в справочных файлах (например README.cirrus или README.S3). Эти опции устанавливаются строкой Options. Например, видеокарта #9 GXE 64 требует установку двух опций:
Option "number_nine" Option "dac_8_bit"
Обычно X сервер работает и без этих опций, но с ними X сервер обеспечивает большую производительность. Существует слишком много всевозможных опций, чтобы из все здесь перечислить. Эти опции зависят от типа установленной видеокарты. Если вы вынуждены использовать эти опции - не волнуйтесь, руководства на X сервера и справочные файлы в каталоге /usr/X11R6/lib/X11/doc/ об'яснят вам что они значат.
Итак, когда вы закончите, не забудьте завершить строкой EndSection секцию Device, которая будет выглядеть следующим образом:
Section "Device" # Device section for the #9 GXE 64 only ! Identifier "#9 GXE 64" Chipset "mmio_928" ClockChip "icd2061a" Option "number_nine" Option "dac_8_bit" EndSection
Как уже сказано выше, большинство видеокарт требуют строку Clocks вместо строки ClockChip. Вышеприведенный пример применим только к конкретной видеокарте #9 GXE 64.