source: x/xorg/xorg.xml@ f35b22f

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 v5_1-pre1 xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since f35b22f was f35b22f, checked in by Bruce Dubbs <bdubbs@…>, 18 years ago

Completed xorg section

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

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