Тонкость N2 - конфигурирование системы.
После того, как вы запустите XWindows, вы с удивлением обнаружите, что скорость вывода графики в полтора-два раза выше, чем в MS Windows. Но чтобы добиться столь впечатляющих результатов, вам придется немного попотеть. Дело в том, что сервер сам по себе предназначен для обслуживания семейства
видеоадаптеров, а для практической работы вы должны настроить его на работу с конкретной парой "видеоадаптер-монитор".
Эти настройки размещаются в файле Xconfig, который должен находиться в каталоге /usr/X11/lib/X11. Типовой файл, ориентированный на видеоплату Trident 8900 содержится в этом же каталоге в файле Xconfig.Trident8900c.
Достаточно просто выполнить команду:
mv Xconfig.Trident8900c Xconfig
и вся ваша настройка (если конечно, у вас плата Trident 8900) на этом закончена. В этом случае можно считать, что вам крупно повезло.
Но рассмотрим менее приятный случай - у вас другой тип видеоадаптера. Ваша задача состоит в том, чтобы определить видеорежимы, которые будет поддерживать X-window и, что самое важное, задать корректные режимы, которые поддерживаются как видеоадаптером, так и монитором.
Но вначале давайте рассмотрим, что же представляет из себя файл Xconfig. Вот пример типичного файла:
RGBPath "/usr/X386/lib/X11/rgb"
FontPath "/usr/lib/X11/fonts/75dpi/,/usr/lib/X11/fonts/Speedo/"
Keyboard
AutoRepeat 500 5
ServerNumLock
LeftAlt Meta
RightAlt Compose
ScrollLock ModeLock
Microsoft "/dev/mouse"
BaudRate 1200
vga256
Virtual 1024 1024
ViewPort 0 0
Modes "800x600" "640x480" "1024x768i"
Chipset "tvga8900c"
Displaysize 800 600
Clocks 25.30 28.32 45.00 36.00 57.30 65.10 50.40 39.90
ModeDB
# name clock horizontal timing vertical timing flags
"640x480" 25 640 672 768 800 480 490 492 525
"800x600" 36 800 840 912 1024 600 600 602 625
"1024x768i" 45 1024 1048 1224 1264 768 768 776 816 Interlace
Давайте начнем по порядку. Первые строки, вплоть до описания конфигурации мышки, вам скорее всего изменять не придется. Как пути, так и настройки клавиатуры выглядят вполне приемлемо. Более того, они даже не вступают в конфликт с русификатором! что касается мышки, то настройка манипулятора, вообще говоря, осуществляется программой setup, а в Xconfig вы, как правило, только указываете ее тип - в нашем, и наиболее распространенном случае, Microsoft.
Кстати, если вы используете мышку типа PS/2, как например, на машинах фирмы Acer, не забудьте включить ее поддержку при компиляции ядра Linux. Иначе толку никакого не будет. Более подробную информацию о конфигурировании "мышек" вы можете получить из встроенной системы помощи:
man Xconfig
Но с этим вдумчивый читатель справится и без моей помощи. Я постараюсь, по возможности понятно, рассказать что делать дальше. Далее в файле конфигурации мы видим секцию vga256. Пора взглянуть на нее внимательнее.
Virtual 1024 1024
Это виртуальный размер экрана. Если вы работали с пакетами Word for Windows или холтя бы рисовали картинки каким-либо графическим редактором, то понятие виртуального экрана вам знакомо. Числа обозначают разрешение, которое определяется объемом видеопамяти. Для видеоплаты Trident 8900 одного мегабайта достаточно как раз для хранения образа экрана 1024*1024. Платы с ускорителями расходуют память куда более агрессивно, а поэтому, если вы рассчитываете на действительно выдающиеся результаты, подумайте над расширением видеопамяти плат класса S3 хотя бы до 2 МБайт.
ViewPort 0 0
Начальное смещение рабочего окна относительно левого верхнего угла виртуального экрана. Оставляйте как есть.
Modes
В этой строке вы просто перечисляете видеорежимы, которые будет использовать ваш X-сервер. Конечно, инициализируется только один из них, но вот какой? Да самый первый в списке. А следующая строка:
DisplaySize 800 600
означает, что X-сервер инициализирует (вне зависимости от текущего разрешения) адресуемую область экрана 800 на 600.
Chipset
В этой строке указывается название набора микросхем, на базе которого изготовлен ваш видеоадаптер. Список поддерживаемых наборов вы найдете с помощью системы man, а узнать, какой адаптер у вас вы можете, прочитав документацию к видеоплате.
А вот следующая строка выглядит жутковато. Цифры, на первый взгляд, совершенно непонятные. Означают они настройки временных параметров видеоадаптера и изменяются от платы к плате. Но, несмотря на непонятность, получить эти "тайные знаки" можно относительно просто. Для этого вы должны "обрезать" Xconfig по строку Clocks (ликвидировав последнюю) и запустить следующую команду:
X -probeonly
Система просмотрит все диапазоны возможных значений настроек таймеров видеоадаптеров и выдаст на экран список чисел, которые вы должны в том же порядке перенести в файл Xconfig. Не беда, если они займут несколько строк. А кроме того, обратите внимание на максимальную пропускную полосу монитора. На хороших моделях она достигает 90 MHz. Это абстрактное значение имеет для нас очень важное значение. Но позвольте вначале некбольшое лирическое отступление.
Хочу сразу же предупредить, что изложенное ниже представляет собой мои досужие домыслы и не может восприниматься как антиреклама "пострадавших" фирм.
Вы смотрите телевизор? Не задавались ли вы вопросом, почему иногда изоб ражение на дисплее, который вы видите на телевизионном экране стоит как влитое, а иногда по нему бегут какие-то полосы? И почему изображение на экране стоит столь редко?
Да, я слышал о популярных вариантах ответа. Но позвольте предложить вам свое решение. Во-первых, вспомните школьный курс физики, а именно — фигуры Лиссажу. То что мы видим на экране, это тоже разновидность биений, возникающая в тех случаях, когда кадровая развертка монитора компьютера близка или сопоставима к кадровой развертке видеокамеры. Так вот, пусть глаз не замечает смены кадров на мониторе, видеокамера безжалостно демонстрирует нам низкую
частоту развертки вашего компьютера. Кстати, почему экраны рабочих станций Sun или DEC получаются на ТВ вполне прилично? Да потому, что в этих мониторах частота смены кадров выше 70 Гц, в то время как видеокамера делает около 30 кадров в секунду!
Между тем, чем выше частота развертки, тем стабильнее "стоит" на экране изображение и меньше устают глаза. Но при этом на монитор поступает значительно больший поток данных, а следовательно увеличивается и эквивалентная полоса пропускания.
Что из этого следует? А вот что! Увеличение частоты кадровой развертки при сохранении заданного разрешения способствует:
а) максимально полному использованию возможностей ваших аппаратных средств;
б) повышает стабильность изображения на экране.
К счастью X-windows предоставляет вам уникальные возможности в оптимизации настроек аппаратных средств. А для этого нам потребуется настроить параметры видеорежимов.
Но сказать легче, чем сделать. Вначале необходимо попробовать пойти режимом минимального сопротивления. Обратите ваше внимание на каталог /usr/X11/lib/X11/etc. И прежде всего - на файл modeDB.txt. А посмотреть его содержимое можно командой:
cat modeDB.txt | less
(Для начинающих. cat - копирует файл в выходной поток, а less подхватывет входной поток, буферизует его и позволяет просмотреть его содержимое, подобно хорошо знакомой вам программе README).
Этот файл представляет собой базу данных, составленную любителями Linux со всего мира, и состоит из записей следующего вида:
# Monitor: Seiko CM 1440
# Contributor: Jeff Jennings [jennings@stortek.com]
# Last Edit Date: 12/9/91
#
# name clock horizontal timing vertical timing flags
"1024x768i" 45 1024 1064 1224 1264 768 777 785 817 Interlace
"1152x900i" 45 1152 1184 1288 1360 900 898 929 939 Interlace
Ваша задача состоит в том, чтобы заменить содержимое строк описания режимов в файле Xconfig на найденные вами в таблице значения. Но позвольте вам еще раз напомнить - тип монитора играет очень важную роль!
Вообще говоря, не стоит проявлять излишней самодеятельности. Взгляните на таблицу 4, в которой перечислены общие режимы, которые поддерживают почти все мониторы. Но не поленитесь, откройте книжечку, поставляемую вместе с вашим. Возможны два варианта. Если вы не экономили, то у вас окажется монитор класса Multisync, поддерживающий любую частоту кадровой и строчной развертки в заданном диапазоне. А если ваш компьютер приобретен на "распродаже", у вас окажется доступными только несколько режимов из которых и придется выбирать. Полный список настроек видеорежимов (частоты развертки и настройки таймеров для горизонтальной и вертикальной разверток вы сможете найти в файле /usr/X11/lib/X11/etc/README.Config. А если вы все же решитесь заняться оптимизацией вручную, то имеет смысл обратиться к файлу Videomodes.doc, в том же каталоге. Кроме того, полезную информацию вы сможете найти и в каталоге /usr/doc/faq/howto. Для просмотра файлов без их распаковки вы можете воспользоваться командой :
zcat <имя файла > | less
( Команда zcat осуществляет копирование сжатого входного файла на
устройство стандартного вывода с автоматический распаковкой).
Таблица 4. Стандартные видеорежимы
Режим |
Частота кадров |
Синхронизация строк |
Эквивалентная полоса |
Черезстрочная развертка? |
Поддержка VESA? |
640x480 |
60Hz |
31.5k |
25.175M |
Нет |
Нет |
640x480 |
60Hz |
31.5k |
25.175M |
Нет |
Нет |
640x480 |
63Hz |
32.8k |
28.322M |
Нет |
Нет |
640x480 |
70Hz |
36.5k |
31.5M |
Нет |
Нет |
640x480 |
72Hz |
37.9k |
31.5M |
Нет |
Да |
800x600 |
56Hz |
35.1k |
36.0M |
Нет |
Да |
800x600 |
56Hz |
35.4k |
36.0M |
Нет |
Нет |
800x600 |
60Hz |
37.9k |
40.0M |
Нет |
Да |
800x600 |
60Hz |
37.9k |
40.0M |
Нет |
Нет |
800x600 |
72Hz |
48.0k |
50.0M |
Нет |
Да |
1024x768i |
43.5Hz |
35.5k |
44.9M |
Да |
Нет |
1024x768 |
60Hz |
48.4k |
65.0M |
Нет |
Да |
1024x768 |
60Hz |
48.4k |
62.0M |
Нет |
Нет |
1024x768 |
70Hz |
56.5k |
75.0M |
Нет |
Да |
1024x768 |
70Hz |
56.25k |
72.0M |
Нет |
Нет |
1024x768 |
76Hz |
62.5k |
85.0M |
Нет |
Нет |
1280x1024i |
44Hz |
51kHz |
80.0M |
Да |
Нет |
1280x1024i |
44Hz |
47.6k |
75.0M |
Да |
Нет |
1280x1024 |
59Hz |
63.6k |
110.0M |
Нет |
Нет |
1280x1024 |
61Hz |
64.24k |
110.0M |
Нет |
Нет |
1280x1024 |
74Hz |
78.85k |
135.0M |
Нет |
Нет |