Introduction to Xorg Server
The Xorg Server is the core
of the X Window system.
This package is known to build and work properly
using an LFS 12.4 platform.
Package Information
Additional Downloads
With the removal of the xf86-video-* drivers, the TearFree option
is no longer functional. To work around this, upstream has added the
TearFree option to the default modesetting driver. This patch
backports this feature. Apply this patch if you are going to use Xorg
in an environment without a compositor (such as TWM, IceWM, Openbox,
or Fluxbox).
Optional patch: https://www.linuxfromscratch.org/patches/downloads/xorg-server/xorg-server-21.1.21-tearfree_backport-1.patch
Patch SHA256 Sum: df3406c2fa906d97c0e095e3c85a93d3eeadd04f6f6e2b9979442b4d581cc884
Xorg Server Dependencies
Required
libxcvt-0.1.3,
Pixman-0.46.4,
Xorg7 Fonts (only font-util), and at runtime:
xkeyboard-config-2.46
Recommended
libepoxy-1.5.10 (needed for glamor),
libtirpc-1.3.7
and Xorg7 Input Drivers (runtime)
Optional
"doxygen" (to build API documentation),
"fop" (to build documentation),
"libunwind",
Nettle-3.10.2,
libgcrypt-1.11.2,
the section called “xcb-util-0.4.1” (to build Xephyr),
xmlto-0.0.29 (to build documentation),
xkeyboard-config-2.46 (for tests),
rendercheck (for tests), and
xorg-sgml-doctools (to build documentation)
Kernel Configuration
The traditional Device Dependent X (DDX) drivers have been removed
from BLFS in favor of the modesetting_drv driver which will be
built as a part of this package. To use the modesetting_drv driver,
the kernel must provide a Direct Rendering Manager (DRM) driver for
your GPU.
If your GPU supports 3D acceleration and Mesa-25.2.7
provides a Gallium3D driver for utilizing its 3D capability, you
should have already enabled the necessary kernel configuration options
in Mesa Kernel Configuration. Otherwise, you need to find the
kernel configuration option of the DRM driver for the GPU and enable
it. Notably, the virtual GPUs provided by some virtual machine
managers:
Device Drivers --->
Graphics support --->
<*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
... [DRM]
< /*/M> DRM driver for VMware Virtual GPU [DRM_VMWGFX]
< /*/M> DRM Support for bochs dispi vga interface (qemu stdvga) [DRM_BOCHS]
< /*/M> Virtual Box Graphics Card [DRM_VBOXVIDEO]
If the kernel does not provide a DRM driver for your GPU, on most x86
systems the “simple frame buffer” DRM driver running on
VESA or UEFI frame buffer can be used as a fallback. Enable the
following options in the kernel configurations if you don't have a
dedicated DRM driver for the GPU, or you want to keep the simple
frame buffer driver as a fallback in case the dedicated driver fails:
Device Drivers --->
Firmware Drivers --->
[*] Mark VGA/VBE/EFI FB as generic system framebuffer [SYSFB_SIMPLEFB]
Graphics support --->
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
... [DRM]
Drivers for system framebuffers --->
<*> Simple framebuffer driver [DRM_SIMPLEDRM]
To allow the kernel to print debug messages at an early boot stage,
CONFIG_DRM and CONFIG_DRM_SIMPLEDRM
should not be built as kernel modules unless an initramfs will be
used.
If you want to use the simple frame buffer driver on a system booted
via BIOS (instead of UEFI), add the following line before the first
menuentry block in the
/boot/grub/grub.cfg file to initialize the VESA
frame buffer:
set gfxpayload=1024x768x32
You may replace 1024, 768, and
32 with a resolution and color depth setting
suitable for your monitor.
If all of these DRM drivers do not work for you and you need to use
a DDX driver with a non-DRM kernel GPU driver (usually named
CONFIG_FB_* in the kernel configuration, or existing
as out-tree kernel modules), or you need an device specific
functionality requiring a DDX driver, consult
a prior version of BLFS, or
an even earlier prior version for more DDX
drivers.
Installation of Xorg Server
First, if you need the TearFree option to work around screen tearing,
apply the backported patch:
patch -Np1 -i ../xorg-server-21.1.21-tearfree_backport-1.patch
Prepare the server by running the following commands:
meson setup build --prefix=/usr \
--localstatedir=/var \
-D glamor=true \
-D xkb_output_dir=/var/lib/xkbninja -C build
You will need to run ldconfig as the root user first or some tests may fail.
To test the results, issue:
/sbin/ldconfig
ninja -C build test
Now Install, as the root user:
ninja -C build install
mkdir -pv /etc/X11/xorg.conf.d
Command Explanations
-D glamor=true: Ensure building the Glamor
module. It's needed to build the modesetting_drv driver
which replaces the traditional Device Dependent X (DDX) drivers.
-D secure-rpc=false: This option disables building RPC
support if libtirpc-1.3.7 is not installed.
-D suid_wrapper=true: Builds the suid-root
wrapper for legacy DDX driver support on rootless xserver systems.
-D xephyr=true: This option allows building Xephyr if its
dependencies are met.
Contents
Installed Programs:
gtf, X, Xnest, Xorg, Xvfb, and optionally Xephyr
Installed Libraries:
several under $XORG_PREFIX/lib/xorg/modules/ including the
modesetting_drv driver
Installed Directories:
/etc/X11/xorg.conf.d,
$XORG_PREFIX/include/xorg,
$XORG_PREFIX/lib/xorg, and
$XORG_PREFIX/share/X11/xorg.conf.d
Short Descriptions
gtf |
calculates VESA GTF mode lines
|
X |
is a symbolic link to Xorg
|
Xephyr |
is a nested X server which supports modern X extensions
|
Xnest |
is a nested X server
|
Xorg |
is the X11R7 X Server
|
Xvfb |
is the virtual framebuffer X server for X Version 11
|
modesetting_drv.so
|
provides a video driver for machines using Kernel Mode Setting (KMS).
This will use glamor if that has been enabled and the hardware offers
acceleration
|