source: x/installing/xorg-server.xml@ 293e4018

12.0 12.1 gimp3 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128
Last change on this file since 293e4018 was a1ea6d4e, checked in by Douglas R. Reno <renodr@…>, 13 months ago

Add the TearFree option back to Xorg-Server. Patch by Rahul Chandra

  • Property mode set to 100644
File size: 14.7 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 "&xorg-download-ftp;/xserver/xorg-server-&xorg-server-version;.tar.xz">
9 <!ENTITY xorg-server-md5sum "79a6eb04b1b17ad6c7aab46da73944e8">
10 <!ENTITY xorg-server-size "4.8 MB">
11 <!ENTITY xorg-server-buildsize "188 MB (with tests)">
12 <!ENTITY xorg-server-time "0.6 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 &lfs113_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-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 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 Dependant 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<screen><literal>Device Drivers ---&gt;
153 Graphics support ---&gt;
154 &lt;*/M&gt; Direct Rendering Manager (XFree86 ... support) ---&gt; [CONFIG_DRM]
155 &lt; /*/M&gt; DRM driver for VMware Virtual GPU [CONFIG_DRM_VMWGFX]
156 &lt; /*/M&gt; DRM Support for bochs dispi vga interface (qemu stdvga) [CONFIG_DRM_BOCHS]
157 &lt; /*/M&gt; Virtual Box Graphics Card [CONFIG_DRM_VBOXVIDEO]</literal></screen>
158
159 <para>
160 If the kernel does not provide a DRM driver for your GPU, on most x86
161 systems the <quote>simple frame buffer</quote> DRM driver running on
162 VESA or UEFI frame buffer can be used as a fallback. Enable the
163 following options in the kernel configurations if you don't have a
164 dedicated DRM driver for the GPU, or you want to keep the simple
165 frame buffer driver as a fallback in case the dedicated driver fails:
166 </para>
167
168<screen><literal>Device Drivers ---&gt;
169 Firmware Drivers ---&gt;
170 [*] Mark VGA/VBE/EFI FB as generic system framebuffer [CONFIG_SYSFB_SIMPLEFB]
171 Graphics support ---&gt;
172 &lt;*&gt; Direct Rendering Manager (XFree86 ... support) [CONFIG_DRM]
173 &lt;*&gt; Simple framebuffer driver [CONFIG_DRM_SIMPLEDRM]</literal></screen>
174
175 <para>
176 To allow the kernel to print debug messages at an early boot stage,
177 <option>CONFIG_DRM</option> and <option>CONFIG_DRM_SIMPLEDRM</option>
178 should not be built as kernel modules unless an initramfs will be
179 used.
180 </para>
181
182 <para>
183 If you want to use the simple frame buffer driver on a system booted
184 via BIOS (instead of UEFI), add the following line before the first
185 <literal>menuentry</literal> block in the
186 <filename>/boot/grub/grub.cfg</filename> file to initialize the VESA
187 frame buffer:
188 </para>
189
190<screen><literal>set gfxpayload=<replaceable>1024x768x32</replaceable></literal></screen>
191
192 <para>
193 You may replace <literal>1024</literal>, <literal>768</literal>, and
194 <literal>32</literal> with a resolution and color depth setting
195 suitable for your monitor.
196 </para>
197
198 <para>
199 If all of these DRM drivers do not work for you and you need to use
200 a DDX driver with a non-DRM kernel GPU driver (usually named
201 <option>CONFIG_FB_*</option> in the kernel configuration, or existing
202 as out-tree kernel modules), or you need an device specific
203 functionality requiring a DDX driver, consult
204 <ulink url="&BLFS113;">a prior version of BLFS</ulink>, or
205 <ulink url="&BLFS76;">an even prior version</ulink> for more DDX
206 drivers.
207 </para>
208
209 <indexterm zone="xorg-server xorg-server-kernel">
210 <primary sortas="d-xorg-server">xorg-server</primary>
211 </indexterm>
212 </sect2>
213
214 <sect2 role="installation">
215 <title>Installation of Xorg Server</title>
216
217 <para>
218 First, if you need the TearFree option to work around screen tearing,
219 apply the backported patch:
220 </para>
221
222<screen><userinput remap="pre">patch -Np1 -i ../xorg-server-&xorg-server-version;-tearfree_backport-1.patch</userinput></screen>
223
224 <para>
225 Install the server by running the following commands:
226 </para>
227
228<screen><userinput>mkdir build &amp;&amp;
229cd build &amp;&amp;
230
231meson setup .. \
232 --prefix=$XORG_PREFIX \
233 --localstatedir=/var \
234 -Dglamor=true \
235 -Dxkb_output_dir=/var/lib/xkb &amp;&amp;
236ninja</userinput></screen>
237
238 <para>
239 To test the results, issue: <command>ninja test</command>. You
240 will need to run <command>ldconfig</command> as the <systemitem
241 class="username">root</systemitem> user first or some tests may fail.
242 </para>
243
244 <para>
245 Now as the <systemitem class="username">root</systemitem>
246 user:
247 </para>
248
249<screen role="root" revision="sysv"><userinput>ninja install &amp;&amp;
250mkdir -pv /etc/X11/xorg.conf.d &amp;&amp;
251install -v -d -m1777 /tmp/.{ICE,X11}-unix &amp;&amp;
252cat &gt;&gt; /etc/sysconfig/createfiles &lt;&lt; "EOF"
253<literal>/tmp/.ICE-unix dir 1777 root root
254/tmp/.X11-unix dir 1777 root root</literal>
255EOF</userinput></screen>
256
257<screen role="root" revision="systemd"><userinput>ninja install &amp;&amp;
258mkdir -pv /etc/X11/xorg.conf.d</userinput></screen>
259
260 </sect2>
261
262 <sect2 role="commands">
263 <title>Command Explanations</title>
264
265 <para>
266 <parameter>-Dglamor=true</parameter>: Ensure building the Glamor
267 module. It's needed to build the &modesetting_drv; driver
268 which replaces the traditional Device Dependant X (DDX) drivers.
269 </para>
270
271 <para>
272 <option>-Dsuid_wrapper=true</option>: Builds the suid-root
273 wrapper for legacy DDX driver support on rootless xserver systems.
274 </para>
275
276 <para>
277 <option>-Dsystemd_logind=false</option>:
278 This switch disables <phrase revision="systemd">systemd-logind</phrase>
279 <phrase revision="sysv">elogind</phrase> integration, allowing Xorg Server
280 to work without having the <phrase revision="systemd">systemd</phrase>
281 <phrase revision="elogind">elogind</phrase> PAM module configured.
282 </para>
283
284 <para revision="sysv">
285 <command>cat &gt;&gt; /etc/sysconfig/createfiles...</command>: This
286 command creates the <filename class="directory">/tmp/.ICE-unix</filename>
287 and <filename class="directory">/tmp/.X11-unix</filename> directories at
288 startup, and ensures that the permissions and ownership are correct as
289 required by the server.
290 </para>
291
292 <para>
293 <option>-Dxephyr=true</option>: This option allows building Xephyr if its
294 dependencies are met.
295 </para>
296
297 </sect2>
298
299 <sect2 role="content">
300 <title>Contents</title>
301
302 <segmentedlist>
303 <segtitle>Installed Programs</segtitle>
304 <segtitle>Installed Libraries</segtitle>
305 <segtitle>Installed Directories</segtitle>
306
307 <seglistitem>
308 <seg>
309 gtf, X, Xnest, Xorg, Xvfb, and optionally Xephyr
310 </seg>
311 <seg>
312 several under $XORG_PREFIX/lib/xorg/modules/ including the
313 &modesetting_drv; driver
314 </seg>
315 <seg>
316 /etc/X11/xorg.conf.d,
317 $XORG_PREFIX/include/xorg,
318 $XORG_PREFIX/lib/xorg, and
319 $XORG_PREFIX/share/X11/xorg.conf.d
320 </seg>
321
322 </seglistitem>
323 </segmentedlist>
324
325 <variablelist>
326 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
327 <?dbfo list-presentation="list"?>
328 <?dbhtml list-presentation="table"?>
329
330 <varlistentry id="gtf-x7">
331 <term><command>gtf</command></term>
332 <listitem>
333 <para>
334 calculates VESA GTF mode lines
335 </para>
336 <indexterm zone="xorg-server gtf-x7">
337 <primary sortas="b-gtf">gtf</primary>
338 </indexterm>
339 </listitem>
340 </varlistentry>
341
342 <varlistentry id="X-x7">
343 <term><command>X</command></term>
344 <listitem>
345 <para>
346 is a symbolic link to Xorg
347 </para>
348 <indexterm zone="xorg-server X-x7">
349 <primary sortas="b-X">X</primary>
350 </indexterm>
351 </listitem>
352 </varlistentry>
353
354 <varlistentry id="Xephyr-x7">
355 <term><command>Xephyr</command></term>
356 <listitem>
357 <para>
358 is a nested X server which supports modern X extensions
359 </para>
360 <indexterm zone="xorg-server Xephyr-x7">
361 <primary sortas="b-Xephyr">Xephyr</primary>
362 </indexterm>
363 </listitem>
364 </varlistentry>
365
366 <varlistentry id="Xnest-x7">
367 <term><command>Xnest</command></term>
368 <listitem>
369 <para>
370 is a nested X server
371 </para>
372 <indexterm zone="xorg-server Xnest-x7">
373 <primary sortas="b-Xnest">Xnest</primary>
374 </indexterm>
375 </listitem>
376 </varlistentry>
377
378 <varlistentry id="Xorg-x7">
379 <term><command>Xorg</command></term>
380 <listitem>
381 <para>
382 is the X11R7 X Server
383 </para>
384 <indexterm zone="xorg-server Xorg-x7">
385 <primary sortas="b-Xorg">Xorg</primary>
386 </indexterm>
387 </listitem>
388 </varlistentry>
389
390 <varlistentry id="Xvfb-x7">
391 <term><command>Xvfb</command></term>
392 <listitem>
393 <para>
394 is the virtual framebuffer X server for X Version 11
395 </para>
396 <indexterm zone="xorg-server Xvfb-x7">
397 <primary sortas="b-Xvfb">Xvfb</primary>
398 </indexterm>
399 </listitem>
400 </varlistentry>
401
402 <varlistentry id="modesetting_drv-x7">
403 <term><filename class="libraryfile">modesetting_drv.so</filename></term>
404 <listitem>
405 <para>
406 provides a video driver for machines using Kernel Mode Setting (KMS).
407 This will use glamor if that has been enabled and the hardware offers
408 acceleration
409 </para>
410 <indexterm zone="xorg-server modesetting_drv-x7">
411 <primary sortas="c-modesetting_drv">modesetting_drv.so</primary>
412 </indexterm>
413 </listitem>
414 </varlistentry>
415
416 </variablelist>
417
418 </sect2>
419
420</sect1>
Note: See TracBrowser for help on using the repository browser.