source: x/installing/xorg.xml@ 3f72a148

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 3f72a148 was 3f72a148, checked in by DJ Lucas <dj@…>, 18 years ago

Completed X Window section changes/x7 split

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

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