XFree86-4.4.0

Введение в XFree86

XFree86 это свободно распространяемая открытая реализация системы X Window. XFree86 предоставляет интерфейс клиент/сервер между аппаратурой отображения (мыш, клавиатура и видео дисплей) и окружением рабочего стола, а так же предоставляет оконную инфраструктуру и стандартный интерфейс приложений (API).

Информация о пакете

Дополнительно

Зависимости XFree86

Требуемые

libpng-1.2.8

Опционально

Linux-PAM-0.78; следующие пакеты включены в пакет XFree86, хотя они обновляются чаще, чем пакет XFree86 и очень рекомендуются: expat-1.95.8, FreeType-2.1.9, Fontconfig-2.2.3.

[Замечание]

Замечание

Если вы решите не устанавливать expat, FreeType2 и Fontconfig, то файл host.def ниже должен быть изменен для указания XFree86 собрать их.

Инструкции для скачивания

Есть несколько файлов, которые надо получить из места скачивания:

  • XFree86-4.4.0-src-1.tgz

  • XFree86-4.4.0-src-2.tgz

  • XFree86-4.4.0-src-3.tgz

  • XFree86-4.4.0-src-4.tgz

  • XFree86-4.4.0-src-5.tgz

  • XFree86-4.4.0-src-6.tgz

  • XFree86-4.4.0-src-7.tgz

Первые три пакета - это XFree86 программы, четвертый и пятый это шрифты, шестой - обычная документация, а седьмой - жесткая копия документации. Так же есть два пакета - doctools-1.3.1.tgz, содержащий программы генерации жесткой копии документаци и utils-1.1.0.tgz, содержащий GNU TAR и zlib, которые уже установлены в LFS системе.

Для проверки целостности ваших файлов скачайте файл SUMS.md5sum. Затем:

md5sum -c SUMS.md5sum

Ошибки вы можете увидеть только для файлов README, doctools-1.3.1.tgz, utils-1.1.0.tgz и XFree86-xtest-4.0.x.tar.bz2 если вы их не скачивали.

Установка XFree86

Параметры компиляции ядра

Если увас установлен Intel P6 (Pentium Pro, Pentium II и позднее), то рекомендуется вкомпилировать поддержку MTRR (Memory Type Range Registers) в ядро. Ядро может использовать прцессоры Cyrix и AMD с интерфейсом MTRR, поэтому выбор этой опции полезен и для этих процессоров. Эта опция находится в меню "Processor type and features". Она может увеличить скорость операций записи изображений в 2.5 и более раза для PCI или AGP видео карт.

В разделе "Character Devices" включите поддердку AGP и выберите поддержку чипсета вашей материнской платы. Если вы не знаете чипсет, то вы можете выбрать все типы чипов за счет увеличеия размера ядра. Обычно вы можете определить чипсет вашей материнской платы запуском команды lspci, программы из пакета PCI Utilities-2.1.11.

В разделе "Character Devices" выключите Direct Rendering Manager если у вас нет видеокарты, поддерживающей Direct Rendering Infrastructure (DRI). Полный список видеокарт, поддерживающих DRI, может быть найден на http://dri.sourceforge.net в разделе "Status". В настоящий момент поддерживаются следующие видеокарты: 3dfx (Voodoo, Banshee), 3Dlabs, ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel (i810, i815) и Matrox (G200, G400, G450).

Дополнительно NVidia предоставляет их собственные закрытые бинарные драйверы, которые не используют DRI. Если вы захотите использовать эти драйверы, то не включайте DRI.

Если вы внесете изменения в конфигурацию ядра, перекомпилируйте и установите новое ядро.

[Замечание]

Замечание

Если вы собираете Xorg в среде chroot, убедитесь, что версии ядра основной и целевой системы одинаковые.

Создание host.def

Хотя XFree86 может компилироваться без файла host.def, этот файл рекомендуется для настройки установки. Начинаем из директории xc.

[Замечание]

Замечание

Файл host.def это C файл, а не обычный файл конфигурации. Убедитесь, что коментарии, установленные при помощи /* и */ сбалансированы после модификации файла. Большая часть содержимого этого файла закоментирована с показом параметров по умолчанию.

cat > config/cf/host.def << "EOF" /* Begin XFree86 host.def file */ /* System Related Information. If you read and configure only one * section then it should be this one. The Intel architecture defaults * are set for a i686 and higher. Axp is for the Alpha architecture * and Ppc is for the Power PC. Замечание that there have been reports that * the Ppc optimization line causes segmentation faults during build. * If that happens, try building without the DefaultGcc2PpcOpt line. */ /* #define DefaultGcc2i386Opt -O2 -fomit-frame-pointer -march=i686 */ /* #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 */ /* #define DefaultGcc2PpcOpt -O2 -mcpu=750 */ /* The following definitions are normally set properly by XFree86's * scripts. You can uncomment them if you want to make sure. *********/ /* #define HasMTRRSupport YES */ /* Enabled in kernel; */ /* see kernel docs */ /* #define HasMMXSupport NO */ /* Any i586 or above */ /* #define HasKatmaiSupport NO */ /* PIII SSE instructions */ /* #define Has3DNowSupport NO */ /* AMD instructions */ /* This setting reduces compile time a little by omitting rarely used * input devices. You can find the complete list in * config/cf/xfree86.cf *********************************************/ #define XInputDrivers mouse void /* VIDEO DRIVERS ****************************************************/ /* If you are sure you only want the drivers for one or a few video * cards, you can delete the drivers you do not want. ***************/ #define XF86CardDrivers mga glint nv tga s3 s3virge sis rendition \ neomagic i740 tdfx savage \ cirrus vmware tseng trident chips apm \ GlideDriver fbdev i128 nsc \ ati i810 AgpGartDrivers DevelDrivers ark \ cyrix siliconmotion \ vesa vga \ dummy XF86OSCardDrivers XF86ExtraCardDrivers /* USER AND SYSTEM DEFAULT PATHS *************************************/ /* These settings set the PATH variables used by xdm. See README for */ /* detailed description and modify the following as per your need. ***/ /* #define DefaultSystemPath \ /usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin */ /* #define DefaultUserPath /usr/bin:/bin:/usr/X11R6/bin */ /* FONT SERVER AND LIBRARY SETTINGS **********************************/ /* These settings are the defaults **********************************/ /* #define BuildFontServer YES */ /*For Ghostscript Print Server*/ /* #define SharedLibFont YES */ /* #define CompressAllFonts YES */ /* #define GzipFontCompression YES */ /* These settings ensure we use our библиотеки ************************/ #define HasFreetype2 YES #define HasFontconfig YES #define HasExpat YES #define HasLibpng YES #define HasZlib YES /* The font path can be redefined in the XF86Config file *************/ /* #define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/75dpi/,\ $(FONTDIR)/100dpi/,$(FONTDIR)/Type1,$(FONTDIR)/local,\ $(FONTDIR)/TrueType,$(FONTDIR)/CID,$(FONTDIR)/Speedo */ /* INTERNATIONAL FONTS. Change to YES if you need any of them. These * are the defaults. **************************************************/ /* #define BuildCyrillicFonts NO */ /* #define BuildArabicFonts NO */ /* #define BuildISO8859_6Fonts NO */ /* #define BuildGreekFonts NO */ /* #define BuildISO8859_7Fonts NO */ /* #define BuildHebrewFonts NO */ /* #define BuildISO8859_8Fonts NO */ /* #define BuildKOI8_RFonts NO */ /* #define BuildJapaneseFonts NO */ /* #define BuildJISX0201Fonts NO */ /* #define BuildKoreanFonts NO */ /* #define BuildChineseFonts NO */ /* DOCUMENTATION SETTINGS ********************************************/ /* These setting are the defaults. ***********************************/ /* #define BuildLinuxDocHtml NO */ /* X Docs in Html format */ /* #define BuildLinuxDocPS NO */ /* PostScript format */ /* #define BuildAllSpecsDocs NO */ /* Various docs */ /* #define BuildHtmlManPages NO */ /* GENERAL SETTINGS: You generally want to leave these alone when * building X on an LFS system ***************************************/ #define GccWarningOptions -pipe /* Speed up compiles */ #define TermcapLibrary -lncurses #define XprtServer YES /* Needed by realplayer */ #define XnestServer YES #define XAppLoadDir EtcX11Directory/app-defaults #define VarLibDir /var/lib #define XFree86Devel NO #define FSUseSyslog YES #define ThreadedX YES #define HasPam NO #define SystemManDirectory /usr/share/man /*Instead of /usr/man*/ #define HasLibCrypt YES #define InstallXinitConfig YES #define InstallXdmConfig YES #define ForceNormalLib YES #define BuildSpecsDocs NO /* End XFree86 host.def file */ EOF

Отредактируйте файл под ваше оборудование и требования.

Команды сборки

Были обнаружены некоторые уязвимости в libXpm. Удаленный пользователь мог выполнить произвольный код в приложениях, использующих libXpm. Команда Xorg выпустила патч для их версии 6.8.0, но он так же работает и с XFree86. Применим патч:

patch -Np1 -i ../xorg-CAN-2004-0687-0688.patch

Установим XFree86 запуском следующих команд:

sed -i -e "s@^#include <linux/config.h>@/* & */@" \ `grep -lr linux/config.h *` && ( make WORLDOPTS="" World 2>&1 | \ tee xfree-compile.log && exit $PIPESTATUS )

А теперь, как пользователь root:

make install && make install.man && ln -sf ../X11R6/bin /usr/bin/X11 && ln -sf ../X11R6/lib/X11 /usr/lib/X11 && ln -sf ../X11R6/include/X11 /usr/include/X11

Описание команд

sed -i -e "s@^#include <linux/config.h>@...: Пакет Linux-Libc-Headers, установленный в LFS, устанавливает файл /usr/include/linux/config.h, который не совместим с пользовательскими приложениями. Рекомендованным решением для приложений, включающих этот файл, является его удаление (смотрите linux-libc-headers FAQ). sed использует grep -lr для замены всех случаев. Если хотите, просто удалите (закоментируйте) строчку в подходящем файле видео драйвера если вы настраиваете host.def.

( make WORLDOPTS="" World 2>&1 | tee xfree-compile.log && exit $PIPESTATUS ): Эта команда запускает многочисленные Makefile для полной пересборки системы. WORLDOPTS="" отключает установку по умолчанию для продолжения после возникновения любой ошибки. 2>&1 перенаправляет сообщения об ошибках в то же место, что и стандартный вывод. Команда tee позволяет просматривать вывод во время вывода результата в файл. Скобки вокруг команды запускают внутреннюю команду в подоболочке, а exit $PIPESTATUS в конце подтверждает, что общим резутьтатом будет возвращенный результат команды make, а не команды tee.

[Замечание]

Замечание

При пересборке XFree86 отдельной командой, которая может быть использована, если были сделаны только небольшие изменения в исходниках, является make Everything. Она автоматически не удаляет сгенерированные файлы, а только пересобирает более новые.

ln -sf ../X11R6/bin /usr/bin/X11 ln -sf ../X11R6/lib/X11 /usr/lib/X11 ln -sf ../X11R6/include/X11 /usr/include/X11

Эти команды нужны, чтобы другие (неправильные) пакеты могли собираться с XFree86, даже если FHS говорит: "Обычно программа не дожна быть установлена или управляема через указанные символические ссылки. Они предназначены только для использования пользователями."

Конфигурация XFree86

Отредактируйте /etc/ld.so.conf и добавьте /usr/X11R6/lib. Запустите:

ldconfig

Убедитесь, что /usr/X11R6/bin и /usr/X11R6/lib/pkgconfig добавлены в ваш PATH и, соответственно, переменная окружения PKG_CONFIG_PATH. Инструкции о том, как это сделать, описаны в разделе "Стартовые файлы оболочки Bash".

Создадим файл XF86Config при помощи:

cd ~ XFree86 -configure

Экран почернеет и вы можете услышать небольшие щелчки монитора. Эта команда создаст файл XF86Config.new в вашей домашней директории.

Отредактируйте XF86Config.new для настройки под вашу систему. Детальная информация по файлу находится в man странице по XF86Config. Кое что из того, что вы можете захотеть сделать, это:

  • Раздел "Files". Измените порядок следования путей поиска директорий шрифтов. Вы можете захотеть поместить шрифты 100dpi перед шрифтами 75dpi, если ваша система с ними работает нормально. Вы можете захотеть полностью удалить некоторые директории шрифтов.

  • Раздел "Module". Если вы будете устанавливать драйвер NVidia, то удалите строчку "dri".

  • Разделы "InputDevice". Установите параметр Device на "/dev/input/mice" и Protocol на "auto" для настройки вашей мыши. Вы можете захотеть изменить скорость автоповтора клавиатуры, добавив Option "Autorepeat" "250 30".

  • Раздел "Monitor". Установите значения VertRefresh и HorizSync если система автоматически не определила монитор и его параметры.

  • Раздел "Device". Вы можете захотеть установить некоторые из опций, доступные для вашего выбранного видео драйвера. Описание параметров драйвера находятся в man странице для этого драйвера.

  • Раздел "Screen". Добавьте элемент DefaultDepth, например: DefaultDepth 16. В SubSection для вашей глубины цвета по умолчанию добавьте строчку Modes, например: Modes "1280x1024" "1024x768". Первая указанная мода будет стартовым разрешением экрана.

Протестируем систему:

XFree86 -xf86config ~/XF86Config.new

Вы увидите только серый задний план с X-подобным курсором мыши, но это укажет на работоспособность системы. Выйдите при помощи комбинации клавиш Control-Alt-Backspace. Если система не работает, то обратитесь в /var/log/XFree86.0.log для просмотра сообщений о возникших проблемах.

Переместим файл конфигурации в его положенное место:

mv ~/XF86Config.new /etc/X11/XF86Config

Создадим .xinitrc:

cat > ~/.xinitrc << "EOF" # Begin .xinitrc file xterm -g 80x40+0+0 & xclock -g 100x100-0+0 & twm EOF

Это предоставит начальный экран с xterm и часами, которые управляются простым оконным менеджером, Tab Window Manager. Для большей иформации о twm обратитесь к его man странице.

[Замечание]

Замечание

Если надо, XFree86 создает директорию /tmp/.ICE-unix, если ее нет. Если эта директория не принадлежит root, то XFree86 задерживает запуск на несколько секунд и добавляет предупреждение в лог-файл. Это так же действует на запуск других приложений. Для увеличения производительности рекомендуестя вручную создать эту директорию перед тем, как XFree86 будет ее использовать. Добавим создание файла в /etc/sysconfig/createfiles, который используется стартовым скриптом /etc/rc.d/init.d/cleanfs.

cat >> /etc/sysconfig/createfiles << "EOF" /tmp/.ICE-unix dir 1777 root root EOF

Запустим X при помощи:

startx

для получения базовой функциональности системы

В этом месте вы должны обратиться к разделу “Компоненты системы X Window”.

Содержание

Пакет XFree86 содержит систему X Window для Linux (и других операционных систем). Он включает X сервер, шрифты, xterm, простой оконный менеджер (twm), различные утилиты, драйверы видео вывода и различные драйверы ввода, включая мыш и клавиатуру.

XFree86 так же содержит библиотеки и файлы заголовков для разработки программ для системы X Window.

Описание

[Замечание]

Замечание

Следующий перечень не исчерпывающий. Полный перечень программ находится в /usr/X11R6/bin. Для дополнительной информации по этим программам смотрите соответствующие man страницы.

Установленные программы: XFree86, xf86config, xf86cfg, startx, xinit, twm, xterm, xwininfo, x11perf, xlsfonts, xvidtune, xload, xcalc, xclock, oclock, xmodmap
Установленные библиотеки: libGL.so, libGLU.so, libSM.so, libXi.so, libXrender.so, libXt.so, libXfont.so
Установленные директории: /usr/X11R6/, /etc/X11/

Короткое описание

XFree86

это X11R6 реализация сервера системы X Window.

xf86config

это интерактивная программа для генерирования файла XF86Config для использования с XFree86 X серверами.

xf86cfg

это средство настройки XFree86, которое может быть использовано для записи инициализирующего файла конфигурации или для внесения изменений в текущую конфигурацию.

startx

это скрипт для инициализации X сессии. Он запускает xinit.

xinit

используется для запуска сервера системы X Window.

twm

(Tab Window Manager) оконный менеджер, включенный в систему X Window.

xterm

это эмулятор терминала для X.

xwininfo

это утилита информации об окне для X.

x11perf

это программа тестирования быстродействия сервера X11.

xlsfonts

это программа, выводящая список шрифтов, доступных для X сервера.

xvidtune

это программа изменения видео режима для XFree86.

xload

отображает график загрузки системы для X.

xcalc

это научный калькулятор для X.

xclock

часы для X.

oclock

часы для X.

xmodmap

это утилита для изменения раскладок клавиатуры и кнопок указателей в X.

Последнее обновление 2005-02-22 23:38:15 -0700