hid-tools is a set of tools to interact with the kernel's HID subsystem.
It can be run directly from the git repository or installed via pip3 install hid-tools.
The hid-tools repository does not need to be installed, all tools and
kernel tests can be run straight from the git repository, for example the
following commands clone the repository and run the hid-recorder tool.
$ git clone https://gitlab.freedesktop.org/libevdev/hid-tools
$ cd hid-tools
$ sudo ./hid-recorder
Where the tools need to be installed, it is recommended to use pip:
$ sudo pip3 install .
This installs all tools into the system-wide Python path. hid-tools needs
root access to the /dev/hidraw nodes, an installation in the user-specific
paths will not usually work without further commandline tweaking
configuration. Removal of the tools works with pip as well:
$ pip3 uninstall hid-tools
hid-recorder prints the HID Report Descriptor from a /dev/hidraw device
node and any HID reports coming from that device. The output format can be
used with hid-replay for debugging. When run without any arguments, the
tool prints a list of available devices.
$ sudo hid-recorder
hid-replay takes the output from hid-recorder and replays it through a
virtual HID device that looks exactly like the one recorded. hid-replay
requires UHID support so make sure pyudev is installed.
$ sudo hid-replay recording-file.hid
hid-decode takes a HID Report Descriptor and prints a human-readable
version of it. hid-decode takes binary report descriptors, strings of
bytes, and other formats.
$ hid-decode /sys/class/input/event5/device/device/report_descriptor
The hid-tools repository contains a number of tests exercising the kernel
HID subsystem. The tests are not part of the pip3 module and must be run
from the git repository. The most convenient invocation of the tests is by
simply calling pytest. The test suite requires UHID support so make sure
pyudev is installed.
$ git clone https://gitlab.freedesktop.org/libevdev/hid-tools
$ cd hid-tools
Note If your testing system is running X, please follow the steps below to let X drivers ignore uhid test devices. Otherwise, the X driver will recognize and handle the test devices, which would interfere with the kernel tests and the running session.
$ sudo cp tests/91-hid-tools-uhid-test.conf /etc/X11/xorg.conf.d/
Restart your X server End of Note
$ sudo pytest-3
See the pytest documentation for information on how to run a subset of
tests.
Technical limitations require that hid-tools ships with a Python module
called hidtools. This module is not to be used by external
applications.
The hidtools python module does not provide any API stability guarantee. It may change at any time
hid-tools is licensed under the GPLv2+.