source: x/installing/xorg.xml@ 47603ac1

10.0 10.1 11.0 6.0 6.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 ken/refactor-virt krejzi/svn lazarus nosym perl-modules qt5new systemd-11177 systemd-13485 trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 47603ac1 was 47603ac1, checked in by Randy McMurchy <randy@…>, 17 years ago

Shortened line lengths in instructions through Chapter 32 (700 pages)

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

  • Property mode set to 100644
File size: 18.9 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY xorg-download-http "http://freedesktop.org/~xorg/X11R&xorg-version;/src-single/X11R&xorg-version;-src.tar.bz2">
8 <!ENTITY xorg-download-ftp " ">
9 <!ENTITY xorg-size "41 MB">
10 <!ENTITY xorg-buildsize "645 MB">
11 <!ENTITY xorg-time "17.1 SBU">
12]>
13
14<sect1 id="xorg" xreflabel="X.org-&xorg-version;">
15<sect1info>
16<othername>$LastChangedBy$</othername>
17<date>$Date$</date>
18</sect1info>
19<?dbhtml filename="xorg.html"?>
20<title>Xorg-&xorg-version;</title>
21
22
23<sect2>
24<title>Introduction to <application>Xorg</application></title>
25
26<note><para>There are two packages in <acronym>BLFS</acronym> that implement
27the <application>X</application> Window System: <application>Xorg</application>
28and <application>XFree86</application>. These packages are quite similar. In
29fact, the base system of <application>Xorg</application> is
30<application>XFree86</application>-4.4.0RC2. The primary difference as of this
31writing is the license provisions of the packages. For someone building a
32package for their own use, these issues are not significant. Most large
33commercial distributions have decided to use the
34<application>Xorg</application> package, but several still use
35<application>XFree86</application>.</para>
36
37<para>A second reason for the forking of <application>X</application> packages
38is the stated goals of the developers. Some developers were unhappy with the
39administration and progress of <application>XFree86</application>. X.org's
40future plans include significant improvements to the internals of the system
41and more frequent releases.</para>
42
43<para><application>XFree86</application> continues to be a solid, conservative
44application with excellent driver support.</para>
45
46<para>Both <application>Xorg</application> and
47<application>XFree86</application> can be installed in the same way, but this
48section will provide a slightly different and more current variation for
49installation.</para>
50</note>
51
52<para><application>Xorg</application> is a freely redistributable open-source
53implementation of the <application>X</application> Window System. This
54application provides a client/server interface between display hardware (the
55mouse, keyboard, and video displays) and the desktop environment, while also
56providing both the windowing infrastructure and a standardized application
57interface (<acronym>API</acronym>).</para>
58
59<sect3><title>Package information</title>
60<itemizedlist spacing='compact'>
61<listitem><para>Download (HTTP):
62<ulink url="&xorg-download-http;"/></para></listitem>
63<listitem><para>Download (FTP):
64<ulink url="&xorg-download-ftp;"/></para></listitem>
65<listitem><para>Download size:
66&xorg-size;</para></listitem>
67<listitem><para>Estimated disk space required:
68&xorg-buildsize;</para></listitem>
69<listitem><para>Estimated build time:
70&xorg-time;</para></listitem></itemizedlist>
71</sect3>
72
73<sect3><title><application>Xorg</application> Dependencies</title>
74
75<sect4><title>Required</title>
76<para><xref linkend="libpng"/> and <xref linkend="fontconfig"/></para>
77</sect4>
78
79<sect4><title>Optional</title>
80<para><xref linkend="Linux_PAM"/></para>
81</sect4>
82
83</sect3>
84
85<sect3><title>Download Instructions</title>
86
87<para>As an alternative to downloading the entire source tree in a single
88file, there are several files that need to be fetched from the download
89location:</para>
90
91<itemizedlist spacing='compact'>
92<listitem><para><filename>X11R&xorg-version;-src1.tar.gz</filename></para></listitem>
93<listitem><para><filename>X11R&xorg-version;-src2.tar.gz</filename></para></listitem>
94<listitem><para><filename>X11R&xorg-version;-src3.tar.gz</filename></para></listitem>
95<listitem><para><filename>X11R&xorg-version;-src4.tar.gz</filename></para></listitem>
96<listitem><para><filename>X11R&xorg-version;-src5.tar.gz</filename></para></listitem>
97<listitem><para><filename>X11R&xorg-version;-src6.tar.gz</filename></para></listitem>
98<listitem><para><filename>X11R&xorg-version;-src7.tar.gz</filename></para></listitem>
99</itemizedlist>
100
101<para>The first package contains the <application>Xorg</application> libraries
102and support programs, the second contains standard <application>X</application>
103programs, the third contains the <application>X</application> server, the
104fourth and fifth are fonts, the sixth is normal documentation, and the seventh
105is hardcopy documentation.</para>
106
107<para>To check your file for integrity, download the
108<filename>md5sums</filename> file. Then:</para>
109
110<screen><userinput><command>md5sum -c md5sums</command></userinput></screen>
111
112<para>The package (or all seven packages) should give an OK status.</para>
113</sect3>
114</sect2>
115
116<sect2>
117<title>Installation of <application>Xorg</application></title>
118
119<sect3>
120<title>Kernel Compilation Settings</title>
121<para>If you have an Intel P6 (Pentium Pro, Pentium II and later), it is
122recommended that you compile <acronym>MTRR</acronym> (Memory Type Range
123Registers) support into the kernel. The kernel can map Cyrix and AMD
124<acronym>CPU</acronym>s to the <acronym>MTRR</acronym> interface, so selecting
125this option is useful for those processors also. This option is found in the
126"Processor type and features" menu. It can increase performance of
127image write operations 2.5 times or more on <acronym>PCI</acronym> or
128<acronym>AGP</acronym> video cards.</para>
129
130<para>In the "Character Devices" section, enable <acronym>AGP</acronym> Support
131and select the chipset support on your motherboard. If you do not know the
132chipset, you may select all the chip types at the expense of extra kernel size.
133You can usually determine your motherboard's chipset by running the command
134<command>lspci</command>, a program from the <xref linkend="pciutils"/>
135package.</para>
136
137<para>In the "Character Devices" section, <emphasis>disable</emphasis> Direct
138Rendering Manager unless you have a Direct Rendering Infrastructure
139(<acronym>DRI</acronym>) supported video card. A complete list of
140<acronym>DRI</acronym> supported video cards can be found at
141<ulink url="http://dri.sourceforge.net" /> in the "Status" section.
142Currently, supported cards include those from 3dfx (Voodoo, Banshee), 3Dlabs,
143ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel (i810, i815), and
144Matrox (G200, G400, G450).</para>
145
146<para>Additionally NVidia provides their own closed source binary drivers,
147which do not make use of <acronym>DRI</acronym>. If you intend to use these
148drivers, do not enable <acronym>DRI</acronym>.</para>
149
150<para>If you made any changes to the kernel configuration, recompile and
151install the new kernel.</para>
152
153<note><para>If you build <application>Xorg</application> in a
154<command>chroot</command> environment, make sure the kernel version of the base
155system and the target system are the same.</para>
156</note>
157</sect3>
158
159<sect3><title>Suppressing Xprint-related modification to <filename
160class="directory">/etc</filename></title>
161
162<para><application>Xorg</application> insists on putting
163its boot and profile scripts into the <filename
164class="directory">/etc</filename> directory even if we specifically tell
165it not to compile anything Xprint server or client related (see
166<filename>host.def</filename> below). The following command will
167suppress any such modifications:</para>
168
169<screen><userinput><command>sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile</command></userinput></screen>
170
171</sect3>
172
173<sect3><title>Setting Up a Shadow Directory</title>
174<para>When building <application>Xorg</application>, you should create a shadow
175directory of symbolic links for the compiled code. To do that, first make
176<command>lndir</command>. Starting from the
177<filename class='directory'>xc</filename> directory:</para>
178
179<screen><userinput><command>pushd config/util &amp;&amp;
180make -f Makefile.ini lndir &amp;&amp;
181cp lndir /usr/bin/ &amp;&amp;
182popd</command></userinput></screen>
183
184<para>Now create the shadow tree:</para>
185
186<screen><userinput><command>mkdir ../xcbuild &amp;&amp;
187cd ../xcbuild &amp;&amp;
188lndir ../xc</command></userinput></screen>
189</sect3>
190
191<sect3><title>Creating <filename>host.def</filename></title>
192<para>The next step is to create the <filename>config/cf/host.def</filename>
193file. The documentation for <application>Xorg</application> indicates that the
194application will build without a <filename>host.def</filename> file, but
195the included libraries for <application>Fontconfig</application> and
196<application>FreeType2</application> do not build properly on a base
197<acronym>LFS</acronym> system. Therefore, you must specify that these
198libraries, as well as others, should be imported from the system.</para>
199
200<note><para><filename>config/cf/host.def</filename> is a C file, not a shell
201script. Ensure the comments delimited by <userinput>/*</userinput> ...
202<userinput>*/</userinput> are balanced when modifying the file.</para></note>
203
204<screen><userinput><command>cat &gt; config/cf/host.def &lt;&lt; "EOF"</command>
205/* Begin Xorg host.def file */
206
207/* System Related Information. If you read and configure only one
208 * section then it should be this one. The Intel architecture defaults
209 * are set for a i686 and higher. Axp is for the Alpha architecture
210 * and Ppc is for the Power PC. AMD64 is for the Opteron processor.
211 * Note that there have been reports that the Ppc optimization line
212 * causes segmentation faults during build. If that happens, try
213 * building without the DefaultGcc2PpcOpt line. ***********/
214
215/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce \
216 -fno-strict-aliasing -march=i686 */
217/* #define DefaultGccAMD64Opt -O2 -fno-strength-reduce \
218 -fno-strict-aliasing */
219/* #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 */
220/* #define DefaultGcc2PpcOpt -O2 -mcpu=750 */
221
222#define HasFreetype2 YES
223#define HasFontconfig YES
224#define HasExpat YES
225#define HasLibpng YES
226#define HasZlib YES
227
228/*
229 * Which drivers to build. When building a static server, each of
230 * these will be included in it. When building the loadable server
231 * each of these modules will be built.
232 *
233#define XF86CardDrivers mga glint nv tga s3virge sis rendition \
234 neomagic i740 tdfx savage \
235 cirrus vmware tseng trident chips apm \
236 GlideDriver fbdev i128 \
237 ati AgpGartDrivers DevelDrivers ark \
238 cyrix siliconmotion vesa vga \
239 XF86OSCardDrivers XF86ExtraCardDrivers
240*/
241
242/*
243 * Select the XInput devices you want by uncommenting this.
244 *
245#define XInputDrivers mouse keyboard acecad calcomp citron \
246 digitaledge dmc dynapro elographics \
247 microtouch mutouch penmount spaceorb \
248 summa wacom void magictouch aiptek
249 */
250
251/* Most installs will only need this */
252
253#define XInputDrivers mouse keyboard
254
255/* Disable building Xprint server and clients until we get them figured
256 * out but build Xprint libraries to allow precompiled binaries such as
257 * Acrobat Reader to run.
258 */
259
260#define XprtServer NO
261#define BuildXprintClients NO
262
263/* End Xorg host.def file */
264<command>EOF</command></userinput></screen>
265
266<para>There are several other options that you may want to consider. A well
267documented example file is <filename>config/cf/xorgsite.def</filename>.</para>
268</sect3>
269
270<sect3>
271<title>Build Commands</title>
272<para>Install <application>Xorg</application> by running the following
273commands:</para>
274
275<screen><userinput><command>sed -i -e "s@#include &lt;linux/config.h&gt;@/* &amp; */@" \
276 `grep -lr linux/config.h *` &amp;&amp;
277( make World 2&gt;&amp;1 | tee xorg-compile.log &amp;&amp; exit $PIPESTATUS ) &amp;&amp;
278make install &amp;&amp;
279make install.man &amp;&amp;
280ln -sf ../X11R6/bin /usr/bin/X11 &amp;&amp;
281ln -sf ../X11R6/lib/X11 /usr/lib/X11 &amp;&amp;
282ln -sf ../X11R6/include/X11 /usr/include/X11</command></userinput></screen>
283
284</sect3>
285</sect2>
286
287<sect2>
288<title>Command explanations</title>
289
290<para><command>sed -i -e "s@#include &lt;linux/config.h&gt;@...</command>: The
291<application>Linux-Libc-Headers</application> package installed in
292<acronym>LFS</acronym> installs a
293<filename>/usr/include/linux/config.h</filename> file which is not compatible
294with userspace applications. The recommended fix for applications including
295this file is to remove it (see <ulink
296url="http://ep09.pld-linux.org/~mmazur/linux-libc-headers/doc/FAQ">
297linux-libc-headers FAQ</ulink>). The <command>sed</command> uses
298<command>grep -lr</command> to replace all occurences. If you desire, just
299remove (comment) the line in the appropriate video driver file if you
300customized <filename>host.def</filename>.
301</para>
302
303<para><command>( make World 2&gt;&amp;1 | tee xorg-compile.log
304 &amp;&amp; exit $PIPESTATUS )</command>:
305This command runs multiple <filename>Makefile</filename>s to completely rebuild
306the system. <parameter>2&gt;&amp;1</parameter> redirects error messages
307to the same location as standard output. The <command>tee</command> command
308allows viewing of the output while logging the results to a file. The
309parentheses around the command runs the entire comand in a subshell and finally
310the <command>exit $PIPESTATUS</command> ensures the result of the
311<command>make</command> is returned as the result and not the result of the
312<command>tee</command> command.</para>
313
314<note><para>When rebuilding <application>Xorg</application>, a separate command
315that may be used if only minor changes are made to the sources is
316<command>make Everything</command>. This does not automatically remove generated
317files and only rebuilds those files or programs that are out of date.</para>
318</note>
319
320<para><screen><command>ln -sf ../X11R6/bin /usr/bin/X11
321ln -sf ../X11R6/lib/X11 /usr/lib/X11
322ln -sf ../X11R6/include/X11 /usr/include/X11</command></screen>
323These commands are present to enable other (broken) packages to build against
324<application>Xorg</application>, even though the Filesystem Hierarchy Standard
325says: "In general, software must not be installed or managed via the above
326symbolic links. They are intended for utilization by users only."</para>
327
328</sect2>
329
330<sect2>
331<title>Configuring Xorg</title>
332
333<para>Edit <filename>/etc/ld.so.conf</filename> and add
334<filename class="directory">/usr/X11R6/lib</filename>.
335Run:</para>
336<screen><userinput><command>ldconfig</command></userinput></screen>
337
338<para>Ensure <filename class="directory">/usr/X11R6/bin</filename>
339and <filename class="directory">/usr/X11R6/lib/pkgconfig</filename>
340are added to your <envar>PATH</envar> and <envar>PKG_CONFIG_PATH</envar>
341environment variables, respectively. Instructions for doing this are
342described in the section "<xref linkend='postlfs-config-profile'/>."</para>
343
344<para>Create the <filename>xorg.conf</filename> file with:
345<screen><userinput><command>cd ~
346Xorg -configure</command></userinput></screen>
347The screen will go black and you may hear some clicking of the monitor. This
348command will create a file, <filename>xorg.conf.new</filename> in your home
349directory.</para>
350
351<para>Edit <filename>xorg.conf.new</filename> to suit your system. The details
352of the file are located in the xorg.conf man page. Some
353things you may want to do are:</para>
354
355<itemizedlist>
356
357<listitem><para>Section "Files". Change the order of the font paths searched.
358You may want to put 100dpi fonts ahead of 75dpi fonts if your system normally
359comes up closer to 100 dots per inch. You may want to remove some font
360directories completely.</para></listitem>
361
362<listitem><para>Section "Module". If you are going to install NVidia
363drivers, remove the "dri" line.</para></listitem>
364
365<listitem><para>Sections "InputDevice". Specify the
366<parameter>Device</parameter> parameter to "/dev/input/mice" and
367<parameter>Protocol</parameter> to "auto" to set up your mouse. You may
368also want to change the keyboard autorepeat rate by adding
369<parameter>Option "Autorepeat" "250 30"</parameter>.</para></listitem>
370
371<listitem><para>Section "Monitor". Specify the
372<parameter>VertRefresh</parameter> and <parameter>HorizSync</parameter> values
373if the system does not automatically detect the monitor and its values.</para>
374</listitem>
375
376<listitem><para>Section "Device". You may want to set some of the options
377available for your selected video driver. A description of the driver
378parameters is in the man page for your driver.</para></listitem>
379
380<listitem><para>Section "Screen". Add a DefaultDepth statement such as:
381<parameter>DefaultDepth 16</parameter>. In the SubSection for your default
382depth, add a modes line such as:
383<parameter> Modes "1280x1024" "1024x768"</parameter>. The first mode listed
384will normally be the starting resolution.</para></listitem>
385
386</itemizedlist>
387
388<para>Test the system with:
389<screen><userinput><command>X -config ~/xorg.conf.new</command></userinput></screen>
390You will only get a gray background with an X-shaped mouse cursor, but it
391confirms the system is working. Exit with Control-Alt-Backspace. If the
392system does not work, take a look at <filename>/var/log/Xorg.0.log</filename>
393to see what went wrong.</para>
394
395<para>Move the configuration file to its final location:</para>
396<screen><userinput><command>mv ~/xorg.conf.new /etc/X11/xorg.conf</command></userinput></screen>
397
398<para>Create <filename>.xinitrc</filename>:
399<screen><userinput><command>cat &gt; ~/.xinitrc &lt;&lt; "EOF"</command>
400# Begin .xinitrc file
401xterm -g 80x40+0+0 &amp;
402xclock -g 100x100-0+0 &amp;
403twm
404<command>EOF</command></userinput></screen>
405This provides an initial screen with an xterm and a clock that is managed by a
406simple window manager, Tab Window Manager. For details of
407<command>twm</command>, see the man page.</para>
408
409<note>
410<para>When needed, <application>Xorg</application> creates the directory
411<filename>/tmp/.ICE-unix</filename> if it does not exist. If this directory is
412not owned by root, <application>Xorg</application> delays startup by a few
413seconds and also appends a warning to the logfile. This also affects startup of
414other applications. To improve performance, it is advisable to manually create
415the directory before <application>Xorg</application> uses it. Add the file
416creation to <filename>/etc/sysconfig/createfiles</filename> that is sourced by
417the <filename>/etc/rc.d/init.d/cleanfs</filename> startup script.</para>
418
419<screen><userinput><command>cat &gt;&gt; /etc/sysconfig/createfiles &lt;&lt; "EOF"</command>
420/tmp/.ICE-unix dir 1777 root root
421<command>EOF</command></userinput></screen>
422</note>
423
424<para>Start <application>X</application> with:
425<screen><userinput><command>startx</command></userinput></screen>
426to get a basic functional <application>X</application> Window System.</para>
427
428<para>At this point, you should check out <xref linkend='x-setup'/>.</para>
429
430<para>For a list of the package contents and a description of the commands,
431see the sections in <xref linkend='xfree86'/>.</para>
432
433</sect2>
434
435</sect1>
Note: See TracBrowser for help on using the repository browser.