source: x/installing/xorg.xml@ 4daebcb1

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 4daebcb1 was bfb7882, checked in by Tushar Teredesai <tushar@…>, 19 years ago

More typo fixes

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

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