Xorg-Server-21.1.21

#### Gaming Linux® From Scratch - Version 13.0

### Chapter 14. X11

- Prev

  libepoxy-1.5.10

- Next

  Xwayland-24.1.9

- Up
- Home

# Xorg-Server-21.1.21

## Introduction to Xorg Server

The Xorg Server is the core of the X Window system.

- Download: https://xorg.freedesktop.org/archive/individual/xserver/xorg-server-21.1.21.tar.xz

### Additional Downloads

- Upstream has added the TearFree option to the default modesetting driver (NVIDIA is not able to use it). This patch adds 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/glfs/view/13.0/download/xorg-server/xorg-server-tearfree_backport-3.patch

### Xorg Server Dependencies

Required
A userland graphics driver (Mesa-25.3.5 and/or NVIDIA (NVIDIA-590.48.01 or NVIDIA-580.126.09)) (runtime), DRI from Mesa-25.3.5, libxcvt-0.1.3, Pixman-0.46.4, Xorg Fonts (only font-util), and at runtime: xkeyboard-config-2.46
Recommended
D-Bus-1.16.2, libepoxy-1.5.10 (needed for glamor), Systemd-259.1, and xorg-libinput-1.5.0 (runtime)
Optional
libunwind-1.8.3, Nettle-3.10.1, XCB Utils (to build Xephyr), and xorg-sgml-doctools (to build documentation)

## Kernel Configuration

If your GPU supports 3D acceleration and the userland graphics driver you installed can utilize its 3D capability, you should have already enabled the necessary kernel configuration options. 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 an old version of BLFS, or an even older version for more DDX drivers.

## Installation of Xorg Server

First, if you need the TearFree option to work around screen tearing, apply the patch:

    patch -Np1 -i ../xorg-server-tearfree_backport-3.patch

Install the server by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup --prefix=/usr                  \
                --localstatedir=/var           \
                -D glamor=true                 \
                -D secure-rpc=false            \
                -D xkb_output_dir=/var/lib/xkb \
                .. &&

    ninja

Now as the `root` user:

    ninja install &&
    mkdir -pv /etc/X11/xorg.conf.d

## Command Explanations

### Note

Inspect `meson_options.txt` or `meson.options` for a full list of options.

`-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`: Disables RPC support as libtirpc was not built.

`-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.

## Configuring Xorg Server

Furthermore, if this package was not built with Systemd-259.1, add any non-root users to the `input` and `video` groups as the `root` user:

    usermod -a -G input,video <username>

## Contents

Installed Programs: gtf, X, Xnest, Xorg, Xvfb, and optionally Xephyr
Installed Libraries: several under /usr/lib/xorg/modules/ including the `modesetting_drv` driver
Installed Directories: /etc/X11/xorg.conf.d, /usr/include/xorg, /usr/lib/xorg, and /usr/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` | 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

- Prev

  libepoxy-1.5.10

- Next

  Xwayland-24.1.9

- Up
- Home