su13@pochta.ru

| Первый | Второй | Третий | Четвёртый | Пятый | Шестой | Седьмой |


Установка графической оболочки X-Window

Теперь, после того, как базовое ядро системы установлено, рассмотрим, как же устанавливается графическая оболочка X-Windows.

Linux поставляется со всеми библиотеками и инстументальными средствами,необходимыми для разработки приложений для X-Windows. Хотя одна задача уже решена! Г-н Вакуленко разработал пакет xcyr для русификации X-windows, который поддерживает различные кодовые таблицы и раскладки клавиатуры. Возможно, кому то покажется относительно бедным набор шрифтов, но как вы догадываетесь, здесь есть к чему приложить руки.

Но для того, чтобы заняться программированием в X-Windows, оболочку надо по крайней мере установить. Вот этим мы сейчас и займемся.

Прежде всего, необходимо установить на винчестер все пакеты, связанные с X-Windows. Конечно же, к ним относятся X и XAP, но не забудьте и библиотеки и вспосогательные средства, как например OI. Самое важное - не скупитесь, ставьте по максимуму! Но не забывайте о тонкостях, которые нигде не описаны.

Тонкость N1 - X-сервер

При установке ядра системы вам будет предложено установить один из семи уже скомпилированных серверов:

8514a
предназначен для платы адаптера IBM 8514a и носит, прямо скажем, абстрактный характер. Во-первых, эти видеоплаты в России встречаются исключительно редко. А во-вторых, адаптер реализован для шины MCA (мне по крайней мере, другие варианты не попадались), которая не поддерживается самой системой Linux.
Monochrome X server
ориентирован на использование VGA-адаптера с монохромным монитором. Но имейте в виду, никаких градаций яркости! Этот сервер признает всего два цвета - черный и белый. Но зато отображает данные максимально быстро.
SVGA server
вот он пожалуй, будет использоваться чаще всего, ведь SVGA-платы получают все большее распространение. Но необходимо отметить, что меньше всего проблем у вас возникнет с платой Trident 8900 (буквы роли не играют). А вот плата Trident 9000 имеет ряд дефектов, которые порой приводят к "рассыпанию" изображения на экране или зависанию компьютера. Поэтому будьте бдительны! SVGA-сервер поддерживает режим 256 цветов (разрешение пределяется возможностями монитора и объемом видеопамяти на плате).
VGA server
поддерживает только 16 цветов. Предназначен для использования с устаревшими платами VGA-адаптеров, имеющих 256 Кбайт видеопамяти. Поскольку прогресс в области аппаратных средств движется семимильными шагами, этот сервер так и остался на уровне эксперимента.

Используйте его только в самом крайнем случае. Результаты, вообще говоря, непредсказуемы.

Оставшиеся три сервера ориентированы на использование наиболее популярных плат с ускорителями класса Windows Accelerator. Поскольку интерфейс пользователя в X-Windows также построен на основе прямоугольников (так же как и MS Windows), использование этих плат позволяет достичь значительного выигрыша в производительности.

Выбирайте для установки только один сервер, тот который соответствует вашему видеоадаптеру. Тратить место на диске на остальные смысла не имеет. Кроме того, процедура установки автоматически перенастроит указатели (символьные связи) на последний установленный сервер (а последним в списке является как раз не до конца отлаженный VGA-сервер).

Тонкость 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?
640x48060Hz 31.5k25.175M НетНет
640x48060Hz 31.5k25.175M НетНет
640x48063Hz 32.8k28.322M НетНет
640x48070Hz 36.5k31.5M НетНет
640x48072Hz 37.9k31.5M НетДа
800x60056Hz 35.1k36.0M НетДа
800x60056Hz 35.4k36.0M НетНет
800x60060Hz 37.9k40.0M НетДа
800x60060Hz 37.9k40.0M НетНет
800x60072Hz 48.0k50.0M НетДа
1024x768i43.5Hz 35.5k44.9M ДаНет
1024x76860Hz 48.4k65.0M НетДа
1024x76860Hz 48.4k62.0M НетНет
1024x76870Hz 56.5k75.0M НетДа
1024x76870Hz 56.25k72.0M НетНет
1024x76876Hz 62.5k85.0M НетНет
1280x1024i44Hz 51kHz80.0M ДаНет
1280x1024i44Hz 47.6k75.0M ДаНет
1280x102459Hz 63.6k110.0M НетНет
1280x102461Hz 64.24k110.0M НетНет
1280x102474Hz 78.85k135.0M НетНет

Тонкость N3 - запуск X-windows.

Теперь самое время попробовать, что получилось. Но запускать Xwindow необходимо с помощью либо openwin или startx. Перед вами появится почти чистый экран. Нажмите кнопку мышки. А теперь вторую. Перед вами появится меню, которое, кстати, вы можете отредактировать по своему усмотрению. Впрочем, как и системное меню, которое как и в MS Windows по умолчанию содержит команды Close, Restore, Kill и так далее.

Теперь вы можете заняться исследованием X-window, так же, как в свое время приступали к MS Windows. Поверьте, многое даже проще!

Тонкость N4 но не последняя - русификация.

Как я уже указывал выше, проблема русификации X-Windows решена г-ном Вакуленко. И с моей стороны было бы просто плагиатом перепечатывать его инструкцию к пакету xcyr. Тем более, что она написана на русском языке.

Но одна сложность все же есть. А именно - русификация Linux в текстовом режиме. Так вот, чтобы заставить Linux говорить по-русски вам потребуется загрузить ЙЦУКЕН-раскладку и знакогенераторы кириллицы с помощью программы Setup (Remap your keyboard), а затем выполнить следующую последовательность команд (которую можно оформить как скрипт-файл):

loadkeys /usr/lib/kbd/keytables/russian.map
mapscrn koi2alt
setfont Cyr_a8x16
printf "\033(K"
echo  Для включения кириллицы нажмите правый <Alt>

Отметим, что начиная с версии 1.2.13 в состав дистрибутива Slackware включен набор дисков cyr1, который содержит все необходимое для руссификации программное обеспечение - экранные шрифты, раскладки клавиатуры, шрифты и раскладки для X-Window, шрифты Postscript для принтера и скрипт-файлы, осуществляющие корректную установку шрифтов в системе.

[Назад] [Содержание] [Вперед]

GNU OCXE GNU LINUX
Сайт управляется системой uCoz