source: x/installing/xorg.xml@ 52535ba5

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 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 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 52535ba5 was 52535ba5, checked in by Bruce Dubbs <bdubbs@…>, 19 years ago

Tagging XFree86 and fixes to xorg

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

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