The Linux XFree86

Аппаратные требования Вы можете найти обновленный список поддерживаемых карт и наборов микросхем по адресу http://www.xfree86.org/4.0/Status.html.

Документация поставляемая с вашей видеокартой должна содержать информацию об используемом наборе микросхем. Если вы покупаете новую видеокарту или покупаете машину, которая поставляется с видеокартой, то узнайте у своего поставщика модель видеокарты и какой набор микросхем в ней используется. Это может потребовать от поставщика вызова службы технической поддержки от вашего имени; в общем поставщики будут рады сделать это. Много поставщиков аппаратуры для персональных компьютеров будут заявлять, что карта является ``стандартной SVGA картой'', которая ``должна работать'' на вашей системе. Объясните, что ваше программное обеспечения (подразумевая Linux и XFree86!) не поддерживает все наборы микросхем для видеокарт и что вы должны иметь детальную информацию.

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

Видео карты, использующие поддерживаемые наборы микросхем, поддерживаются на всех типах шин, включая VLB и PCI.

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

Предполагаемая конфигурация для XFree86 под Linux предполагает машину с процессором 486 или лучше, по крайней мере 8 МБ ОЗУ, и видеокартой с набором микросхем указанным выше. Для оптимальной производительности мы предполагаем использование карты с ускорителем, например карту с набором микросхем S3. Вы должны просмотреть документацию на XFree86 и проверить, что ваша карта поддерживается, до того как покупать дорогую карту.

Персональная Linux-система Matt Welsh (создателя этого FAQ) была машиной 486DX2-66, 20 мегабайтами ОЗУ, оборудованной VLB картой с набором микросхем S3-864 с 2 мегабайтами DRAM. Он запускал тесты для X на этой машине, а также на рабочей станции Sun Sparc IPX. Система с Linux была примерно в 7 раз быстрее чем Sparc IPX (для любопытных, XFree86-3.1 под Linux, с данной видеокартой выполняла примерно 171,000 xstones; а Sparc IPX примерно 24,000). В общем, XFree86 на машине с Linux с ускоренной SVGA картой даст вам большую производительность, чем вы можете найти на коммерческих рабочих станциях с UNIX (которые обычно оборудуются простыми framebuffer для графики).

Вашей машине будет необходимо по крайней мере 4 мегабайта физического ОЗУ, и 16 мегабайт виртуального ОЗУ (например 8 МБ физической и 8 МБ виртуальной). Помните, что чем больше физической памяти, тем меньше свапирование на и с диска при нехватке памяти. Поскольку свапирование заметно медленнее (диски очень медленны по сравнению с ОЗУ), для комфортабельного запуска XFree86 необходимо иметь 8 или больше МБ ОЗУ. 16 еще лучше. Система с 4 МБ физической памяти будет работать намного (до 10 раз) медленнее, чем машина с 8 МБ или больше.

Установка XFree86

Вероятно, что вы получили XFree86 как часть дистрибутива Linux, в этом случая отдельное скачивание программного обеспечения не является необходимым. Или вы можете взять двоичные пакеты RPM, скомпилированные для вашей машины, в этом случае вам надо просто установить их, используя команду rpm(1). В этом случае вы можете пропустить материал до конца этого раздела.

Двоичный дистрибутив XFree86 для Linux можно найти на разных FTP-серверах. На сервере XFree86 он располагается в каталоге ftp://ftp.xfree86.org/pub/XFree86/current/binaries/. Вы можете выбрать подкаталоги Linux-axp-glibc21, Linux-ix86-glibc20 или Linux-ix86-glibc21, в зависимости от типа вашего процессора (axp=alpha, ix86=Intel 80x86) и версии библиотеки Gnu C.

До того как что-нибудь делать скачайте и запустите скрипт `Xinstall.sh'. Он может сообщить вам о том, что вам необходимо иметь для продолжения вашей установки. Полные инструкции по установке двоичного дистрибутива XFree86 находятся по адресу http://www.xfree86.org/4.0/Install2.html.

Каталог XFree86 должен содержать примечания о выпуске для текущей версии в файле RELNOTES. Посмотрите его для описания деталей установки.

Все что требуется для установки XFree86---это скачать вышеперечисленные файлы, создать каталог /usr/X11R6 (работая как root), и распаковать файлы из каталога /usr/X11R6, используя такую команду:

gzip -dc Xbin.tgz | tar xfB -

Помните, что эти файлы распаковываются относительно каталога /usr/X11R6, так что очень важно распаковывать файлы именно там.

Вам необходимо убедиться, что /usr/X11R6/bin находится в маршруте поиска файлов. Это может быть сделано путем редактирования системного файла /etc/profile или /etc/csh.login (в зависимости от используемого пользователями командного процессора). Или вы можете просто добавить этот каталог в ваш персональный маршрут поиска, изменив файл .bashrc или .cshrc, в зависимости от вашего командного процессора.

Вам также необходимо убедиться, что /usr/X11R6/lib может быть найдена ld.so, линковщиков времени выполнения. Для этого добавьте строку

/usr/X11R6/lib

в файл /etc/ld.so.conf, и запустите /sbin/ldconfig, как администратор.

Настройка XFree86

Нормальная настройка

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

Эта программа зависит от того факта, что все новые персональные компьютеры наших дней оборудованы мониторами умеющими работать в режиме EGA/VGA. Программа запускает VGA16-сервер использует его для запуска X в режиме наименьшего разрешения 640x480. Затем запускается интерактивная программа, которая проводит вас через набор панелей настройки---мышь, клавиатура, видеокарта, монитор и `другое' (разные настройки сервера). Весь процесс достаточно безболезненный.

(Если вы используете Red Hat Linux, то вы можете найти другую программу, названную xf86config. Она работает почти как XF86Setup, но не использует X-интерфейс и VGA16-сервер).

Одну небольшую особенность необходимо вам помнить, если вы подобно большинству людей используете персональный компьютер, то ваша клавиатура в XF86Setup называется `Generic 102-key PC (intl)', вместо клавиатуры по умолчанию`Generic 101-key PC'. Если вы выберете клавиатуру по умолчанию (101), то клавиши справа на клавиатуре (цифровые и другие) могут прекратить работать.

Если вы не уверены в том какой тип монитора вы используете, то вы можете попробовать перечисленные типы по очереди. Попробуйте их начиная с верха и опускаясь вниз (перечисленные вверху работают на меньшей частоте (dot-clock speeds) и менее требовательны к оборудованию). Вернитесь назад если вы получили мусор или сильно искаженную картинку). Небольшие искажения (картинка немного больше, немного меньше или расположена не в центре) не являются проблемой; у вас есть шанс откорректировать их с помощью точной настройки режима.

И когда программа запустит xvidtune для того, чтобы попробовать имеющиеся видеорежимы, не пугайтесь первоначального сообщения. Современные многочастотные мониторы (в отличии от их предшественников с фиксированной частотой) не так подвержены поломкам данным способом.

XF86Config может предполагать, что устройством мыши является /dev/mouse. Если вы обнаружили, что мышь не работает, то вам может быть необходимо создать ссылку /dev/mouse на то устройство /dev/ca[01] к которому подключена мышь. Если вы обнаружили, что XFree86 выдает вам сообщение об ошибке "mouse busy (мышь занята)" при запущенной программе gpm, то вам нужно будет создать ссылку на устройство /dev/ttyS[01], а не на то, которое было указано выше.

Процесс настройки производится путем выбора серверного модуля, соответствующего общему типу вашей видеокарты и настройке XF86Config, который сервер будет считывать при запуске для получения специфических параметров для вашей установки. Расположение файла XF86Config может быть разным, в зависимости от вашей операционной системы, но одним из мест где вы его можете найти является каталог /etc/X11.

В более старых версиях, XF86Setup делает команду `X' ссылкой прямо на выбранный сервер. В недавних версиях, вместо этого, `X' является ссылкой на программу с установленным set-user-id, которая называется Xwrapper. Основная идея заключается в том, что вещи для которых необходим установленный setuid пользователя root содержатся в Xwrapper, так что сервер не запускается с установленным setuid root.

Устранение неисправностей

Иногда что-нибудь может быть не совсем правильно, когда вы первый раз запускаете X-сервер. Почти всегда это вызывается проблемой в вашем файле настройки. Обычно значения частоты (timing) монитора не заданы, или частота (dot clock) видеокарты установлены неправильно. Небольшие проблемы могут быть исправлены с помощью программы xvidtune; экран заполненный мусором означает, что вам необходимо вернуться к XF86Setup и выбрать монитор с меньшими возможностями.

Если дисплей мелькает, или края расплывчаты, то это точный показатель того, что значения частоты (timing) монитора или значение частоты (dot clock) неправильны. Также убедитесь, что вы точно указали набор микросхем вашей видеокарты, также как и остальные опции для раздела Device файла XF86Config. Будьте абсолютно уверены, что вы используете правильный X-сервер и что файл /usr/X11R6/bin/X является символьной ссылкой на этот сервер.

Если все это сбивается, попробуйте запустить X в ``голом'' виде; для этого используйте такую команду:

X > /tmp/x.out 2>&1

Затем вы можете завершить выполнение X-сервера (используя комбинацию клавиш ctrl-alt-backspace) и просмотреть содержимое файла /tmp/x.out.X-сервер выдаст вам любые предупреждения---например, если ваша видеокарта не имеет частоты (dot clock) соответствующей режиму, поддерживаемому монитором.

Помните, что вы можете использовать комбинации клавиш ctrl-alt-numeric + и ctrl-alt-numeric - для переключения между видеорежимами, перечисленными в строке Modes раздела Screen в файле XF86Config. Если более высокое разрешение выглядит неправильно, то попробуйте переключиться в режим с меньшим разрешением. Это позволит вам понять, что по крайней мере эта часть настройки X работает правильно.

Также проверьте ручки вертикального и горизонтального размера/положения на вашем мониторе. Во многих случаях необходимо регулировать их при запуске X. Например, если изображение выглядит немного сдвинутым на одну сторону, то обычно вы сможете исправить это используя управление монитором.

Группа новостей USENET comp.windows.x.i386unix предназначена для обсуждения XFree86, также как и comp.os.linux.x. Хорошей идеей будет посмотреть статьи посылаемые в эти группы и относящиеся к настройке вашего видео---вы можете найти кого-нибудь у кого такие же проблемы.

Дополнительная настройка

Вам будет необходимо вручную исправить настройку X для того, чтобы добиться оптимальной производительности, если ваш монитор поддерживает разрешение 1600x1200--самое высокое разрешение, поддерживаемое программой XF86Setup равно 1280x1024.

Если вы хотите вручную править вашу конфигурацию видеосистемы по этой или другой причине, то смотрите XFree86 Video Timings HOWTO, http://metalab.unc.edu/LDP/HOWTO/XFree86-Video-Timings-HOWTO.html. (Это HTML-версия поставляемого с XFree86 файла `Videomodes.doc').

Использование 16-битного цвета

По умолчанию X использует 8-битную глубину цвета, дающую 256 цветов. Для того, чтобы обойти это ограничение много приложений выделяют свои собственные таблицы цветов (colormaps), приводящие в результате в внезапным сменам цветов при перемещении курсора между двумя окнами, в каждом из которых имеется своя таблица цветов. Таким способом работает WWW-броузер Arena.

Если вы хотите использовать мощные графические приложения, то 256 цветов может быть недостаточно. Вам может быть необходимо использовать 16-битную цветовую глубину (65536 цветов). Но будьте осторожны---не все приложения поддерживают 16-битные цвета.

Вы можете использовать 16-битные цвета с 65K разных цветов просто запуская X с помощью команды

    startx -- -bpp 16

или поместив

    exec X :0 -bpp 16

в ваш файл .xserverrc. Однако для того, чтобы это работало вам необходимо иметь раздел

screen

в файле XF86Config со значением

    DefaultColorDepth 16

Если вы используете xdm, то вам может быть необходимо изменить файл Xservers, которые вероятно расположен в каталоге /etc/X11/xdm/. Типичная конфигурация имеет только одну незакомментированую строку, выглядящую примерно так

      :0 local /usr/X11R6/bin/X

Добавьте

-bpp 16

к опциям запуска:

      :0 local /usr/X11R6/bin/X -bpp 16

Вам также надо будет добавить к разделу 'screen' вашей конфигурации X часть Display с параметром Depth равным 16. В общем вы можете просто скопировать раздел 8-bit Display и изменить поле Depth.

Большее количество цветов заставляет вашу карту передавать больше данных за то же самое время. Если ваша карта не справляется, то либо разрешение, либо частота обновления должна быть уменьшена. По умолчанию XFree уменьшает разрешение. Если вы хотите сохранить разрешение и уменьшить частоту обновления, то вы должны вставить новую строку Modeline в ваш файл XF86Config, которая определяет разрешение с более низкой частотой обновления. Например измените старое значение

Modeline "1024x768"  75  1024 1048 1184 1328 768 771 777 806 -hsync -vsync

на

Modeline "1024x768"  65  1024 1032 1176 1344 768 771 777 806 -hsync -vsync.

Магические числа 75 и 65---это соответствующие частоты часов, которые вам выдаст X в вашем файле .X.err. Посмотрите файл 'monitors' в документации по XFree86 для строки Modelines подходящей для максимальной частоты часов вашей видеокарты, которая может работать с 16-битным цветом.

Запуск XFree86

Когда ваш файл XF86Config настроен, вы готовы запустить X-сервер и позволить ему работать. Первым делом убедитесь, что /usr/X11R6/bin находится в списке поиска программ (PATH).

Командой для запуска XFree86 является

startx

Это надстройка над xinit (в случае если вы использовали xinit на других системах с UNIX).

Эта команда запустит X-сервер и затем запустит команды перечисленные в файле .xinitrc в вашем домашнем каталоге. .xinitrc---это просто скрипт для командного интерпретатора, содержащий список запускаемых X-клиентов. Если этот файл не существует, то будет запущен системный файл /usr/X11R6/lib/X11/xinit/xinitrc.

Стандартный файл .xinitrc выглядит примерно так:

#!/bin/sh

xterm -fn 7x13bold -geometry 80x32+10+50 &
xterm -fn 9x15bold -geometry 80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &

exec fvwm2

Этот скрипт запустит двух клиентов xterm, программу oclock, и установит цвет главного окна (фона) в значение midnightblue. Затем он запустит оконный менеджер fvwm2. Заметьте, что fvwm2 запускает с помощью команды exec командного процессора; это заменит процесс xinit на процесс fvwm2. Как только процесс fvwm2 закончится, выполнение X-сервера будет завершено. Вы можете заставить fvwm2 выйти используя основное меню: нажмите 1-ю кнопку мыши на десктопе---появится всплывающее меню, которое позволит вам Exit Fvwm2.

Убедитесь, что последняя команда в .xinitrc запускается с помощью exec, и что она не помещается в фоновый режим (нет знака амперсанд в конце строки). Иначе выполнение X-сервера будет завершено когда он запустит всех клиентов, перечисленных в файле .xinitrc

Также вы можете выйти из X нажав на комбинацию клавиш ctrl-alt-backspace. Это сразу завершит выполнение X-сервера, выходя из оконной системы.

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

Если вы новичок в среде X Window System, то мы советуем вам купить книгу, такую как The Joy of X: An Overview of the X Window System by Niall Mansfield (Addison-Wesley 1993, ISBN 0201-565129). Использование и настройка X слишком сложны, для того чтобы описать их здесь. Смотрите справочные страницы для команд xterm, oclock, и fvwm2 для начала работы.

Использование

Авторские права на этот документ принадлежат Eric S. Raymond, 1996. Вы можете свободно использовать, распространять и воспроизводить его, обеспечивая следующие условия:

Не опускать или изменять это уведомление об авторских правах.

Не опускать или изменять номер версии и дату.

Не опускать или изменять указатель на текущую WWW-версию документа.

Явно помечать любую сокращенную или измененную версию.

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