source: x/installing/xorg-server.xml

trunk
Last change on this file was d8b200ef, checked in by Bruce Dubbs <bdubbs@…>, 2 weeks ago

Update to xorg-server-21.1.13.

  • Property mode set to 100644
File size: 15.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY xorg-server-download-http "&xorg-download-http;/xserver/xorg-server-&xorg-server-version;.tar.xz">
8 <!ENTITY xorg-server-download-ftp " ">
9 <!ENTITY xorg-server-md5sum "69dbed93746d0af6b46de76d711614e4">
10 <!ENTITY xorg-server-size "4.7 MB">
11 <!ENTITY xorg-server-buildsize "147 MB (with tests)">
12 <!ENTITY xorg-server-time "0.3 SBU (using parallelism=4; with tests)">
13 <!ENTITY modesetting_drv
14 "<filename class='libraryfile'>modesetting_drv</filename>">
15 <!ENTITY BLFS113 "https://www.linuxfromscratch.org/blfs/view/11.3/x/x7driver.html">
16 <!ENTITY BLFS76 "https://www.linuxfromscratch.org/blfs/view/7.6/x/x7driver.html">
17]>
18
19<sect1 id="xorg-server" xreflabel="Xorg-Server-&xorg-server-version;">
20 <?dbhtml filename="xorg-server.html"?>
21
22
23 <title>Xorg-Server-&xorg-server-version;</title>
24
25 <indexterm zone="xorg-server">
26 <primary sortas="a-xorg-server">xorg-server</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to Xorg Server</title>
31
32 <para>
33 The <application>Xorg</application> Server is the core
34 of the X Window system.
35 </para>
36
37 &lfs121_checked;
38
39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>
43 Download (HTTP): <ulink url="&xorg-server-download-http;"/>
44 </para>
45 </listitem>
46 <listitem>
47 <para>
48 Download (FTP): <ulink url="&xorg-server-download-ftp;"/>
49 </para>
50 </listitem>
51 <listitem>
52 <para>
53 Download MD5 sum: &xorg-server-md5sum;
54 </para>
55 </listitem>
56 <listitem>
57 <para>
58 Download size: &xorg-server-size;
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 Estimated disk space required: &xorg-server-buildsize;
64 </para>
65 </listitem>
66 <listitem>
67 <para>
68 Estimated build time: &xorg-server-time;
69 </para>
70 </listitem>
71 </itemizedlist>
72
73 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
74 <itemizedlist spacing="compact">
75 <listitem>
76 <para>
77 With the removal of the xf86-video-* drivers, the TearFree option
78 is no longer functional. To work around this, upstream has added the
79 TearFree option to the default modesetting driver. This patch
80 backports this feature. Apply this patch if you are going to use Xorg
81 in an environment without a compositor (such as TWM, IceWM, Openbox,
82 or Fluxbox).
83 </para>
84 <para>
85 Optional patch:
86 <ulink url="&patch-root;/xorg-server-&xorg-server-version;-tearfree_backport-1.patch"/>
87 </para>
88 </listitem>
89 </itemizedlist>
90
91 <bridgehead renderas="sect3">Xorg Server Dependencies</bridgehead>
92
93 <bridgehead renderas="sect4">Required</bridgehead>
94 <para role="required">
95 <xref linkend="libxcvt"/>,
96 <xref linkend="pixman"/>,
97 <xref linkend="xorg7-font"/> (only font-util), and at runtime:
98 <xref role="runtime" linkend="xkeyboard-config"/>
99 </para>
100
101 <bridgehead renderas="sect4">Recommended</bridgehead>
102 <para role="recommended">
103 <phrase revision="sysv"><xref linkend='dbus'/>,
104 <xref role="runtime" linkend="elogind"/> (runtime;
105 <systemitem class='library'>libelogind</systemitem> also referred
106 at build time but it's not really useful),</phrase>
107 <xref linkend="libepoxy"/> (needed for glamor),
108 <xref linkend="libtirpc"/>,
109 <phrase revision="systemd"><xref role="runtime"
110 linkend="systemd"/> (runtime),</phrase>
111 and <xref role='runtime' linkend='xorg-libinput-driver'/> (runtime)
112 </para>
113
114 <!-- TODO: Add -Dsystemd_logind=yes explicitly (like -Dglamor=true) to
115 make this more clear for BLFS 12.2. Now (Feb 16 2024) this package
116 is already under 12.1 freeze. -->
117 <note>
118 <para>
119 Although it's possible to<phrase revision='sysv'> build this package
120 without <xref linkend='dbus'/> installed or</phrase> run the Xorg
121 server without
122 <phrase revision='sysv'><xref linkend='elogind'/></phrase><phrase
123 revision='systemd'><xref linkend='systemd'/>
124 (rebuilt with PAM)</phrase> functioning, it would require running
125 the Xorg server as the &root; user or Xorg server will malfunction
126 or even fail to start. The BLFS editors strongly discourage
127 skipping <phrase revision='sysv'>these two
128 dependencies</phrase><phrase revision='systemd'>this
129 dependency</phrase>. Do not attempt to do so unless you really know
130 what you are doing.
131 </para>
132 </note>
133
134 <bridgehead renderas="sect4">Optional</bridgehead>
135 <para role="optional">
136 <xref role="runtime" linkend="acpid"/> (runtime),
137 <xref linkend="doxygen"/> (to build API documentation),
138 <xref linkend="fop"/> (to build documentation),
139 <xref linkend="libunwind"/>,
140 <xref linkend="nettle"/>,
141 <xref linkend="libgcrypt"/>,
142 <xref linkend="xcb-util-keysyms"/>,
143 <xref linkend="xcb-util-image"/>,
144 <xref linkend="xcb-util-renderutil"/>,
145 <xref linkend="xcb-util-wm"/> (all four to build Xephyr),
146 <xref linkend="xmlto"/> (to build documentation),
147 <xref linkend="xkeyboard-config"/> (for tests),
148 <ulink url="https://gitlab.freedesktop.org/xorg/test/rendercheck">rendercheck</ulink> (for tests), and
149 <ulink url="https://www.x.org/archive/individual/doc/">xorg-sgml-doctools</ulink> (to build documentation)
150 </para>
151 </sect2>
152
153 <sect2 role="kernel" id="xorg-server-kernel">
154 <title>Kernel Configuration</title>
155
156 <para>
157 The traditional Device Dependent X (DDX) drivers have been removed
158 from BLFS in favor of the &modesetting_drv; driver which will be
159 built as a part of this package. To use the &modesetting_drv; driver,
160 the kernel must provide a Direct Rendering Manager (DRM) driver for
161 your GPU.
162 </para>
163
164 <para>
165 If your GPU supports 3D acceleration and <xref linkend='mesa'/>
166 provides a Gallium3D driver for utilizing its 3D capability, you
167 should have already enabled the necessary kernel configuration options
168 in <xref linkend='mesa-kernel'/>. Otherwise, you need to find the
169 kernel configuration option of the DRM driver for the GPU and enable
170 it. Notably, the virtual GPUs provided by some virtual machine
171 managers:
172 </para>
173
174 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
175 href="xorg-server-kernel.xml"/>
176
177 <para>
178 If the kernel does not provide a DRM driver for your GPU, on most x86
179 systems the <quote>simple frame buffer</quote> DRM driver running on
180 VESA or UEFI frame buffer can be used as a fallback. Enable the
181 following options in the kernel configurations if you don't have a
182 dedicated DRM driver for the GPU, or you want to keep the simple
183 frame buffer driver as a fallback in case the dedicated driver fails:
184 </para>
185
186 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
187 href="xorg-server-simpledrm-kernel.xml"/>
188
189 <para>
190 To allow the kernel to print debug messages at an early boot stage,
191 <option>CONFIG_DRM</option> and <option>CONFIG_DRM_SIMPLEDRM</option>
192 should not be built as kernel modules unless an initramfs will be
193 used.
194 </para>
195
196 <para>
197 If you want to use the simple frame buffer driver on a system booted
198 via BIOS (instead of UEFI), add the following line before the first
199 <literal>menuentry</literal> block in the
200 <filename>/boot/grub/grub.cfg</filename> file to initialize the VESA
201 frame buffer:
202 </para>
203
204<screen><literal>set gfxpayload=<replaceable>1024x768x32</replaceable></literal></screen>
205
206 <para>
207 You may replace <literal>1024</literal>, <literal>768</literal>, and
208 <literal>32</literal> with a resolution and color depth setting
209 suitable for your monitor.
210 </para>
211
212 <para>
213 If all of these DRM drivers do not work for you and you need to use
214 a DDX driver with a non-DRM kernel GPU driver (usually named
215 <option>CONFIG_FB_*</option> in the kernel configuration, or existing
216 as out-tree kernel modules), or you need an device specific
217 functionality requiring a DDX driver, consult
218 <ulink url="&BLFS113;">a prior version of BLFS</ulink>, or
219 <ulink url="&BLFS76;">an even earlier prior version</ulink> for more DDX
220 drivers.
221 </para>
222
223 <indexterm zone="xorg-server xorg-server-kernel">
224 <primary sortas="d-xorg-server">xorg-server</primary>
225 </indexterm>
226 </sect2>
227
228 <sect2 role="installation">
229 <title>Installation of Xorg Server</title>
230
231 <para>
232 First, if you need the TearFree option to work around screen tearing,
233 apply the backported patch:
234 </para>
235
236<screen><userinput remap="pre">patch -Np1 -i ../xorg-server-&xorg-server-version;-tearfree_backport-1.patch</userinput></screen>
237
238 <para>
239 Install the server by running the following commands:
240 </para>
241
242<screen><userinput>mkdir build &amp;&amp;
243cd build &amp;&amp;
244
245meson setup .. \
246 --prefix=$XORG_PREFIX \
247 --localstatedir=/var \
248 -Dglamor=true \
249 -Dxkb_output_dir=/var/lib/xkb &amp;&amp;
250ninja</userinput></screen>
251
252 <para>
253 To test the results, issue: <command>ninja test</command>. You
254 will need to run <command>ldconfig</command> as the <systemitem
255 class="username">root</systemitem> user first or some tests may fail.
256 </para>
257
258 <para>
259 Now as the <systemitem class="username">root</systemitem>
260 user:
261 </para>
262
263<screen role="root" revision="sysv"><userinput>ninja install &amp;&amp;
264mkdir -pv /etc/X11/xorg.conf.d &amp;&amp;
265install -v -d -m1777 /tmp/.{ICE,X11}-unix &amp;&amp;
266cat &gt;&gt; /etc/sysconfig/createfiles &lt;&lt; "EOF"
267<literal>/tmp/.ICE-unix dir 1777 root root
268/tmp/.X11-unix dir 1777 root root</literal>
269EOF</userinput></screen>
270
271<screen role="root" revision="systemd"><userinput>ninja install &amp;&amp;
272mkdir -pv /etc/X11/xorg.conf.d</userinput></screen>
273
274 </sect2>
275
276 <sect2 role="commands">
277 <title>Command Explanations</title>
278
279 <para>
280 <parameter>-Dglamor=true</parameter>: Ensure building the Glamor
281 module. It's needed to build the &modesetting_drv; driver
282 which replaces the traditional Device Dependent X (DDX) drivers.
283 </para>
284
285 <para>
286 <option>-Dsuid_wrapper=true</option>: Builds the suid-root
287 wrapper for legacy DDX driver support on rootless xserver systems.
288 </para>
289<!-- commented out because this option defaults to auto
290 <para>
291 <option>-Dsystemd_logind=false</option>:
292 This switch disables <phrase revision="systemd">systemd-logind</phrase>
293 <phrase revision="sysv">elogind</phrase> integration, allowing Xorg Server
294 to work without having the <phrase revision="systemd">systemd</phrase>
295 <phrase revision="elogind">elogind</phrase> PAM module configured.
296 </para>
297-->
298 <para revision="sysv">
299 <command>cat &gt;&gt; /etc/sysconfig/createfiles...</command>: This
300 command creates the <filename class="directory">/tmp/.ICE-unix</filename>
301 and <filename class="directory">/tmp/.X11-unix</filename> directories at
302 startup, and ensures that the permissions and ownership are correct as
303 required by the server.
304 </para>
305
306 <para>
307 <option>-Dxephyr=true</option>: This option allows building Xephyr if its
308 dependencies are met.
309 </para>
310
311 </sect2>
312
313 <sect2 role="content">
314 <title>Contents</title>
315
316 <segmentedlist>
317 <segtitle>Installed Programs</segtitle>
318 <segtitle>Installed Libraries</segtitle>
319 <segtitle>Installed Directories</segtitle>
320
321 <seglistitem>
322 <seg>
323 gtf, X, Xnest, Xorg, Xvfb, and optionally Xephyr
324 </seg>
325 <seg>
326 several under $XORG_PREFIX/lib/xorg/modules/ including the
327 &modesetting_drv; driver
328 </seg>
329 <seg>
330 /etc/X11/xorg.conf.d,
331 $XORG_PREFIX/include/xorg,
332 $XORG_PREFIX/lib/xorg, and
333 $XORG_PREFIX/share/X11/xorg.conf.d
334 </seg>
335
336 </seglistitem>
337 </segmentedlist>
338
339 <variablelist>
340 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
341 <?dbfo list-presentation="list"?>
342 <?dbhtml list-presentation="table"?>
343
344 <varlistentry id="gtf-x7">
345 <term><command>gtf</command></term>
346 <listitem>
347 <para>
348 calculates VESA GTF mode lines
349 </para>
350 <indexterm zone="xorg-server gtf-x7">
351 <primary sortas="b-gtf">gtf</primary>
352 </indexterm>
353 </listitem>
354 </varlistentry>
355
356 <varlistentry id="X-x7">
357 <term><command>X</command></term>
358 <listitem>
359 <para>
360 is a symbolic link to Xorg
361 </para>
362 <indexterm zone="xorg-server X-x7">
363 <primary sortas="b-X">X</primary>
364 </indexterm>
365 </listitem>
366 </varlistentry>
367
368 <varlistentry id="Xephyr-x7">
369 <term><command>Xephyr</command></term>
370 <listitem>
371 <para>
372 is a nested X server which supports modern X extensions
373 </para>
374 <indexterm zone="xorg-server Xephyr-x7">
375 <primary sortas="b-Xephyr">Xephyr</primary>
376 </indexterm>
377 </listitem>
378 </varlistentry>
379
380 <varlistentry id="Xnest-x7">
381 <term><command>Xnest</command></term>
382 <listitem>
383 <para>
384 is a nested X server
385 </para>
386 <indexterm zone="xorg-server Xnest-x7">
387 <primary sortas="b-Xnest">Xnest</primary>
388 </indexterm>
389 </listitem>
390 </varlistentry>
391
392 <varlistentry id="Xorg-x7">
393 <term><command>Xorg</command></term>
394 <listitem>
395 <para>
396 is the X11R7 X Server
397 </para>
398 <indexterm zone="xorg-server Xorg-x7">
399 <primary sortas="b-Xorg">Xorg</primary>
400 </indexterm>
401 </listitem>
402 </varlistentry>
403
404 <varlistentry id="Xvfb-x7">
405 <term><command>Xvfb</command></term>
406 <listitem>
407 <para>
408 is the virtual framebuffer X server for X Version 11
409 </para>
410 <indexterm zone="xorg-server Xvfb-x7">
411 <primary sortas="b-Xvfb">Xvfb</primary>
412 </indexterm>
413 </listitem>
414 </varlistentry>
415
416 <varlistentry id="modesetting_drv-x7">
417 <term><filename class="libraryfile">modesetting_drv.so</filename></term>
418 <listitem>
419 <para>
420 provides a video driver for machines using Kernel Mode Setting (KMS).
421 This will use glamor if that has been enabled and the hardware offers
422 acceleration
423 </para>
424 <indexterm zone="xorg-server modesetting_drv-x7">
425 <primary sortas="c-modesetting_drv">modesetting_drv.so</primary>
426 </indexterm>
427 </listitem>
428 </varlistentry>
429
430 </variablelist>
431
432 </sect2>
433
434</sect1>
Note: See TracBrowser for help on using the repository browser.