source: x/installing/xorg.xml@ 2826127

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 2826127 was 2826127, checked in by Bruce Dubbs <bdubbs@…>, 19 years ago

Tagging for xorg

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

  • Property mode set to 100644
File size: 20.3 KB
RevLine 
[feeb99a]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
[8d09223]7 <!ENTITY xorg-download-http " ">
[197d9d4]8 <!ENTITY xorg-download-ftp "ftp://ftp.opengroup.org/pub/x.org/pub/X11R&xorg-version;/src-single/X11R&xorg-version;-src.tar.bz2">
[7461475]9 <!ENTITY xorg-size "41 MB">
[feeb99a]10 <!ENTITY xorg-buildsize "645 MB">
11 <!ENTITY xorg-time "17.1 SBU">
12]>
13
14<sect1 id="xorg" xreflabel="X.org-&xorg-version;">
[a0f03b0]15<sect1info>
[2826127]16 <othername>$LastChangedBy$</othername>
17 <date>$Date$</date>
[a0f03b0]18</sect1info>
[2826127]19
[feeb99a]20<?dbhtml filename="xorg.html"?>
21<title>Xorg-&xorg-version;</title>
22
[2826127]23<indexterm zone="xorg">
24 <primary sortas="a-xorg">xorg</primary>
25</indexterm>
26
[feeb99a]27
28<sect2>
29<title>Introduction to <application>Xorg</application></title>
30
[d5d9ceb]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
[7461475]35<application>XFree86</application>-4.4.0RC2. The primary difference as of this
[d5d9ceb]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
[feeb99a]40<application>XFree86</application>.</para>
41
[d5d9ceb]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>
[feeb99a]47
48<para><application>XFree86</application> continues to be a solid, conservative
49application with excellent driver support.</para>
50
[d5d9ceb]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>
[feeb99a]55</note>
56
57<para><application>Xorg</application> is a freely redistributable open-source
[d5d9ceb]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>
[feeb99a]63
64<sect3><title>Package information</title>
[2826127]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>
[feeb99a]72</sect3>
73
[2826127]74<sect3>
75 <title><application>Xorg</application> Dependencies</title>
[feeb99a]76
[2826127]77<sect4>
78 <title>Required</title>
79 <para><xref linkend="libpng"/> and
80 <xref linkend="fontconfig"/></para>
[feeb99a]81</sect4>
82
[2826127]83<sect4>
84 <title>Optional</title>
85 <para><xref linkend="Linux_PAM"/></para>
[feeb99a]86</sect4>
87
88</sect3>
89
90<sect3><title>Download Instructions</title>
91
[7461475]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
[197d9d4]94location (directory /pub/x.org/pub/X11R&xorg-version;/src/):</para>
[7461475]95
[feeb99a]96<itemizedlist spacing='compact'>
[2826127]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>
[feeb99a]104</itemizedlist>
105
[d5d9ceb]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
[feeb99a]110is hardcopy documentation.</para>
111
[7461475]112<para>To check your file for integrity, download the
[d5d9ceb]113<filename>md5sums</filename> file. Then:</para>
[feeb99a]114
115<screen><userinput><command>md5sum -c md5sums</command></userinput></screen>
116
[7461475]117<para>The package (or all seven packages) should give an OK status.</para>
[feeb99a]118</sect3>
119</sect2>
120
121<sect2>
[2826127]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>
[feeb99a]171</sect3>
172
[2826127]173<sect3>
174 <title>Suppressing Xprint-related modification to <filename class="directory">/etc</filename></title>
[6029a44]175
[2826127]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 we specifically tell
179 it 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>
[6029a44]183
184<screen><userinput><command>sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile</command></userinput></screen>
185
186</sect3>
187
[2826127]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 <filename class='directory'>xc</filename> directory:
194 </para>
[feeb99a]195
196<screen><userinput><command>pushd config/util &amp;&amp;
[2826127]197make -f Makefile.ini lndir</command></userinput></screen>
198
199<para>Now, as the root user:</para>
200
201<screen><userinput role='root'><command>cp lndir /usr/bin/</command></userinput></screen>
202
203<para>And back as a regular user::</para>
204<screen><userinput><command>popd</command></userinput></screen>
[feeb99a]205
206<para>Now create the shadow tree:</para>
207
208<screen><userinput><command>mkdir ../xcbuild &amp;&amp;
209cd ../xcbuild &amp;&amp;
210lndir ../xc</command></userinput></screen>
211</sect3>
212
[2826127]213<sect3>
214 <title>Creating <filename>host.def</filename></title>
215
216 <para>The next step is to create the <filename>config/cf/host.def</filename>
217 file. The documentation for <application>Xorg</application> indicates that the
218 application will build without a <filename>host.def</filename> file, but
219 the included libraries for <application>Fontconfig</application> and
220 <application>FreeType2</application> do not build properly on a base
221 <acronym>LFS</acronym> system. Therefore, you must specify that these
222 libraries, as well as others, should be imported from the system.
223 </para>
224
225 <note><para><filename>config/cf/host.def</filename> is a C file, not a shell
226 script. Ensure the comments delimited by <userinput>/*</userinput> ...
227 <userinput>*/</userinput> are balanced when modifying the file.</para>
228 </note>
[feeb99a]229
230<screen><userinput><command>cat &gt; config/cf/host.def &lt;&lt; "EOF"</command>
231/* Begin Xorg host.def file */
232
233/* System Related Information. If you read and configure only one
[47603ac1]234 * section then it should be this one. The Intel architecture defaults
235 * are set for a i686 and higher. Axp is for the Alpha architecture
236 * and Ppc is for the Power PC. AMD64 is for the Opteron processor.
237 * Note that there have been reports that the Ppc optimization line
238 * causes segmentation faults during build. If that happens, try
239 * building without the DefaultGcc2PpcOpt line. ***********/
[feeb99a]240
[47603ac1]241/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce \
242 -fno-strict-aliasing -march=i686 */
243/* #define DefaultGccAMD64Opt -O2 -fno-strength-reduce \
244 -fno-strict-aliasing */
[feeb99a]245/* #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 */
246/* #define DefaultGcc2PpcOpt -O2 -mcpu=750 */
247
[7461475]248#define HasFreetype2 YES
249#define HasFontconfig YES
250#define HasExpat YES
251#define HasLibpng YES
252#define HasZlib YES
[feeb99a]253
254/*
[47603ac1]255 * Which drivers to build. When building a static server, each of
256 * these will be included in it. When building the loadable server
257 * each of these modules will be built.
[feeb99a]258 *
259#define XF86CardDrivers mga glint nv tga s3virge sis rendition \
260 neomagic i740 tdfx savage \
261 cirrus vmware tseng trident chips apm \
262 GlideDriver fbdev i128 \
[47603ac1]263 ati AgpGartDrivers DevelDrivers ark \
264 cyrix siliconmotion vesa vga \
265 XF86OSCardDrivers XF86ExtraCardDrivers
[feeb99a]266*/
267
268/*
269 * Select the XInput devices you want by uncommenting this.
270 *
271#define XInputDrivers mouse keyboard acecad calcomp citron \
272 digitaledge dmc dynapro elographics \
[47603ac1]273 microtouch mutouch penmount spaceorb \
274 summa wacom void magictouch aiptek
[feeb99a]275 */
276
277/* Most installs will only need this */
278
279#define XInputDrivers mouse keyboard
280
[fb0480d5]281/* Disable building Xprint server and clients until we get them figured
282 * out but build Xprint libraries to allow precompiled binaries such as
283 * Acrobat Reader to run.
284 */
[7461475]285
[fb0480d5]286#define XprtServer NO
287#define BuildXprintClients NO
[feeb99a]288
289/* End Xorg host.def file */
290<command>EOF</command></userinput></screen>
291
[2826127]292 <para>There are several other options that you may want to consider. A well
293 documented example file is <filename>config/cf/xorgsite.def</filename>.
294 </para>
295
[feeb99a]296</sect3>
297
298<sect3>
[2826127]299 <title>Build Commands</title>
300
301 <para>Install <application>Xorg</application> by running the following commands:</para>
[feeb99a]302
[00e4e18]303<screen><userinput><command>sed -i -e "s@^#include &lt;linux/config.h&gt;@/* &amp; */@" \
[df3a050]304 `grep -lr linux/config.h *` &amp;&amp;
[2826127]305( make World 2&gt;&amp;1 | tee xorg-compile.log &amp;&amp; exit $PIPESTATUS )</command></userinput></screen>
306
307<para>Againas as the root user:</para>
308
309<screen><userinput role='root'><command>make install &amp;&amp;
[feeb99a]310make install.man &amp;&amp;
311ln -sf ../X11R6/bin /usr/bin/X11 &amp;&amp;
312ln -sf ../X11R6/lib/X11 /usr/lib/X11 &amp;&amp;
313ln -sf ../X11R6/include/X11 /usr/include/X11</command></userinput></screen>
314
315</sect3>
316</sect2>
317
318<sect2>
319<title>Command explanations</title>
320
[2826127]321 <para><command>sed -i -e "s@^#include &lt;linux/config.h&gt;@...</command>:
322 The <application>Linux-Libc-Headers</application> package installed in
323 <acronym>LFS</acronym> installs a
324 <filename>/usr/include/linux/config.h</filename> file which is not compatible
325 with userspace applications. The recommended fix for applications including
326 this file is to remove it (see <ulink
327 url="http://ep09.pld-linux.org/~mmazur/linux-libc-headers/doc/FAQ">
328 linux-libc-headers FAQ</ulink>). The <command>sed</command> uses
329 <command>grep -lr</command> to replace all occurences. If you desire, just
330 remove (comment) the line in the appropriate video driver file if you
331 customized <filename>host.def</filename>.
[d5d9ceb]332</para>
333
[2826127]334 <para><command>( make World 2&gt;&amp;1 | tee xorg-compile.log
335 &amp;&amp; exit $PIPESTATUS )</command>:
336 This command runs multiple <filename>Makefile</filename>s to completely rebuild
337 the system. <parameter>2&gt;&amp;1</parameter> redirects error messages
338 to the same location as standard output. The <command>tee</command> command
339 allows viewing of the output while logging the results to a file. The
340 parentheses around the command runs the entire comand in a subshell and finally
341 the <command>exit $PIPESTATUS</command> ensures the result of the
342 <command>make</command> is returned as the result and not the result of the
343 <command>tee</command> command.
344 </para>
345
346 <note><para>When rebuilding <application>Xorg</application>, a separate command
347 that may be used if only minor changes are made to the sources is
348 <command>make Everything</command>. This does not automatically remove generated
349 files and only rebuilds those files or programs that are out of date.</para>
350 </note>
[feeb99a]351
352<para><screen><command>ln -sf ../X11R6/bin /usr/bin/X11
353ln -sf ../X11R6/lib/X11 /usr/lib/X11
354ln -sf ../X11R6/include/X11 /usr/include/X11</command></screen>
[d5d9ceb]355These commands are present to enable other (broken) packages to build against
356<application>Xorg</application>, even though the Filesystem Hierarchy Standard
357says: "In general, software must not be installed or managed via the above
[feeb99a]358symbolic links. They are intended for utilization by users only."</para>
359
360</sect2>
361
[2826127]362<sect2 id='xorg-config'>
[feeb99a]363<title>Configuring Xorg</title>
364
365<para>Edit <filename>/etc/ld.so.conf</filename> and add
[2826127]366 <filename class="directory">/usr/X11R6/lib</filename>. Run:
367</para>
368
369<indexterm zone="xorg xorg-config">
370 <primary sortas="e-etc-ld-so.conf">/etc/ld.so.conf</primary>
371</indexterm>
372
[d5d9ceb]373<screen><userinput><command>ldconfig</command></userinput></screen>
[feeb99a]374
[7461475]375<para>Ensure <filename class="directory">/usr/X11R6/bin</filename>
376and <filename class="directory">/usr/X11R6/lib/pkgconfig</filename>
377are added to your <envar>PATH</envar> and <envar>PKG_CONFIG_PATH</envar>
[21aae54]378environment variables, respectively. Instructions for doing this are
[d5d9ceb]379described in the section "<xref linkend='postlfs-config-profile'/>."</para>
[feeb99a]380
381<para>Create the <filename>xorg.conf</filename> file with:
382<screen><userinput><command>cd ~
383Xorg -configure</command></userinput></screen>
384The screen will go black and you may hear some clicking of the monitor. This
385command will create a file, <filename>xorg.conf.new</filename> in your home
386directory.</para>
[2826127]387
388<indexterm zone="xorg xorg-config">
389 <primary sortas="e-etc-X11-xorg-conf">/etc/X11/xorg.conf</primary>
390</indexterm>
[feeb99a]391
[d5d9ceb]392<para>Edit <filename>xorg.conf.new</filename> to suit your system. The details
[7461475]393of the file are located in the xorg.conf man page. Some
[d5d9ceb]394things you may want to do are:</para>
[feeb99a]395
396<itemizedlist>
[7461475]397
[feeb99a]398<listitem><para>Section "Files". Change the order of the font paths searched.
399You may want to put 100dpi fonts ahead of 75dpi fonts if your system normally
400comes up closer to 100 dots per inch. You may want to remove some font
401directories completely.</para></listitem>
[c3af16e]402
403<listitem><para>Section "Module". If you are going to install NVidia
[23ced54b]404drivers, remove the "dri" line.</para></listitem>
[feeb99a]405
[7461475]406<listitem><para>Sections "InputDevice". Specify the
407<parameter>Device</parameter> parameter to "/dev/input/mice" and
408<parameter>Protocol</parameter> to "auto" to set up your mouse. You may
409also want to change the keyboard autorepeat rate by adding
410<parameter>Option "Autorepeat" "250 30"</parameter>.</para></listitem>
411
[d5d9ceb]412<listitem><para>Section "Monitor". Specify the
413<parameter>VertRefresh</parameter> and <parameter>HorizSync</parameter> values
414if the system does not automatically detect the monitor and its values.</para>
415</listitem>
[feeb99a]416
417<listitem><para>Section "Device". You may want to set some of the options
418available for your selected video driver. A description of the driver
419parameters is in the man page for your driver.</para></listitem>
420
[d5d9ceb]421<listitem><para>Section "Screen". Add a DefaultDepth statement such as:
422<parameter>DefaultDepth 16</parameter>. In the SubSection for your default
423depth, add a modes line such as:
424<parameter> Modes "1280x1024" "1024x768"</parameter>. The first mode listed
425will normally be the starting resolution.</para></listitem>
[feeb99a]426
427</itemizedlist>
[d5d9ceb]428
[feeb99a]429<para>Test the system with:
[fc7ca4a2]430<screen><userinput><command>X -config ~/xorg.conf.new</command></userinput></screen>
[feeb99a]431You will only get a gray background with an X-shaped mouse cursor, but it
432confirms the system is working. Exit with Control-Alt-Backspace. If the
[d5d9ceb]433system does not work, take a look at <filename>/var/log/Xorg.0.log</filename>
434to see what went wrong.</para>
[feeb99a]435
436<para>Move the configuration file to its final location:</para>
437<screen><userinput><command>mv ~/xorg.conf.new /etc/X11/xorg.conf</command></userinput></screen>
438
439<para>Create <filename>.xinitrc</filename>:
440<screen><userinput><command>cat &gt; ~/.xinitrc &lt;&lt; "EOF"</command>
441# Begin .xinitrc file
442xterm -g 80x40+0+0 &amp;
443xclock -g 100x100-0+0 &amp;
444twm
445<command>EOF</command></userinput></screen>
446This provides an initial screen with an xterm and a clock that is managed by a
[d5d9ceb]447simple window manager, Tab Window Manager. For details of
448<command>twm</command>, see the man page.</para>
[2826127]449
450<indexterm zone="xorg xorg-config">
451 <primary sortas="e-AA.xinitrc">~/.xinitrc</primary>
452</indexterm>
[feeb99a]453
454<note>
455<para>When needed, <application>Xorg</application> creates the directory
456<filename>/tmp/.ICE-unix</filename> if it does not exist. If this directory is
[d5d9ceb]457not owned by root, <application>Xorg</application> delays startup by a few
458seconds and also appends a warning to the logfile. This also affects startup of
459other applications. To improve performance, it is advisable to manually create
460the directory before <application>Xorg</application> uses it. Add the file
461creation to <filename>/etc/sysconfig/createfiles</filename> that is sourced by
462the <filename>/etc/rc.d/init.d/cleanfs</filename> startup script.</para>
[feeb99a]463
464<screen><userinput><command>cat &gt;&gt; /etc/sysconfig/createfiles &lt;&lt; "EOF"</command>
465/tmp/.ICE-unix dir 1777 root root
466<command>EOF</command></userinput></screen>
467</note>
[d5d9ceb]468
[2826127]469<indexterm zone="xorg xorg-config">
470 <primary sortas="e-etc-sysconfig-createfiles">/etc/sysconfig/createfiles</primary>
471</indexterm>
472
[feeb99a]473<para>Start <application>X</application> with:
474<screen><userinput><command>startx</command></userinput></screen>
475to get a basic functional <application>X</application> Window System.</para>
476
[d5d9ceb]477<para>At this point, you should check out <xref linkend='x-setup'/>.</para>
478
479<para>For a list of the package contents and a description of the commands,
480see the sections in <xref linkend='xfree86'/>.</para>
[feeb99a]481
482</sect2>
[d5d9ceb]483
[feeb99a]484</sect1>
Note: See TracBrowser for help on using the repository browser.