Installation of XFree86 Kernel Compilation Settings If you have an Intel P6 (Pentium Pro, Pentium II and later) it is recommneded that you compile MTRR (Memory Type Range Registers) support into the kernel. The kernel can map Cyrix and AMD CPUs to the MTRR interface so selecting this option is useful for those processors also. This option is found in the "Processor type and features" menu. It can increase performance of image write operations 2.5 times or more on PCI or AGP video cards. In the "Character Devices" section, enable AGP Support and select the chipset support on your motherboard. If you do not know the chipset, you may select all the chip types at the expense of extra kernel size. You can usually determine your motherboard's chipset by doing: cat /proc/pci In the "Character Devices" section, disable Direct Rendering Manager unless you have a Direct Rendering Infrastructure (DRI) supported video card. See the DRI section below for a list. If you do enable DRI here, make sure you select the video card(s) you want to support as a module. If you made any changes to the kernel configuration, recompile with make dep && make bzImage && make modules && make modules_install Copy /usr/src/linux/arch/i386/boot/bzImage and /usr/src/linux/System.map to /boot, edit /etc/lilo.conf appropriately and run lilo. If you build XFree86 in a chroot environment, make sure the kernel version of the base system and the target system are the same. This is especially important if you enabled DRI support as a module as instructed above. Creating <filename>host.def</filename> Although XFree86 will compile without a host.def file, the following file is recommended for customizing the installation. Start from the xc directory. cat > config/cf/host.def << "EOF" # Begin XFree86 hosts.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. Note 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 instuctions */ /* #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 s3virge rendition \ cirrus vmware tseng chips apm \ fbdev i128 \ ati AgpGartDrivers DevelDrivers ark cyrix \ vesa vga XF86OSCardDrivers /* FONT SERVER AND LIBRARY SETTINGS ****************************************/ /* These setting should be set by default, but we are making sure. *********/ #define BuildFontServer YES /* Need for GhostScript Print Server */ #define SharedLibFont YES #define CompressAllFonts YES #define GzipFontCompression YES /* These setting ensure we use the proper version of freetype **************/ #define HasFreetype2 YES #define BuildFreetype2Library NO #define Freetype2Dir /usr /* 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 /* X Docs in PostScript format */ #define BuildAllSpecsDocs NO /* Various docs */ #define BuildHtmlManPages NO /* Linux Distribution Information - Not essential that it is totally right.*/ #define LinuxDistribution LFS #define LinuxCLimbMajorVersion 3 #define LinuxCLimbMinorVersion 3 #define LinuxCLimbTeenyVersion 0 /* GENERAL SETTINGS: You generally want to leave these alone when * building X on an LFS system *********************************************/ #define GccWarningOptions -pipe #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 HasZlib YES #define HasNCurses YES #define HasPam NO #define SystemManDirectory /usr/share/man #define HasLibCrypt YES #define InstallXinitConfig YES #define InstallXdmConfig YES #define ForceNormalLib YES #define BuildSpecsDocs NO # End XFree86 host.def file EOF Edit the file for your hardware and desires. Build Commands Install XFree86 by running the following commands: patch -Np1 -i ../4.2.0-4.2.1.diff && make World 2>&1 | tee xfree-compile.log && make install && make install.man && ln -sf /usr/X11R6/bin /usr/bin/X11 && ln -sf /usr/X11R6/lib/X11 /usr/lib/X11 && ln -sf /usr/X11R6/include/X11 /usr/include/X11