]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - man/hwdb.xml
final v236 update (#7649)
[thirdparty/systemd.git] / man / hwdb.xml
index 2b1e60fb2224d662e0c0462aee3b638a53a38b58..bf89819949e62096e10a0bc9999756ad1abe6086 100644 (file)
@@ -2,6 +2,28 @@
 <!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>
       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 the hwdb file entirely. hwdb files must have the extension
+      disables that hwdb file entirely. hwdb files must have the extension
       <filename>.hwdb</filename>; other extensions are ignored.</para>
 
-      <para>The 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 database
-      lookup string against. Multiple match lines are specified in additional
-      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>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>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>
+      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>