source: x/installing/xorg.xml@ a0f03b0

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 a0f03b0 was a0f03b0, checked in by Archaic <archaic@…>, 20 years ago

Inserting sect1info

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

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