mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 09:21:26 +03:00
168 lines
6.4 KiB
XML
168 lines
6.4 KiB
XML
<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
|
|
<!--
|
|
SPDX-License-Identifier: LGPL-2.1+
|
|
|
|
This file is part of systemd.
|
|
|
|
Copyright 2014 Tom Gundersen
|
|
Copyright 2016 Zbigniew Jędrzejewski-Szmek
|
|
|
|
systemd is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation; either version 2.1 of the License, or
|
|
(at your option) any later version.
|
|
|
|
systemd is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<refentry id="hwdb" conditional="ENABLE_HWDB">
|
|
<refentryinfo>
|
|
<title>hwdb</title>
|
|
<productname>systemd</productname>
|
|
<authorgroup>
|
|
<author>
|
|
<contrib>Developer</contrib>
|
|
<firstname>Kay</firstname>
|
|
<surname>Sievers</surname>
|
|
<email>kay@vrfy.org</email>
|
|
</author>
|
|
<author>
|
|
<contrib>Developer</contrib>
|
|
<firstname>Tom</firstname>
|
|
<surname>Gundersen</surname>
|
|
<email>teg@jklm.no</email>
|
|
</author>
|
|
</authorgroup>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>hwdb</refentrytitle>
|
|
<manvolnum>7</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>hwdb</refname>
|
|
<refpurpose>Hardware Database</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1><title>Description</title>
|
|
<para>The hardware database is a key-value store for associating modalias-like keys to
|
|
udev-property-like values. It is used primarily by udev to add the relevant properties
|
|
to matching devices, but it can also be queried directly.</para>
|
|
</refsect1>
|
|
|
|
<refsect1><title>Hardware Database Files</title>
|
|
<para>The hwdb files are read from the files located in the
|
|
system hwdb directory <filename>/usr/lib/udev/hwdb.d</filename> and
|
|
the local administration directory <filename>/etc/udev/hwdb.d</filename>.
|
|
All hwdb files are collectively sorted and processed in lexical order,
|
|
regardless of the directories in which they live. However, files with
|
|
identical filenames replace each other. Files in <filename>/etc</filename>
|
|
have the highest priority and take precedence over files with the same
|
|
name in <filename>/usr/lib</filename>. This can be used to override a
|
|
system-supplied hwdb file with a local file if needed;
|
|
a symlink in <filename>/etc</filename> with the same name as a hwdb file in
|
|
<filename>/usr/lib</filename>, pointing to <filename>/dev/null</filename>,
|
|
disables that hwdb file entirely. hwdb files must have the extension
|
|
<filename>.hwdb</filename>; other extensions are ignored.</para>
|
|
|
|
<para>Each hwdb file contains data records consisting of matches and associated
|
|
key-value pairs. Every record in the hwdb starts with one or more match strings,
|
|
specifying a shell glob to compare the lookup string against. Multiple match lines
|
|
are specified in consecutive lines. Every match line is compared individually, and
|
|
they are combined by OR. Every match line must start at the first character of the
|
|
line.</para>
|
|
|
|
<para>The match lines are followed by one or more key-value pair lines, which are
|
|
recognized by a leading space character. The key name and value are separated by
|
|
<literal>=</literal>. An empty line signifies the end of a record. Lines beginning
|
|
with <literal>#</literal> are ignored.</para>
|
|
|
|
<para>In case multiple records match a given lookup string, the key-value pairs
|
|
from all records are combined. If a key is specified multiple times, the value
|
|
from the record with the highest priority is used (each key can have only a single
|
|
value). The priority is higher when the record is in a file that sorts later
|
|
lexicographically, and in case of records in the same file, later records have
|
|
higher priority.</para>
|
|
|
|
<para>The content of all hwdb files is read by
|
|
<citerefentry><refentrytitle>systemd-hwdb</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
|
and compiled to a binary database located at <filename>/etc/udev/hwdb.bin</filename>,
|
|
or alternatively <filename>/usr/lib/udev/hwdb.bin</filename> if you want ship the
|
|
compiled database in an immutable image. During runtime, only the binary database
|
|
is used.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Examples</title>
|
|
|
|
<example>
|
|
<title>General syntax of hwdb files</title>
|
|
|
|
<programlisting># /usr/lib/udev/hwdb.d/example.hwdb
|
|
# Comments can be placed before any records. This is a good spot
|
|
# to describe what that file is used for, what kind of properties
|
|
# it defines, and the ordering convention.
|
|
|
|
# A record with three matches and one property
|
|
mouse:*:name:*Trackball*:
|
|
mouse:*:name:*trackball*:
|
|
mouse:*:name:*TrackBall*:
|
|
ID_INPUT_TRACKBALL=1
|
|
|
|
# A record with a single match and five properties
|
|
mouse:usb:v046dp4041:name:Logitech MX Master:
|
|
MOUSE_DPI=1000@166
|
|
MOUSE_WHEEL_CLICK_ANGLE=15
|
|
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
|
|
MOUSE_WHEEL_CLICK_COUNT=24
|
|
MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Overriding of properties</title>
|
|
|
|
<programlisting># /usr/lib/udev/hwdb.d/60-keyboard.hwdb
|
|
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*
|
|
KEYBOARD_KEY_a1=help
|
|
KEYBOARD_KEY_a2=setup
|
|
KEYBOARD_KEY_a3=battery
|
|
|
|
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn123*
|
|
KEYBOARD_KEY_a2=wlan
|
|
|
|
# /etc/udev/hwdb.d/70-keyboard.hwdb
|
|
# disable wlan key on all at keyboards
|
|
evdev:atkbd:*
|
|
KEYBOARD_KEY_a2=reserved</programlisting>
|
|
|
|
<para>If the hwdb consists of those two files, a keyboard with the lookup string
|
|
<literal>evdev:atkbd:dmi:bvnAcer:bdXXXXX:bd08/05/2010:svnAcer:pn123</literal>
|
|
will match all three records, and end up with the following properties:</para>
|
|
|
|
<programlisting>KEYBOARD_KEY_a1=help
|
|
KEYBOARD_KEY_a2=reserved
|
|
KEYBOARD_KEY_a3=battery</programlisting>
|
|
</example>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
<para>
|
|
<citerefentry>
|
|
<refentrytitle>systemd-hwdb</refentrytitle><manvolnum>8</manvolnum>
|
|
</citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|