The Linux XFree86 HOWTO

Eric S. Raymond, перевод Alex Ott [email protected]

v6.1, 21 Апреля 2000


Этот документ описывает как получить, установить и настроить версию 5.0 XFree86 -- -вариант X Window System (X11R6) для систем с Linux. Это пошаговое руководство по настройке XFree86 на вашей машине.

1. Введение

X Window System---большая и мощная (некоторые люди могут сказать, что чрезмерно большая и слишком сложная) графическая среда для UNIX-систем. Оригинальный код X Window System был разработан в MIT; коммерческие поставщики с тех пор сделали X индустриальным стандартом для UNIX-платформ. Почти каждая рабочая станция под UNIX в мире работает с некоторым вариантом X Window system.

Свободно распространяемый перенос MIT X Window System версии 11, выпуск 6 (X11R6) для UNIX-систем с процессорами 80386/80486/Pentium был выполнен группой программистов, вначале возглавляемом David Wexelblat <[email protected]>. Эта реализация, известная как XFree86, доступна для System V/386, 386BSD, и других реализаций UNIX для систем на базе процессоров x86, включая Linux. Она включает все требуемые двоичные файлы, файлы поддержки, библиотеки и утилиты.

Полная информация о XFree86 доступна на сервере XFree86, http://www.XFree86.org.

В этом документе мы дадим пошаговое описание о том как установить и настроить XFree86 для Linux, но вы должны будете заполнить некоторые детали сами путем чтения документации поставляемой с XFree86. (Эта документация обсуждается ниже). Однако использование и настройка X Window System находится за пределами этого документа---для этих целей вам необходимо взять одну из многих хороших книг об использовании X Window System.

1.1 Другие источники информации

Если вы до этого момента никогда не слышали о Linux, то существует несколько источников базовой информации об этой системе. Наилучшим местом где можно найти информацию является домашняя страница Linux Documentation Project по адресу http://metalab.unc.edu/LDP. Там вы можете найти свежую версию этого документа, http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html

1.2 Новые версии этого документа

Новые версии Linux XFree86 HOWTO периодически будут посылаться в группы новостей comp.os.linux.help и news:comp.os.linux.announce и news.answers. Они также будут публиковаться на разных Linux WWW и FTP серверах, включая домашнюю страницу LDP.

Вы всегда можете найти самую последнюю версию этого документа в World Wide Web по адресу http://metalab.unc.edu/LDP/HOWTO/XFree86-HOWTO.html.

1.3 Обратная связь и коррективы

Если вы имеете вопросы или комментарии об этом документе, можете свободно пользоваться электронной почтой на имя Eric S. Raymond, [email protected]. Я приветствую любые предложения или критику. Если вы нашли ошибку в этом документе, то пожалуйста дайте мне знать, чтобы я мог исправить ее в следующей версии Спасибо.

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

2. Аппаратные требования

Вы можете найти обновленный список поддерживаемых карт и наборов микросхем по адресу 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 МБ или больше.

3. Установка 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, как администратор.

4. Настройка XFree86

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

Настройка 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.

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

Иногда что-нибудь может быть не совсем правильно, когда вы первый раз запускаете 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. Хорошей идеей будет посмотреть статьи посылаемые в эти группы и относящиеся к настройке вашего видео---вы можете найти кого-нибудь у кого такие же проблемы.

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

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

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

4.4 Использование 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-битным цветом.

5. Запуск 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 для начала работы.

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

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

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

5.2 Благодарности

Этот документ был создан Matt Welsh в прошлом, уже скрытом завесой. Спасибо, Matt!

6. Переводы