source: x/installing/xorg.xml@ 5b87c41

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 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 5b87c41 was 5b87c41, checked in by Igor Živković <igor@…>, 19 years ago

Removed the chroot note in Xorg/XFree instructions, suggested by Alexander E. Patrakov.

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