diff options
author | Martin Pitt <martin.pitt@ubuntu.com> | 2016-12-12 16:03:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-12 16:03:52 +0100 |
commit | 142a1afbb9ae02dc69394e0e258624e9ce21f562 (patch) | |
tree | 709fe437503fa4828b7b7feee06953ab82962ad7 /man | |
parent | e3e30d2a44ba6e204c92d2afa28d402f6e9ba263 (diff) | |
parent | 7a100dce9db33006888156876ff8aeb27e77eed2 (diff) |
Merge pull request #4771 from keszybz/udev-property-ordering
Udev property ordering
Diffstat (limited to 'man')
-rw-r--r-- | man/hwdb.xml | 90 |
1 files changed, 75 insertions, 15 deletions
diff --git a/man/hwdb.xml b/man/hwdb.xml index 2b1e60fb22..ae5ddb1a4d 100644 --- a/man/hwdb.xml +++ b/man/hwdb.xml @@ -50,28 +50,88 @@ 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> |