source: x/xorg/xorg.xml@ a3115ae

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 a3115ae was a3115ae, checked in by Larry Lawrence <larry@…>, 17 years ago

misc review catches

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