source: x/installing/xorg.xml@ e257101

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since e257101 was e257101, checked in by DJ Lucas <dj@…>, 18 years ago

xorg and xorg7 cleanup

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@6038 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 19.3 KB
RevLine 
[feeb99a]1<?xml version="1.0" encoding="ISO-8859-1"?>
[ff769b8c]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
[feeb99a]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[3e7ee20]7 <!ENTITY xorg-download-http "http://xorg.freedesktop.org/releases/X11R&xorg-version;/src-single/X11R&xorg-version;-src.tar.bz2 ">
8 <!ENTITY xorg-download-ftp "ftp://expo.x.org/pub/X11R&xorg-version;/src-single/X11R&xorg-version;-src.tar.bz2">
9 <!ENTITY xorg-md5sum "52ad69832db5c36c7041f90625ed4598">
10 <!ENTITY xorg-size "45 MB">
11 <!ENTITY xorg-buildsize "864 MB">
12 <!ENTITY xorg-time "11.68 SBU">
[feeb99a]13]>
14
[e77976f]15<sect1 id="xorg" xreflabel="Xorg-&xorg-version;">
[36c3ba1]16 <?dbhtml filename="xorg.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
[76a39aa]21 <keywordset>
22 <keyword role="package">X11R&xorg-version;-src.tar</keyword>
[3f5f915]23 <keyword role="ftpdir">Xorg</keyword>
[76a39aa]24 </keywordset>
[36c3ba1]25 </sect1info>
26
27 <title>Xorg-&xorg-version;</title>
28
29 <indexterm zone="xorg">
30 <primary sortas="a-xorg">Xorg</primary>
31 </indexterm>
32
33 <sect2 role="package">
34 <title>Introduction to Xorg</title>
35
[e77976f]36 <!-- <note>
[3e7ee20]37 <para>There are three packages in BLFS that implement the <application>X
[d9c80e1]38 Window System</application>: <application>Xorg</application>
39 (X11R6 and X11R7) and <application>XFree86</application>. These
40 packages are all quite similar. In fact, the base system of
41 <application>Xorg</application> is
[3e7ee20]42 <application>XFree86</application>-4.4.0RC2. Licensing was the original
43 reason for the split. <application>Xorg-&xorg7-version;</application>
44 introduces a completely autotooled build system, but is otherwise the
[d9c80e1]45 same codebase as <application>Xorg-&xorg-version;</application>.
[36c3ba1]46 Most large commercial distributions have decided to use the
[3e7ee20]47 <application>Xorg</application> package, but several still provide
[36c3ba1]48 <application>XFree86</application>.</para>
49
50 <para>A second reason for the forking of <application>X</application>
51 packages is the stated goals of the developers. Some developers were
52 unhappy with the administration and progress of
53 <application>XFree86</application>. X.org's future plans include
[d9c80e1]54 significant improvements to the internals of the system and more
[3e7ee20]55 frequent releases.</para>
[36c3ba1]56
57 <para><application>XFree86</application> continues to be a solid,
58 conservative application with excellent driver support.</para>
[e77976f]59 </note> -->
[36c3ba1]60
61 <para><application>Xorg</application> is a freely redistributable open-source
62 implementation of the <application>X</application> Window System. This
[3e7ee20]63 system provides a client/server interface between display hardware (the
[36c3ba1]64 mouse, keyboard, and video displays) and the desktop environment, while also
65 providing both the windowing infrastructure and a standardized application
66 interface (API).</para>
67
68 <bridgehead renderas="sect3">Package Information</bridgehead>
69 <itemizedlist spacing="compact">
70 <listitem>
71 <para>Download (HTTP): <ulink url="&xorg-download-http;"/></para>
72 </listitem>
73 <listitem>
74 <para>Download (FTP): <ulink url="&xorg-download-ftp;"/></para>
75 </listitem>
76 <listitem>
77 <para>Download MD5 sum: &xorg-md5sum;</para>
78 </listitem>
79 <listitem>
80 <para>Download size: &xorg-size;</para>
81 </listitem>
82 <listitem>
83 <para>Estimated disk space required: &xorg-buildsize;</para>
84 </listitem>
85 <listitem>
86 <para>Estimated build time: &xorg-time;</para>
87 </listitem>
88 </itemizedlist>
89
[10bffdc8]90 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
91 <itemizedlist spacing="compact">
92 <listitem>
93 <para>Required patch: <ulink
[babac3ec]94 url="&patch-root;/xorg-&xorg-version;-luit_race-1.patch"/></para>
[10bffdc8]95 </listitem>
96 </itemizedlist>
97
[7d7bb83]98 <bridgehead renderas="sect3">Xorg Dependencies</bridgehead>
[36c3ba1]99
100 <bridgehead renderas="sect4">Required</bridgehead>
[76a39aa]101 <para role="required"><xref linkend="libpng"/> and
[36c3ba1]102 <xref linkend="fontconfig"/></para>
103
104 <bridgehead renderas="sect4">Optional</bridgehead>
[76a39aa]105 <para role="optional"><xref linkend="linux-pam"/></para>
[36c3ba1]106
[1663c2b5]107 <para condition="html" role="usernotes">User Notes:
108 <ulink url='&blfs-wiki;/Xorg-&xorg-version;'/></para>
[18bcaf6]109
[36c3ba1]110 <bridgehead renderas="sect3">Download Instructions</bridgehead>
111
112 <para>As an alternative to downloading the entire source tree in a single
[96ffdca]113 file, there are several smaller files that can be fetched from the
[3e7ee20]114 download location (directory /pub/X11R&xorg-version;/src/):</para>
[36c3ba1]115
116 <itemizedlist spacing='compact'>
117 <listitem>
118 <para><filename>X11R&xorg-version;-src1.tar.gz</filename></para>
119 </listitem>
120 <listitem>
121 <para><filename>X11R&xorg-version;-src2.tar.gz</filename></para>
122 </listitem>
123 <listitem>
124 <para><filename>X11R&xorg-version;-src3.tar.gz</filename></para>
125 </listitem>
126 <listitem>
127 <para><filename>X11R&xorg-version;-src4.tar.gz</filename></para>
128 </listitem>
129 <listitem>
130 <para><filename>X11R&xorg-version;-src5.tar.gz</filename></para>
131 </listitem>
132 <listitem>
133 <para><filename>X11R&xorg-version;-src6.tar.gz</filename></para>
134 </listitem>
135 <listitem>
136 <para><filename>X11R&xorg-version;-src7.tar.gz</filename></para>
137 </listitem>
138 </itemizedlist>
139
140 <para>The first package contains the <application>Xorg</application>
141 libraries and support programs, the second contains standard
142 <application>X</application> programs, the third contains the
143 <application>X</application> server, the fourth and fifth are fonts,
144 the sixth is normal documentation, and the seventh is hardcopy
145 documentation.</para>
146
[96ffdca]147 <para>To check the files for integrity, download the
[36c3ba1]148 <filename>md5sums</filename> file. Then:</para>
149
150<screen><userinput>md5sum -c md5sums</userinput></screen>
151
[96ffdca]152 <para>For each file you downloaded, an
153 <computeroutput>OK</computeroutput> status should be displayed.</para>
[36c3ba1]154
155 </sect2>
156
157 <sect2 role="kernel" id='xorg-kernel'>
158 <title>Kernel Configuration</title>
159
160 <indexterm zone="xorg xorg-kernel">
161 <primary sortas="d-Xorg">Xorg</primary>
162 </indexterm>
163
164 <para>If you have an Intel P6 (Pentium Pro, Pentium II and later), it is
165 recommended that you compile MTRR (Memory Type Range Registers) support
166 into the kernel. The kernel can map Cyrix and AMD CPUs to the MTRR
167 interface, so selecting this option is useful for those processors also.
168 This option is found in the "Processor type and features" menu. It can
169 increase performance of image write operations 2.5 times or more on PCI or
170 AGP video cards.</para>
171
[9ec95e7]172 <para>In the "Character Devices" section of the "Device Drivers" menu,
173 enable AGP Support and select the chipset support on your motherboard. If
174 you do not know the chipset, you may select all the chip types at the
175 expense of extra kernel size. You can usually determine your motherboard's
176 chipset by running the command <command>lspci</command>, a program from the
177 <xref linkend="pciutils"/> package.</para>
[36c3ba1]178
179 <para>In the "Character Devices" section, <emphasis>disable</emphasis>
180 Direct Rendering Manager unless you have a Direct Rendering Infrastructure
181 (DRI) supported video card. A complete list of DRI supported video cards
182 can be found at <ulink url="http://dri.sourceforge.net" /> in the "Status"
183 section. Currently, supported cards include those from 3dfx (Voodoo,
184 Banshee), 3Dlabs, ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel
185 (i810, i815), and Matrox (G200, G400, G450).</para>
186
[96ffdca]187 <para>Additionally, NVidia provides their own closed source binary drivers,
[36c3ba1]188 which do not make use of DRI. If you intend to use these drivers, do not
189 enable DRI.</para>
190
191 <para>If you made any changes to the kernel configuration, recompile and
192 install the new kernel.</para>
193
194 </sect2>
195
196 <sect2 role="installation">
197 <title>Installation of Xorg</title>
198
[10bffdc8]199 <sect3>
[3e7ee20]200 <title>Various build fixes</title>
[10bffdc8]201
202 <para>The <application>Xorg</application> sources must be patched in
[3e7ee20]203 order to avoid a race condition with the <application>luit</application>
[aebc72fa]204 program. Additionally, the server portion of
[e257101]205 <application>Xorg</application> contains 2
206 <ulink url="http://wiki.x.org/wiki/SecurityPage">security vulnerabilities</ulink>.
[504d0c05]207 Fix these issues with the following commands:</para>
[10bffdc8]208
[18bcaf6]209<screen><userinput>patch -Np1 -i ../xorg-&xorg-version;-luit_race-1.patch &amp;&amp;
[504d0c05]210sed -i 's/geteuid /geteuid() /' \
[e257101]211 programs/Xserver/hw/xfree86/common/xf86Init.c &amp;&amp;
212sed -i 's/ntri &amp; sizeof/ntri * sizeof/' programs/Xserver/render/mitri.c</userinput></screen>
[3e7ee20]213
[aebc72fa]214<!-- To be removed if/when proposed glibc patch is added to LFS SVN
215 Leave in in for a couple of weeks with 'you may need' and a testcase
216 around it to save the support list silly questions. Should remove in
217 a couple of weeks -->
[96ffdca]218 <para>Recent <application>Glibc</application> may have a problem with its
219 installed <filename>sys/kd.h</filename> file.
220 This has recently been fixed in LFS SVN. Execute the
221 following commands to work around a broken <filename>kd.h</filename>
222 file. The commands will only make the modification if needed:</para>
[aebc72fa]223
224<screen><userinput>grep "__undef_LINUX" \
225 /usr/include/sys/kd.h 2&gt;&amp;1 &gt; /dev/null || \
226 sed -i.bak '/CONFIG_H/i #include &lt;linux/types.h&gt;' \
227 programs/Xserver/hw/xfree86/os-support/linux/lnx_agp.c</userinput></screen>
228<!-- End remove -->
229
230
231
[d9c80e1]232 <para>Additionally, if you choose to install
233 <application>Xorg</application> to any prefix other than
[96ffdca]234 <filename class="directory">/usr/X11R6</filename>, the
235 <application>luit</application> package
[d9c80e1]236 needs another correction to fix a hard coded path. Execute the
[3e7ee20]237 following command:</para>
238
[c5c2654]239<screen><userinput>sed -i 's@/usr/X11R6@<replaceable>&lt;/usr&gt;</replaceable>@' programs/luit/parser.h</userinput></screen>
[10bffdc8]240
241 </sect3>
242
[36c3ba1]243 <sect3>
244 <title>Suppressing Xprint-related Modification to '/etc'</title>
245
246 <para><application>Xorg</application> insists on putting
247 its boot and profile scripts into the <filename
248 class="directory">/etc</filename> directory even if specifically told
249 not to compile anything Xprint server or client related (see
250 <filename>host.def</filename> below). The following command will
251 suppress any such modifications:</para>
252
253<screen><userinput>sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile</userinput></screen>
254
255 </sect3>
256
257 <sect3>
258 <title>Setting Up a Shadow Directory</title>
259
260 <para>When building <application>Xorg</application>, you should create
261 a shadow directory of symbolic links for the compiled code. To do that,
262 first make <command>lndir</command>. Starting from the
263 <filename class='directory'>xc</filename> directory:</para>
264
265<screen><userinput>pushd config/util &amp;&amp;
[9a2fba9]266make -f Makefile.ini lndir
267popd</userinput></screen>
[36c3ba1]268
269 <para>Now create the shadow tree:</para>
270
271<screen><userinput>mkdir ../xcbuild &amp;&amp;
[feeb99a]272cd ../xcbuild &amp;&amp;
[9a2fba9]273../xc/config/util/lndir ../xc</userinput></screen>
[36c3ba1]274
275 </sect3>
276
277 <sect3>
278 <title>Creating 'host.def'</title>
279
280 <para>The next step is to create the
281 <filename>config/cf/host.def</filename> file. The documentation for
282 <application>Xorg</application> indicates that the application will
283 build without a <filename>host.def</filename> file, but the included
284 libraries for <application>Fontconfig</application> and
285 <application>FreeType2</application> do not build properly on a base
286 LFS system. Therefore, you must specify that these libraries, as well
287 as others, should be imported from the system.</para>
288
289 <note>
290 <para><filename>config/cf/host.def</filename> is a C file, not a
291 shell script. Ensure the comments delimited by /* ... */ are balanced
292 when modifying the file.</para>
293 </note>
294
295<screen><userinput>cat &gt; config/cf/host.def &lt;&lt; "EOF"
296<literal>/* Begin Xorg host.def file */
297
[feeb99a]298/* System Related Information. If you read and configure only one
[36c3ba1]299 * section then it should be this one. The Intel architecture defaults
300 * are set for a i686 and higher. Axp is for the Alpha architecture
301 * and Ppc is for the Power PC. AMD64 is for the Opteron processor.
302 * Note that there have been reports that the Ppc optimization line
303 * causes segmentation faults during build. If that happens, try
[47603ac1]304 * building without the DefaultGcc2PpcOpt line. ***********/
[36c3ba1]305
[a592e42]306/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce \
307 -fno-strict-aliasing -march=i686 */
308/* #define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce \
309 -fno-strict-aliasing */
310/* #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 */
311/* #define DefaultGcc2PpcOpt -O2 -mcpu=750 */
[feeb99a]312
[7461475]313#define HasFreetype2 YES
314#define HasFontconfig YES
315#define HasExpat YES
316#define HasLibpng YES
317#define HasZlib YES
[feeb99a]318
319/*
[36c3ba1]320 * Which drivers to build. When building a static server, each of
321 * these will be included in it. When building the loadable server
[47603ac1]322 * each of these modules will be built.
[feeb99a]323 *
324#define XF86CardDrivers mga glint nv tga s3virge sis rendition \
325 neomagic i740 tdfx savage \
326 cirrus vmware tseng trident chips apm \
327 GlideDriver fbdev i128 \
[5c8344d]328 ati DevelDrivers ark \
[47603ac1]329 cyrix siliconmotion vesa vga \
330 XF86OSCardDrivers XF86ExtraCardDrivers
[feeb99a]331*/
332
333/*
334 * Select the XInput devices you want by uncommenting this.
335 *
336#define XInputDrivers mouse keyboard acecad calcomp citron \
337 digitaledge dmc dynapro elographics \
[47603ac1]338 microtouch mutouch penmount spaceorb \
339 summa wacom void magictouch aiptek
[feeb99a]340 */
341
342/* Most installs will only need this */
343
344#define XInputDrivers mouse keyboard
345
[3e7ee20]346/* Xterm is no longer built by default */
347#define BuildXterm YES
348
[fb0480d5]349/* Disable building Xprint server and clients until we get them figured
350 * out but build Xprint libraries to allow precompiled binaries such as
351 * Acrobat Reader to run.
352 */
[7461475]353
[fb0480d5]354#define XprtServer NO
355#define BuildXprintClients NO
[feeb99a]356
[2ee51e6]357/* Uncomment the following define if you would prefer to install X into
358 * /usr or change it to any other location that you prefer.
[bccbdaea]359 * The GL related defines disable compatibility symlinks (the links
[310cc9a]360 * are not needed when X is installed in /usr).
[f84ff8d]361#define ProjectRoot /usr
362#define LinkGLToUsrInclude NO
363#define LinkGLToUsrLib NO
[2ee51e6]364 */
365
[36c3ba1]366/* End Xorg host.def file */</literal>
367EOF</userinput></screen>
[feeb99a]368
[36c3ba1]369 <para>There are several other options that you may want to consider.
370 A well documented example file is
371 <filename>config/cf/xorgsite.def</filename>.</para>
[2826127]372
[36c3ba1]373 </sect3>
[feeb99a]374
[36c3ba1]375 <sect3>
376 <title>Build Commands</title>
[2826127]377
[36c3ba1]378 <para>Install <application>Xorg</application> by running the
379 following commands:</para>
380
381<screen><userinput>sed -i -e "s@^#include &lt;linux/config.h&gt;@/* &amp; */@" \
[df3a050]382 `grep -lr linux/config.h *` &amp;&amp;
[36c3ba1]383( make World 2&gt;&amp;1 | tee xorg-compile.log &amp;&amp; exit $PIPESTATUS )</userinput></screen>
384
[96ffdca]385 <para>This package does not come with a test suite.</para>
386
387 <para>Now, as the <systemitem class="username">root</systemitem>
[36c3ba1]388 user:</para>
[2826127]389
[36c3ba1]390<screen role="root"><userinput>make install &amp;&amp;
[32077ed]391make install.man</userinput></screen>
392
393 <para>If you've installed <application>Xorg</application> in the default
[d9c80e1]394 prefix listed above, run the following commands as the
[32077ed]395 <systemitem class="username">root</systemitem> user:</para>
396
397<screen role="root"><userinput>ln -v -s ../X11R6/bin /usr/bin/X11 &amp;&amp;
[b2febe4e]398ln -v -s ../X11R6/lib/X11 /usr/lib/X11 &amp;&amp;
399ln -v -s ../X11R6/include/X11 /usr/include/X11</userinput></screen>
[36c3ba1]400
[18bcaf6]401 <para>The <application>Xorg</application> fonts have been installed
402 outside of <application>Fontconfig</application>'s default search path
403 of <filename class="directory">/usr/share/fonts</filename>. In order
404 for <application>Fontconfig</application> to find the installed TrueType
405 fonts, you should make symlinks to their directories. Assuming you've
406 installed <application>Xorg</application> in the default prefix, run the
407 following commands as the <systemitem class="username">root</systemitem>
408 user:</para>
409
[96ffdca]410<screen role="root"><userinput>install -v -d -m755 /usr/share/fonts &amp;&amp;
[aebc72fa]411ln -svn /usr/X11R6/lib/X11/fonts/OTF /usr/share/fonts/X11-OTF &amp;&amp;
[18bcaf6]412ln -svn /usr/X11R6/lib/X11/fonts/TTF /usr/share/fonts/X11-TTF</userinput></screen>
413
[3f72a148]414 <para>You should now continue on to the <xref linkend="x-setup"/> section
415 to complete the configuration of
416 <application>Xorg</application>.</para>
417
[36c3ba1]418 </sect3>
419
420 </sect2>
421
422 <sect2 role="commands">
423 <title>Command Explanations</title>
424
425 <para><command>sed -i -e "s@^#include &lt;linux/config.h&gt;@...</command>:
[2826127]426 The <application>Linux-Libc-Headers</application> package installed in
[36c3ba1]427 LFS installs a <filename>/usr/include/linux/config.h</filename> file
428 which is not compatible with userspace applications. The recommended fix
429 for applications including this file is to remove it (see <ulink
[2826127]430 url="http://ep09.pld-linux.org/~mmazur/linux-libc-headers/doc/FAQ">
431 linux-libc-headers FAQ</ulink>). The <command>sed</command> uses
[bfb7882]432 <command>grep -lr</command> to replace all occurrences. If you desire, just
[2826127]433 remove (comment) the line in the appropriate video driver file if you
[36c3ba1]434 customized <filename>host.def</filename>.</para>
435
436 <para><command>( make World 2&gt;&amp;1 | tee xorg-compile.log
437 &amp;&amp; exit $PIPESTATUS )</command>: This command runs multiple
438 <filename>Makefile</filename>s to completely rebuild the system.
439 <parameter>2&gt;&amp;1</parameter> redirects error messages to the
440 same location as standard output. The <command>tee</command> command
441 allows viewing of the output while logging the results to a file. The
[bfb7882]442 parentheses around the command runs the entire command in a subshell
[36c3ba1]443 and finally the <command>exit $PIPESTATUS</command> ensures the result
444 of the <command>make</command> is returned as the result and not the
445 result of the <command>tee</command> command.</para>
446
447 <note>
448 <para>When rebuilding <application>Xorg</application>, a separate
449 command that may be used if only minor changes are made to the sources
450 is <command>make Everything</command>. This does not automatically
451 remove generated files and only rebuilds those files or programs that
452 are out of date.</para>
453 </note>
454
[b2febe4e]455 <para><command>ln -v -s ...</command>: These commands are present to
[36c3ba1]456 enable other (broken) packages to build against
457 <application>Xorg</application>, even though the Filesystem Hierarchy
458 Standard says: <quote>In general, software must not be installed or
459 managed via the above symbolic links. They are intended for utilization
460 by users only.</quote></para>
461
[3f72a148]462 <para>For a list of the package contents, see the sections in the
463 <xref linkend='xfree86-contents'/>.</para>
[36c3ba1]464
465 </sect2>
[d5d9ceb]466
[feeb99a]467</sect1>
Note: See TracBrowser for help on using the repository browser.