source: x/installing/xorg-server.xml@ beb3539

12.1 ken/TL2024 lazarus plabs/newcss python3.11 rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since beb3539 was beb3539, checked in by Bruce Dubbs <bdubbs@…>, 5 months ago

Typos

  • Property mode set to 100644
File size: 14.0 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
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 "d225da0ee16ed7e1616d17bea80ba06c">
10 <!ENTITY xorg-server-size "4.7 MB">
11 <!ENTITY xorg-server-buildsize "147 MB (with tests)">
12 <!ENTITY xorg-server-time "0.4 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 &lfs120_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 Fluxbox, or Sawfish).
83 </para>
84 <para>
85 Optional patch:
86 <ulink url="&patch-root;/xorg-server-&xorg-server-version;-tearfree_backport-10.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 role="runtime"
104 linkend="elogind"/> (runtime),</phrase>
105 <xref linkend="libepoxy"/> (needed for glamor),
106 <xref linkend="libtirpc"/>,
107 <phrase revision="systemd"><xref role="runtime"
108 linkend="systemd"/> (runtime),</phrase>
109 and <xref role='runtime' linkend='xorg-libinput-driver'/> (runtime)
110 </para>
111
112 <bridgehead renderas="sect4">Optional</bridgehead>
113 <para role="optional">
114 <xref role="runtime" linkend="acpid"/> (runtime),
115 <xref linkend="doxygen"/> (to build API documentation),
116 <xref linkend="fop"/> (to build documentation),
117 <xref linkend="libunwind"/>,
118 <xref linkend="nettle"/>,
119 <xref linkend="libgcrypt"/>,
120 <xref linkend="xcb-util-keysyms"/>,
121 <xref linkend="xcb-util-image"/>,
122 <xref linkend="xcb-util-renderutil"/>,
123 <xref linkend="xcb-util-wm"/> (all four to build Xephyr),
124 <xref linkend="xmlto"/> (to build documentation),
125 <xref linkend="xkeyboard-config"/> (for tests),
126 <ulink url="https://gitlab.freedesktop.org/xorg/test/rendercheck">rendercheck</ulink> (for tests), and
127 <ulink url="https://www.x.org/archive/individual/doc/">xorg-sgml-doctools</ulink> (to build documentation)
128 </para>
129 </sect2>
130
131 <sect2 role="kernel" id="xorg-server-kernel">
132 <title>Kernel Configuration</title>
133
134 <para>
135 The traditional Device Dependent X (DDX) drivers have been removed
136 from BLFS in favor of the &modesetting_drv; driver which will be
137 built as a part of this package. To use the &modesetting_drv; driver,
138 the kernel must provide a Direct Rendering Manager (DRM) driver for
139 your GPU.
140 </para>
141
142 <para>
143 If your GPU supports 3D acceleration and <xref linkend='mesa'/>
144 provides a Gallium3D driver for utilizing its 3D capability, you
145 should have already enabled the necessary kernel configuration options
146 in <xref linkend='mesa-kernel'/>. Otherwise, you need to find the
147 kernel configuration option of the DRM driver for the GPU and enable
148 it. Notably, the virtual GPUs provided by some virtual machine
149 managers:
150 </para>
151
152 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
153 href="xorg-server-kernel.xml"/>
154
155 <para>
156 If the kernel does not provide a DRM driver for your GPU, on most x86
157 systems the <quote>simple frame buffer</quote> DRM driver running on
158 VESA or UEFI frame buffer can be used as a fallback. Enable the
159 following options in the kernel configurations if you don't have a
160 dedicated DRM driver for the GPU, or you want to keep the simple
161 frame buffer driver as a fallback in case the dedicated driver fails:
162 </para>
163
164 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
165 href="xorg-server-simpledrm-kernel.xml"/>
166
167 <para>
168 To allow the kernel to print debug messages at an early boot stage,
169 <option>CONFIG_DRM</option> and <option>CONFIG_DRM_SIMPLEDRM</option>
170 should not be built as kernel modules unless an initramfs will be
171 used.
172 </para>
173
174 <para>
175 If you want to use the simple frame buffer driver on a system booted
176 via BIOS (instead of UEFI), add the following line before the first
177 <literal>menuentry</literal> block in the
178 <filename>/boot/grub/grub.cfg</filename> file to initialize the VESA
179 frame buffer:
180 </para>
181
182<screen><literal>set gfxpayload=<replaceable>1024x768x32</replaceable></literal></screen>
183
184 <para>
185 You may replace <literal>1024</literal>, <literal>768</literal>, and
186 <literal>32</literal> with a resolution and color depth setting
187 suitable for your monitor.
188 </para>
189
190 <para>
191 If all of these DRM drivers do not work for you and you need to use
192 a DDX driver with a non-DRM kernel GPU driver (usually named
193 <option>CONFIG_FB_*</option> in the kernel configuration, or existing
194 as out-tree kernel modules), or you need an device specific
195 functionality requiring a DDX driver, consult
196 <ulink url="&BLFS113;">a prior version of BLFS</ulink>, or
197 <ulink url="&BLFS76;">an even prior version</ulink> for more DDX
198 drivers.
199 </para>
200
201 <indexterm zone="xorg-server xorg-server-kernel">
202 <primary sortas="d-xorg-server">xorg-server</primary>
203 </indexterm>
204 </sect2>
205
206 <sect2 role="installation">
207 <title>Installation of Xorg Server</title>
208
209 <para>
210 First, if you need the TearFree option to work around screen tearing,
211 apply the backported patch:
212 </para>
213
214<screen><userinput remap="pre">patch -Np1 -i ../xorg-server-&xorg-server-version;-tearfree_backport-10.patch</userinput></screen>
215
216 <para>
217 Install the server by running the following commands:
218 </para>
219
220<screen><userinput>mkdir build &amp;&amp;
221cd build &amp;&amp;
222
223meson setup .. \
224 --prefix=$XORG_PREFIX \
225 --localstatedir=/var \
226 -Dglamor=true \
227 -Dxkb_output_dir=/var/lib/xkb &amp;&amp;
228ninja</userinput></screen>
229
230 <para>
231 To test the results, issue: <command>ninja test</command>. You
232 will need to run <command>ldconfig</command> as the <systemitem
233 class="username">root</systemitem> user first or some tests may fail.
234 </para>
235
236 <para>
237 Now as the <systemitem class="username">root</systemitem>
238 user:
239 </para>
240
241<screen role="root" revision="sysv"><userinput>ninja install &amp;&amp;
242mkdir -pv /etc/X11/xorg.conf.d &amp;&amp;
243install -v -d -m1777 /tmp/.{ICE,X11}-unix &amp;&amp;
244cat &gt;&gt; /etc/sysconfig/createfiles &lt;&lt; "EOF"
245<literal>/tmp/.ICE-unix dir 1777 root root
246/tmp/.X11-unix dir 1777 root root</literal>
247EOF</userinput></screen>
248
249<screen role="root" revision="systemd"><userinput>ninja install &amp;&amp;
250mkdir -pv /etc/X11/xorg.conf.d</userinput></screen>
251
252 </sect2>
253
254 <sect2 role="commands">
255 <title>Command Explanations</title>
256
257 <para>
258 <parameter>-Dglamor=true</parameter>: Ensure building the Glamor
259 module. It's needed to build the &modesetting_drv; driver
260 which replaces the traditional Device Dependent X (DDX) drivers.
261 </para>
262
263 <para>
264 <option>-Dsuid_wrapper=true</option>: Builds the suid-root
265 wrapper for legacy DDX driver support on rootless xserver systems.
266 </para>
267
268 <para>
269 <option>-Dsystemd_logind=false</option>:
270 This switch disables <phrase revision="systemd">systemd-logind</phrase>
271 <phrase revision="sysv">elogind</phrase> integration, allowing Xorg Server
272 to work without having the <phrase revision="systemd">systemd</phrase>
273 <phrase revision="elogind">elogind</phrase> PAM module configured.
274 </para>
275
276 <para revision="sysv">
277 <command>cat &gt;&gt; /etc/sysconfig/createfiles...</command>: This
278 command creates the <filename class="directory">/tmp/.ICE-unix</filename>
279 and <filename class="directory">/tmp/.X11-unix</filename> directories at
280 startup, and ensures that the permissions and ownership are correct as
281 required by the server.
282 </para>
283
284 <para>
285 <option>-Dxephyr=true</option>: This option allows building Xephyr if its
286 dependencies are met.
287 </para>
288
289 </sect2>
290
291 <sect2 role="content">
292 <title>Contents</title>
293
294 <segmentedlist>
295 <segtitle>Installed Programs</segtitle>
296 <segtitle>Installed Libraries</segtitle>
297 <segtitle>Installed Directories</segtitle>
298
299 <seglistitem>
300 <seg>
301 gtf, X, Xnest, Xorg, Xvfb, and optionally Xephyr
302 </seg>
303 <seg>
304 several under $XORG_PREFIX/lib/xorg/modules/ including the
305 &modesetting_drv; driver
306 </seg>
307 <seg>
308 /etc/X11/xorg.conf.d,
309 $XORG_PREFIX/include/xorg,
310 $XORG_PREFIX/lib/xorg, and
311 $XORG_PREFIX/share/X11/xorg.conf.d
312 </seg>
313
314 </seglistitem>
315 </segmentedlist>
316
317 <variablelist>
318 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
319 <?dbfo list-presentation="list"?>
320 <?dbhtml list-presentation="table"?>
321
322 <varlistentry id="gtf-x7">
323 <term><command>gtf</command></term>
324 <listitem>
325 <para>
326 calculates VESA GTF mode lines
327 </para>
328 <indexterm zone="xorg-server gtf-x7">
329 <primary sortas="b-gtf">gtf</primary>
330 </indexterm>
331 </listitem>
332 </varlistentry>
333
334 <varlistentry id="X-x7">
335 <term><command>X</command></term>
336 <listitem>
337 <para>
338 is a symbolic link to Xorg
339 </para>
340 <indexterm zone="xorg-server X-x7">
341 <primary sortas="b-X">X</primary>
342 </indexterm>
343 </listitem>
344 </varlistentry>
345
346 <varlistentry id="Xephyr-x7">
347 <term><command>Xephyr</command></term>
348 <listitem>
349 <para>
350 is a nested X server which supports modern X extensions
351 </para>
352 <indexterm zone="xorg-server Xephyr-x7">
353 <primary sortas="b-Xephyr">Xephyr</primary>
354 </indexterm>
355 </listitem>
356 </varlistentry>
357
358 <varlistentry id="Xnest-x7">
359 <term><command>Xnest</command></term>
360 <listitem>
361 <para>
362 is a nested X server
363 </para>
364 <indexterm zone="xorg-server Xnest-x7">
365 <primary sortas="b-Xnest">Xnest</primary>
366 </indexterm>
367 </listitem>
368 </varlistentry>
369
370 <varlistentry id="Xorg-x7">
371 <term><command>Xorg</command></term>
372 <listitem>
373 <para>
374 is the X11R7 X Server
375 </para>
376 <indexterm zone="xorg-server Xorg-x7">
377 <primary sortas="b-Xorg">Xorg</primary>
378 </indexterm>
379 </listitem>
380 </varlistentry>
381
382 <varlistentry id="Xvfb-x7">
383 <term><command>Xvfb</command></term>
384 <listitem>
385 <para>
386 is the virtual framebuffer X server for X Version 11
387 </para>
388 <indexterm zone="xorg-server Xvfb-x7">
389 <primary sortas="b-Xvfb">Xvfb</primary>
390 </indexterm>
391 </listitem>
392 </varlistentry>
393
394 <varlistentry id="modesetting_drv-x7">
395 <term><filename class="libraryfile">modesetting_drv.so</filename></term>
396 <listitem>
397 <para>
398 provides a video driver for machines using Kernel Mode Setting (KMS).
399 This will use glamor if that has been enabled and the hardware offers
400 acceleration
401 </para>
402 <indexterm zone="xorg-server modesetting_drv-x7">
403 <primary sortas="c-modesetting_drv">modesetting_drv.so</primary>
404 </indexterm>
405 </listitem>
406 </varlistentry>
407
408 </variablelist>
409
410 </sect2>
411
412</sect1>
Note: See TracBrowser for help on using the repository browser.