XFree86 это свободно распространяемая открытая реализация системы X Window. XFree86 предоставляет интерфейс клиент/сервер между аппаратурой отображения (мыш, клавиатура и видео дисплей) и окружением рабочего стола, а так же предоставляет оконную инфраструктуру и стандартный интерфейс приложений (API).
Адрес (HTTP): http://gnu.kookel.org/ftp/XFree86/4.4.0/source/
Адрес (FTP): ftp://ftp.xfree86.org/pub/XFree86/4.4.0/source/
Контрольная сумма: ftp://ftp.xfree86.org/pub/XFree86/4.4.0/source/SUMS.md5sum
Размер: 52 MB
Требуемое дисковое пространство: 775 MB
Расчетное время сборки: 11.6 SBU
Патч безопасности: http://www.x.org/pub/X11R6.8.0/patches/xorg-CAN-2004-0687-0688.patch
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 если вы их не скачивали.
Если увас установлен 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, убедитесь, что версии ядра основной и целевой системы одинаковые.
Хотя 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 говорит: "Обычно программа не дожна быть установлена или управляема через указанные символические ссылки. Они предназначены только для использования пользователями."
Отредактируйте /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 страницы.
это X11R6 реализация сервера системы X Window.
это интерактивная программа для генерирования файла XF86Config для использования с XFree86 X серверами.
это средство настройки XFree86, которое может быть использовано для записи инициализирующего файла конфигурации или для внесения изменений в текущую конфигурацию.
это скрипт для инициализации X сессии. Он запускает xinit.
используется для запуска сервера системы X Window.
(Tab Window Manager) оконный менеджер, включенный в систему X Window.
это эмулятор терминала для X.
это утилита информации об окне для X.
это программа тестирования быстродействия сервера X11.
это программа, выводящая список шрифтов, доступных для X сервера.
это программа изменения видео режима для XFree86.
отображает график загрузки системы для X.
это научный калькулятор для X.
часы для X.
часы для X.
это утилита для изменения раскладок клавиатуры и кнопок указателей в X.
Последнее обновление 2005-02-22 23:38:15 -0700