HWDB(7)

NAME
hwdb - 硬件数据库

描述

硬件数据库是一个由"modalias"风格的键(key)与"udev属性"风格的值(value)组成的 key-value 文本数据库。 主要用于 udev 为匹配到的硬件设备添加关联属性， 但也可以用于直接查询。

硬件数据库文件

硬件数据库文件(hwdb)位于 操作系统发行商维护的 /usr/lib/udev/hwdb.d 目录中， 以及系统管理员维护的 /etc/udev/hwdb.d 目录中。 所有的 hwdb 文件(无论位于哪个目录中)，统一按照文件名的字典顺序处理。 对于不同目录下的同名 hwdb 文件，仅以 /etc/udev/hwdb.d 目录中的那一个为准。 依据这个特性，系统管理员可以使用 /etc/udev/hwdb.d 目录中的自定义文件 替代 /usr/lib/udev/hwdb.d 目录中的同名文件。 如果系统管理员想要屏蔽 /usr/lib/udev/hwdb.d 目录中的某个 hwdb 文件， 那么最佳做法是在 /etc/udev/hwdb.d 目录中创建一个指向 /dev/null 的同名符号链接， 即可彻底屏蔽 /usr/lib/udev/hwdb.d 目录中的同名文件。 注意，硬件数据库文件必须以 .hwdb 作为后缀名，否则将被忽略。

硬件数据库文件(hwdb)包含由"matche"与关联的"key-value"组成的记录。 每条记录由一个或多个用于匹配查找的"matche"字符串(可包含shell风格的通配符)开头， 多个"matche"字符串之间使用换行符分隔，但必须是依次紧紧相连的行(也就是中间不能出现空行)， 每一行都必须是一个完整的"matche"字符串(也就是不能将一个"matche"字符串分为两行)， 多行之间是逻辑或(OR)的关系。 每一个"matche"字符串都必须顶行书写(也就是行首不能是空白字符)。

"matche"行之后是一个或多个以空格开头的"key-value"行(必须以空格开头作为区分)， "key-value"行必须符合 "key=value" 格式。 一个空白行表示一条记录结束。 以 "#" 开头的行将被视为注释而被忽略。

所有 hwdb 文件都将被 systemd-hwdb(8) 编译为二进制格式的数据库，并存放在 /etc/udev/hwdb.bin 文件中。 注意，操作系统发行商应该将预装的二进制格式的数据库存放在 /usr/lib/udev/hwdb.bin 文件中。 系统在运行时，仅会读取二进制格式的硬件数据库。

参见

systemd-hwdb(8)