Xorg Input Drivers

#### Beyond Linux® From Scratch (systemd Edition) - Version r13.0-1303

### Chapter 24. Graphical Environments

- Prev

  Xorg-Server-21.1.24

- Next

  twm-1.0.13.1

- Up
- Home

# Xorg Input Drivers

## Introduction to Xorg Input Drivers

The Xorg Input Drivers page contains the instructions for building Xorg input drivers that are necessary in order for Xorg Server to respond user inputs.

### Xorg Input Drivers

- libevdev-1.13.6

- Xorg Evdev Driver-2.11.0

- libinput-1.31.3

- xorg-libinput-1.5.0

- Xorg Synaptics Driver-1.10.0

- Xorg Wacom Driver-1.2.4

## libevdev 1.13.6

### Introduction to libevdev

The libevdev package contains common functions for Xorg input drivers.

### Note

This package is known to build and work properly using an LFS 13.1 platform.

#### Package Information

- Download (HTTP): https://www.freedesktop.org/software/libevdev/libevdev-1.13.6.tar.xz

- Download MD5 sum: 4202ff132e3efe95fe9ca2c4f8f119f7

- Download size: 464 KB

- Estimated disk space required: 5.0 MB (without tests

- Estimated build time: less than 0.1 SBU (without tests)

#### libevdev Dependencies

##### Optional

Doxygen-1.18.0, Valgrind-3.27.1 (optional for tests), and check (required for tests)

### Kernel Configuration

Enable the following options in the kernel configuration and recompile the kernel if necessary:

    Device Drivers --->
      Input device support --->
        -*-   Generic input layer (needed for keyboard, mouse, ...)          [INPUT]
        <*/M>   Event interface                                        [INPUT_EVDEV]

If you want to test this package with full coverage, the following options are needed as well:

    Device Drivers --->
      Input device support --->
        -*- Generic input layer (needed for keyboard, mouse, ...)            [INPUT]
        [*]   Miscellaneous devices --->                                [INPUT_MISC]
          <*/M>   User level driver support                           [INPUT_UINPUT]

If you build this as a module, it needs to be inserted before the test suite runs.

### Installation of libevdev

Install libevdev by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup ..                  \
          --prefix=$XORG_PREFIX     \
          --buildtype=release       \
          -D documentation=disabled \
          -D tests=disabled         &&
    ninja

The test suite requires Check that we've removed from LFS.

Now, as the `root` user:

    ninja install

### Command Explanations

`-D tests=disabled`: This allows the package to compile if Check is not installed. We've removed Check from LFS.

### Contents

Installed Xorg Programs: libevdev-tweak-device, mouse-dpi-tool, and touchpad-edge-detector
Installed Xorg Library: libevdev.so
Installed Xorg Directory: $XORG_PREFIX/include/libevdev-1.0

#### Short Descriptions

libevdev-tweak-device | is a tool to change some kernel device properties
mouse-dpi-tool | is a tool to estimate the resolution of a mouse
touchpad-edge-detector | touchpad-edge-detector is a tool that reads the touchpad events from the kernel and calculates the minimum and maximum for the x and y coordinates, respectively
`libevdev.so` | is a library of Xorg driver input functions

## Xorg Evdev Driver-2.11.0

### Introduction to Xorg Evdev Driver

The Xorg Evdev Driver package contains a Generic Linux input driver for the Xorg X server. It handles keyboard, mouse, touchpads and wacom devices, though for touchpad and wacom advanced handling, additional drivers are required.

### Note

This package is known to build and work properly using an LFS 13.1 platform.

#### Package Information

- Download (HTTP): https://www.x.org/pub/individual/driver/xf86-input-evdev-2.11.0.tar.xz

- Download MD5 sum: faa89be0ef86aebd6fd0a03eed23839c

- Download size: 344 KB

- Estimated disk space required: 3.7 MB

- Estimated build time: less than 0.1 SBU

#### Xorg Evdev Driver Dependencies

##### Required

libevdev-1.13.6, mtdev-1.1.7, and Xorg-Server-21.1.24

### Installation of Xorg Evdev Driver

Install Xorg Evdev Driver by running the following commands:

    ./configure $XORG_CONFIG &&
    make

This package does not come with a test suite.

Now, as the `root` user:

    make install

### Contents

Installed Xorg Driver: evdev_drv.so

#### Short Descriptions

`evdev_drv.so` | is an Xorg input driver for Linux generic event devices

## libinput-1.31.3

### Introduction to Libinput

libinput is a library that handles input devices for display servers and other applications that need to directly deal with input devices.

### Note

This package is known to build and work properly using an LFS 13.1 platform.

#### Package Information

- Download (HTTP): https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.31.3/libinput-1.31.3.tar.gz

- Download MD5 sum: 022aa3838b0cf8b932c0e4a4dbeac150

- Download size: 1.2 MB

- Estimated disk space required: 15 MB (add 47 MB for documentation and tests)

- Estimated build time: 0.1 SBU (add 0.1 SBU for documentation and 0.3 SBU for minor tests)

#### libinput Dependencies

##### Required

libevdev-1.13.6 and mtdev-1.1.7

##### Optional

Valgrind-3.27.1 (to run the tests), GTK-3.24.52 (to build the GUI event viewer), libunwind-1.8.3 (required for tests), libwacom-2.19.1, Doxygen-1.18.0, Graphviz-15.1.1, Lua-5.4.8, recommonmark-0.7.1, and sphinx_rtd_theme-3.1.0 (required to build documentation), pyparsing-3.3.2 (for one non-root test), pytest-9.1.1 (for another non-root test), and check (for another non-root test)

### Kernel Configuration for Running the Libinput Test Suite

Although libinput works with the same kernel configuration used by libevdev-1.13.6, its standard and more expansive test suite requires the presence of `/dev/uinput` (as well as both Valgrind-3.27.1 and libunwind-1.8.3).

If you wish to run the standard test suite, enable the following option in the kernel configuration and recompile the kernel if necessary:

    Device Drivers --->
      Input device support --->
        -*- Generic input layer (needed for keyboard, mouse, ...)            [INPUT]
        [*]   Miscellaneous devices --->                                [INPUT_MISC]
          <*/M>   User level driver support                           [INPUT_UINPUT]

If you build this as a module, it needs to be inserted before the test suite runs.

### Installation of Libinput

Install libinput by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup ..              \
          --prefix=$XORG_PREFIX \
          --buildtype=release   \
          -D debug-gui=false    \
          -D tests=false        \
          -D libwacom=false     \
          -D udev-dir=/usr/lib/udev &&
    ninja

To test the package, issue: meson configure -D tests=true && ninja test. Many tests are skipped unless running the test suite as the `root` user. To run those tests, as the `root` user issue: meson test --suite=root.

Now, as the `root` user:

    ninja install

If you have passed `-D documentation=true` to meson, you can install the generated documentation by running the following commands as the `root` user:

    install -v -dm755      /usr/share/doc/libinput-1.31.3/html &&
    cp -rv Documentation/* /usr/share/doc/libinput-1.31.3/html

### Command Explanations

`--buildtype=release`: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

`-D debug-gui=false`: This switch disables creation of a visual debug helper for libinput. Remove if you want it, and you have GTK-3.24.52 installed.

`-D tests=false`: This switch disables compilation of the standard test suite. Even with the tests defined as false, you can still run the first six minor tests as a regular user, but one will be skipped if pyparsing-3.3.2 is not installed, and another one if pytest-9.1.1 is not installed.

`-D libwacom=false`: Remove this option if you have libwacom-2.19.1 installed, or if you are installing GNOME.

`-D udev-dir=/usr/lib/udev`: In case that the value of `XORG_PREFIX` is not set to `/usr`, this option prevents the package from installing Udev rules and helpers into `$XORG_PREFIX/lib/udev` which is not searched by Udev daemon. This option is not needed for systems with `XORG_PREFIX` set to `/usr`, but does no harm.

`-D documentation=true`: This switch enables generation of the documentation. Add it if you want to generate the documentation. See the optional dependencies required to build documentation.

### Contents

Installed Programs: libinput
Installed Libraries: libinput.so
Installed Directories: /etc/libinput, $XORG_PREFIX/libexec/libinput, $XORG_PREFIX/share/libinput, and (optionally) $XORG_PREFIX/share/doc/libinput-1.31.3

### Short Descriptions

libinput | is a set of tools to interface with the libinput library
`libinput.so` | contains API functions for handling input devices

## Xorg Libinput Driver-1.5.0

### Introduction to Xorg Libinput Driver

The X.Org Libinput Driver is a thin wrapper around libinput and allows for libinput to be used for input devices in X. This driver can be used as drop-in replacement for evdev and synaptics.

### Note

This package is known to build and work properly using an LFS 13.1 platform.

#### Package Information

- Download (HTTP): https://www.x.org/pub/individual/driver/xf86-input-libinput-1.5.0.tar.xz

- Download MD5 sum: f8d0fb6987d843e688d597c2b66ec824

- Download size: 324 KB

- Estimated disk space required: 3.9 MB (with tests)

- Estimated build time: less than 0.1 SBU (with tests)

#### Xorg Libinput Driver Dependencies

##### Required

libinput-1.31.3 and Xorg-Server-21.1.24

### Installation of Xorg Libinput Driver

Install Xorg Libinput Driver by running the following commands:

    ./configure $XORG_CONFIG &&
    make

To test the results, issue make check.

Now, as the `root` user:

    make install

### Contents

Installed Xorg Driver: libinput_drv.so

#### Short Descriptions

`libinput_drv.so` | is an Xorg input driver for mouse, keyboard, touchpad, touchscreen, and tablet devices

## Xorg Synaptics Driver-1.10.0

### Introduction to Xorg Synaptics Driver

The Xorg Synaptics Driver package contains the X.Org Input Driver, support programs and SDK for Synaptics touchpads. Even though the evdev driver can handle touchpads very well, this driver is required if you want to use advanced features like multi tapping, scrolling with touchpad, turning the touchpad off while typing, etc.

### Note

This package is known to build and work properly using an LFS 13.1 platform.

#### Package Information

- Download (HTTP): https://www.x.org/pub/individual/driver/xf86-input-synaptics-1.10.0.tar.xz

- Download MD5 sum: 017383c13a0d0f4cb320be477ab25513

- Download size: 424 KB

- Estimated disk space required: 5.3 MB

- Estimated build time: less than 0.1 SBU

#### Xorg Synaptics Driver Dependencies

##### Required

libevdev-1.13.6 and Xorg-Server-21.1.24

### Installation of Xorg Synaptics Driver

Install Xorg Synaptics Driver by running the following commands:

    ./configure $XORG_CONFIG &&
    make

This package does not come with a test suite.

Now, as the `root` user:

    make install

### Contents

Installed Programs: synclient and syndaemon
Installed Xorg Driver: synaptics_drv.so

#### Short Descriptions

synclient | is a command line utility used to query and modify Synaptics driver options
syndaemon | is a program that monitors keyboard activity and disables the touchpad when the keyboard is being used
`synaptics_drv.so` | is an Xorg input driver for touchpads

## Xorg Wacom Driver-1.2.4

### Introduction to Xorg Wacom Driver

The Xorg Wacom Driver package contains the X.Org X11 driver and SDK for Wacom and Wacom-like tablets. It is not required to use a Wacom tablet, the xf86-input-evdev driver can handle these devices without problems.

### Note

This package is known to build and work properly using an LFS 13.1 platform.

#### Package Information

- Download (HTTP): https://github.com/linuxwacom/xf86-input-wacom/releases/download/xf86-input-wacom-1.2.4/xf86-input-wacom-1.2.4.tar.bz2

- Download MD5 sum: e22300fe7cf162fa2b1a6e64ef7341f3

- Download size: 676 KB

- Estimated disk space required: 6.4 MB (with tests)

- Estimated build time: less than 0.1 SBU (with tests)

#### Xorg Wacom Drivers Dependencies

##### Required

Xorg-Server-21.1.24

##### Optional

Doxygen-1.18.0 and Graphviz-15.1.1

### Kernel Configuration

To use a Wacom tablet with USB interface, enable the following options in your kernel configuration and recompile. Note that other configuration options could be required for tablet with a serial or bluetooth interface:

    Device Drivers --->
      [*] HID bus support --->                                         [HID_SUPPORT]
        {*/M} HID bus core support                                             [HID]
          Special HID drivers --->
          <*/M>   Wacom Intuos/Graphire tablet support (USB)             [HID_WACOM]
        USB HID support --->
          <*/M> USB HID transport layer                                    [USB_HID]
      [*] USB support --->                                             [USB_SUPPORT]
        <*/M> Support for Host-side USB                                        [USB]

### Installation of Xorg Wacom Driver

Install Xorg Wacom Driver by running the following commands:

    ./configure $XORG_CONFIG &&
    make

To test the results, issue: make check.

Now, as the `root` user:

    make install

### Contents

Installed Programs: isdv4-serial-debugger, isdv4-serial-inputattach, and xsetwacom
Installed Xorg Driver: wacom_drv.so

#### Short Descriptions

xsetwacom | is a commandline utility used to query and modify wacom driver settings
`wacom_drv.so` | is an Xorg input driver for Wacom devices

- Prev

  Xorg-Server-21.1.24

- Next

  twm-1.0.13.1

- Up
- Home