source: x/xorg/xorg.xml@ 692e12c

10.0 10.1 11.0 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 ken/refactor-virt krejzi/svn lazarus nosym perl-modules qt5new systemd-11177 systemd-13485 trunk v5_1 xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 692e12c was 692e12c, checked in by Larry Lawrence <larry@…>, 17 years ago

cleanup

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

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