source: x/installing/xorg-server.xml@ 7c83169b

12.2 lazarus trunk xry111/for-12.3
Last change on this file since 7c83169b was 1a9275a, checked in by Xi Ruoyao <xry111@…>, 6 weeks ago

xorg-server: Apply my own TODO (noted during 12.1 freeze)

Just seen my own TODO searching for inconsistent -D spacing.

  • Property mode set to 100644
File size: 15.9 KB
RevLine 
[ab4fdfc]1<?xml version="1.0" encoding="UTF-8"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[3f72a148]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[72f9c9a1]7 <!ENTITY xorg-server-download-http "&xorg-download-http;/xserver/xorg-server-&xorg-server-version;.tar.xz">
[e1e58be]8 <!ENTITY xorg-server-download-ftp " ">
[d8b200ef]9 <!ENTITY xorg-server-md5sum "69dbed93746d0af6b46de76d711614e4">
[2399f36]10 <!ENTITY xorg-server-size "4.7 MB">
11 <!ENTITY xorg-server-buildsize "147 MB (with tests)">
[a278ddb]12 <!ENTITY xorg-server-time "0.3 SBU (using parallelism=4; with tests)">
[797182d]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">
[3f72a148]17]>
18
[5faf7f7e]19<sect1 id="xorg-server" xreflabel="Xorg-Server-&xorg-server-version;">
20 <?dbhtml filename="xorg-server.html"?>
[3f72a148]21
22
23 <title>Xorg-Server-&xorg-server-version;</title>
24
[5faf7f7e]25 <indexterm zone="xorg-server">
[2f4014b]26 <primary sortas="a-xorg-server">xorg-server</primary>
[3f72a148]27 </indexterm>
28
[5e8be1c]29 <sect2 role="package">
[2f4014b]30 <title>Introduction to Xorg Server</title>
[5e8be1c]31
[2f4014b]32 <para>
33 The <application>Xorg</application> Server is the core
34 of the X Window system.
35 </para>
[5e8be1c]36
[b9874725]37 &lfs121_checked;
[3b69a2aa]38
[5e8be1c]39 <bridgehead renderas="sect3">Package Information</bridgehead>
40 <itemizedlist spacing="compact">
41 <listitem>
[2f4014b]42 <para>
43 Download (HTTP): <ulink url="&xorg-server-download-http;"/>
44 </para>
[5e8be1c]45 </listitem>
46 <listitem>
[2f4014b]47 <para>
48 Download (FTP): <ulink url="&xorg-server-download-ftp;"/>
49 </para>
[5e8be1c]50 </listitem>
51 <listitem>
[2f4014b]52 <para>
53 Download MD5 sum: &xorg-server-md5sum;
54 </para>
[5e8be1c]55 </listitem>
56 <listitem>
[2f4014b]57 <para>
58 Download size: &xorg-server-size;
59 </para>
[5e8be1c]60 </listitem>
61 <listitem>
[2f4014b]62 <para>
63 Estimated disk space required: &xorg-server-buildsize;
64 </para>
[5e8be1c]65 </listitem>
66 <listitem>
[2f4014b]67 <para>
68 Estimated build time: &xorg-server-time;
69 </para>
[5e8be1c]70 </listitem>
71 </itemizedlist>
[51dfb3e]72
[a1ea6d4e]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,
[c13c0f7]82 or Fluxbox).
[a1ea6d4e]83 </para>
84 <para>
85 Optional patch:
[c833c06]86 <ulink url="&patch-root;/xorg-server-&xorg-server-version;-tearfree_backport-2.patch"/>
[a1ea6d4e]87 </para>
88 </listitem>
89 </itemizedlist>
90
[5e8be1c]91 <bridgehead renderas="sect3">Xorg Server Dependencies</bridgehead>
92
93 <bridgehead renderas="sect4">Required</bridgehead>
[2f4014b]94 <para role="required">
[ab5ea1f1]95 <xref linkend="libxcvt"/>,
96 <xref linkend="pixman"/>,
[9eac457]97 <xref linkend="xorg7-font"/> (only font-util), and at runtime:
[e71a98d9]98 <xref role="runtime" linkend="xkeyboard-config"/>
[2f4014b]99 </para>
[5e8be1c]100
[53a89e5]101 <bridgehead renderas="sect4">Recommended</bridgehead>
[51dfb3e]102 <para role="recommended">
[ed594245]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>
[623b3bc]107 <xref linkend="libepoxy"/> (needed for glamor),
[efbfa24]108 <xref linkend="libtirpc"/>,
[d5e731d]109 <phrase revision="systemd"><xref role="runtime"
110 linkend="systemd"/> (runtime),</phrase>
111 and <xref role='runtime' linkend='xorg-libinput-driver'/> (runtime)
[597ac4bd]112 </para>
[53a89e5]113
[ed594245]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
[b1e3537]134 <bridgehead renderas="sect4">Optional</bridgehead>
[a7ec376]135 <para role="optional">
[e71a98d9]136 <xref role="runtime" linkend="acpid"/> (runtime),
[2f4014b]137 <xref linkend="doxygen"/> (to build API documentation),
[caec3e22]138 <xref linkend="fop"/> (to build documentation),
[751dd1e]139 <xref linkend="libunwind"/>,
[94b42903]140 <xref linkend="nettle"/>,
141 <xref linkend="libgcrypt"/>,
[f9387090]142 <xref linkend="xcb-util-keysyms"/>,
[9bff4bc]143 <xref linkend="xcb-util-image"/>,
144 <xref linkend="xcb-util-renderutil"/>,
[ab5ea1f1]145 <xref linkend="xcb-util-wm"/> (all four to build Xephyr),
[caec3e22]146 <xref linkend="xmlto"/> (to build documentation),
[c844a60]147 <xref linkend="xkeyboard-config"/> (for tests),
[c53fe5a7]148 <ulink url="https://gitlab.freedesktop.org/xorg/test/rendercheck">rendercheck</ulink> (for tests), and
[caec3e22]149 <ulink url="https://www.x.org/archive/individual/doc/">xorg-sgml-doctools</ulink> (to build documentation)
[2f4014b]150 </para>
[797182d]151 </sect2>
152
153 <sect2 role="kernel" id="xorg-server-kernel">
154 <title>Kernel Configuration</title>
155
156 <para>
[0c76f3cf]157 The traditional Device Dependent X (DDX) drivers have been removed
[797182d]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
[6043559]174 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
175 href="xorg-server-kernel.xml"/>
[797182d]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
[6043559]186 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
187 href="xorg-server-simpledrm-kernel.xml"/>
[797182d]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
[d8b200ef]219 <ulink url="&BLFS76;">an even earlier prior version</ulink> for more DDX
[797182d]220 drivers.
221 </para>
[9ba5bd9]222
[797182d]223 <indexterm zone="xorg-server xorg-server-kernel">
224 <primary sortas="d-xorg-server">xorg-server</primary>
225 </indexterm>
[5e8be1c]226 </sect2>
[10eeae12]227
[3f72a148]228 <sect2 role="installation">
229 <title>Installation of Xorg Server</title>
[27bcf01]230
[a1ea6d4e]231 <para>
232 First, if you need the TearFree option to work around screen tearing,
233 apply the backported patch:
234 </para>
235
[b35ee5dd]236<screen><userinput remap="pre">patch -Np1 -i ../xorg-server-&xorg-server-version;-tearfree_backport-2.patch</userinput></screen>
[a1ea6d4e]237
[52a90a3]238 <para>
239 Install the server by running the following commands:
240 </para>
[3f72a148]241
[1a9275a]242 <!-- To editors: Ironically -D systemd_logind=true shows up only for
243 **sysv** revision. No it's not a bug. It's used to make the
244 building system error out when dbus is not installed and emphasis
245 that we don't support a configuration lacking a recommended
246 dependency. On systemd dbus is installed in LFS. Despite the
247 naming, it controls elogind support as well.
248
249 It's harmless to have this option for systemd revision as well
250 but I cannot figure out how to write it up in the Explanations
251 section for systemd revision, so just omit it for systemd
252 revision. -->
253
254<screen revision='sysv'><userinput>mkdir build &amp;&amp;
255cd build &amp;&amp;
256
257meson setup .. \
258 --prefix=$XORG_PREFIX \
259 --localstatedir=/var \
260 -D glamor=true \
261 -D systemd_logind=true \
262 -D xkb_output_dir=/var/lib/xkb &amp;&amp;
263ninja</userinput></screen>
264
265<screen revision='systemd'><userinput>mkdir build &amp;&amp;
[c53fe5a7]266cd build &amp;&amp;
[ab5ea1f1]267
[91318eb]268meson setup .. \
269 --prefix=$XORG_PREFIX \
[f3b995a]270 --localstatedir=/var \
[2652614]271 -D glamor=true \
272 -D xkb_output_dir=/var/lib/xkb &amp;&amp;
[ab5ea1f1]273ninja</userinput></screen>
[597ac4bd]274
[2f4014b]275 <para>
[ab5ea1f1]276 To test the results, issue: <command>ninja test</command>. You
[f885719]277 will need to run <command>ldconfig</command> as the <systemitem
278 class="username">root</systemitem> user first or some tests may fail.
[2f4014b]279 </para>
[ad54ac8]280
[2f4014b]281 <para>
282 Now as the <systemitem class="username">root</systemitem>
283 user:
284 </para>
[3f72a148]285
[ab5ea1f1]286<screen role="root" revision="sysv"><userinput>ninja install &amp;&amp;
[2f4014b]287mkdir -pv /etc/X11/xorg.conf.d &amp;&amp;
[ed848370]288install -v -d -m1777 /tmp/.{ICE,X11}-unix &amp;&amp;
[468d7225]289cat &gt;&gt; /etc/sysconfig/createfiles &lt;&lt; "EOF"
[be9c663]290<literal>/tmp/.ICE-unix dir 1777 root root
291/tmp/.X11-unix dir 1777 root root</literal>
[468d7225]292EOF</userinput></screen>
[3f72a148]293
[ab5ea1f1]294<screen role="root" revision="systemd"><userinput>ninja install &amp;&amp;
[597ac4bd]295mkdir -pv /etc/X11/xorg.conf.d</userinput></screen>
296
[3f72a148]297 </sect2>
298
299 <sect2 role="commands">
300 <title>Command Explanations</title>
[0e806de]301
[fad8db2]302 <para>
[2652614]303 <parameter>-D glamor=true</parameter>: Ensure building the Glamor
[797182d]304 module. It's needed to build the &modesetting_drv; driver
[0c76f3cf]305 which replaces the traditional Device Dependent X (DDX) drivers.
[c97d35e]306 </para>
307
[1a9275a]308 <para revision='sysv'>
309 <option>-D systemd_logind=true</option>:
310 This switch makes the building system error out if
311 <xref linkend='dbus'/> is not installed. The BLFS editors discourage
312 building this package without <xref linkend='dbus'/> installed.
313 </para>
314
[c97d35e]315 <para>
[2652614]316 <option>-D suid_wrapper=true</option>: Builds the suid-root
[c97d35e]317 wrapper for legacy DDX driver support on rootless xserver systems.
[fad8db2]318 </para>
[1a9275a]319
[597ac4bd]320 <para revision="sysv">
[2f4014b]321 <command>cat &gt;&gt; /etc/sysconfig/createfiles...</command>: This
322 command creates the <filename class="directory">/tmp/.ICE-unix</filename>
323 and <filename class="directory">/tmp/.X11-unix</filename> directories at
324 startup, and ensures that the permissions and ownership are correct as
325 required by the server.
326 </para>
[468d7225]327
[9bff4bc]328 <para>
[2652614]329 <option>-D xephyr=true</option>: This option allows building Xephyr if its
[c53fe5a7]330 dependencies are met.
[9bff4bc]331 </para>
332
[3f72a148]333 </sect2>
334
[7ab35da]335 <sect2 role="content">
336 <title>Contents</title>
337
338 <segmentedlist>
339 <segtitle>Installed Programs</segtitle>
[95e8211]340 <segtitle>Installed Libraries</segtitle>
[7ab35da]341 <segtitle>Installed Directories</segtitle>
342
343 <seglistitem>
[2f4014b]344 <seg>
[ab5ea1f1]345 gtf, X, Xnest, Xorg, Xvfb, and optionally Xephyr
[2f4014b]346 </seg>
[95e8211]347 <seg>
[ab5ea1f1]348 several under $XORG_PREFIX/lib/xorg/modules/ including the
[797182d]349 &modesetting_drv; driver
[95e8211]350 </seg>
[2f4014b]351 <seg>
[ab5ea1f1]352 /etc/X11/xorg.conf.d,
353 $XORG_PREFIX/include/xorg,
354 $XORG_PREFIX/lib/xorg, and
355 $XORG_PREFIX/share/X11/xorg.conf.d
[2f4014b]356 </seg>
[ab5ea1f1]357
[7ab35da]358 </seglistitem>
359 </segmentedlist>
360
361 <variablelist>
362 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
363 <?dbfo list-presentation="list"?>
364 <?dbhtml list-presentation="table"?>
[0e806de]365
[7ab35da]366 <varlistentry id="gtf-x7">
367 <term><command>gtf</command></term>
368 <listitem>
[2f4014b]369 <para>
[4c24eb0a]370 calculates VESA GTF mode lines
[2f4014b]371 </para>
[5faf7f7e]372 <indexterm zone="xorg-server gtf-x7">
[7ab35da]373 <primary sortas="b-gtf">gtf</primary>
374 </indexterm>
375 </listitem>
376 </varlistentry>
[0e806de]377
[7ab35da]378 <varlistentry id="X-x7">
379 <term><command>X</command></term>
380 <listitem>
[2f4014b]381 <para>
[4c24eb0a]382 is a symbolic link to Xorg
[2f4014b]383 </para>
[5faf7f7e]384 <indexterm zone="xorg-server X-x7">
[7ab35da]385 <primary sortas="b-X">X</primary>
386 </indexterm>
387 </listitem>
388 </varlistentry>
[0e806de]389
[9bff4bc]390 <varlistentry id="Xephyr-x7">
391 <term><command>Xephyr</command></term>
392 <listitem>
393 <para>
[4c24eb0a]394 is a nested X server which supports modern X extensions
[9bff4bc]395 </para>
396 <indexterm zone="xorg-server Xephyr-x7">
397 <primary sortas="b-Xephyr">Xephyr</primary>
398 </indexterm>
399 </listitem>
400 </varlistentry>
401
[7ab35da]402 <varlistentry id="Xnest-x7">
403 <term><command>Xnest</command></term>
404 <listitem>
[2f4014b]405 <para>
[4c24eb0a]406 is a nested X server
[2f4014b]407 </para>
[5faf7f7e]408 <indexterm zone="xorg-server Xnest-x7">
[7ab35da]409 <primary sortas="b-Xnest">Xnest</primary>
410 </indexterm>
411 </listitem>
412 </varlistentry>
413
414 <varlistentry id="Xorg-x7">
415 <term><command>Xorg</command></term>
416 <listitem>
[2f4014b]417 <para>
[4c24eb0a]418 is the X11R7 X Server
[2f4014b]419 </para>
[5faf7f7e]420 <indexterm zone="xorg-server Xorg-x7">
[7ab35da]421 <primary sortas="b-Xorg">Xorg</primary>
422 </indexterm>
423 </listitem>
424 </varlistentry>
425
426 <varlistentry id="Xvfb-x7">
427 <term><command>Xvfb</command></term>
428 <listitem>
[2f4014b]429 <para>
[4c24eb0a]430 is the virtual framebuffer X server for X Version 11
[2f4014b]431 </para>
[5faf7f7e]432 <indexterm zone="xorg-server Xvfb-x7">
[7ab35da]433 <primary sortas="b-Xvfb">Xvfb</primary>
434 </indexterm>
435 </listitem>
436 </varlistentry>
[0e806de]437
[9bff4bc]438 <varlistentry id="modesetting_drv-x7">
439 <term><filename class="libraryfile">modesetting_drv.so</filename></term>
440 <listitem>
441 <para>
442 provides a video driver for machines using Kernel Mode Setting (KMS).
443 This will use glamor if that has been enabled and the hardware offers
[4c24eb0a]444 acceleration
[9bff4bc]445 </para>
446 <indexterm zone="xorg-server modesetting_drv-x7">
447 <primary sortas="c-modesetting_drv">modesetting_drv.so</primary>
448 </indexterm>
449 </listitem>
450 </varlistentry>
451
[7ab35da]452 </variablelist>
453
454 </sect2>
455
[3f72a148]456</sect1>
Note: See TracBrowser for help on using the repository browser.