6.77. Eudev-3.2.7

Eudev 软件包包含动态创建设备节点的程序。

大致构建用时: 0.2 SBU
所需磁盘空间: 82 MB

6.77.1. 安装 Eudev

接着,追加一个解决方案以保证 /tools 目录不会被硬编码到 Eudev 的二进制文件库处:

cat > config.cache << "EOF"
HAVE_BLKID=1
BLKID_LIBS="-lblkid"
BLKID_CFLAGS="-I/tools/include"
EOF

准备编译 Eudev:

./configure --prefix=/usr           \
            --bindir=/sbin          \
            --sbindir=/sbin         \
            --libdir=/usr/lib       \
            --sysconfdir=/etc       \
            --libexecdir=/lib       \
            --with-rootprefix=      \
            --with-rootlibdir=/lib  \
            --enable-manpages       \
            --disable-static        \
            --config-cache

编译软件包:

LIBRARY_PATH=/tools/lib make
[Note]

Note

需要此处的变量 LIBRARY_PATH 和下面的变量 LD_LIBRARY_PATH 来使安装在 /tools 中的库可用。LIBRARY_PATH 用于在链接过程中查找库。LD_LIBRARY_PATH 用于在程序执行期间查找库。

现在创建一些目录,不仅仅是为了测试需求,一部分的安装操作也将用到:

mkdir -pv /lib/udev/rules.d
mkdir -pv /etc/udev/rules.d

测试编译结果,通过:

make LD_LIBRARY_PATH=/tools/lib check

安装软件包:

make LD_LIBRARY_PATH=/tools/lib install

安装一些对 LFS 的环境中有益的自定义规则和支持文件:

tar -xvf ../udev-lfs-20171102.tar.bz2
make -f udev-lfs-20171102/Makefile.lfs install

6.77.2. 配置 Eudev

有关硬件的设备存放在 /etc/udev/hwdb.d/lib/udev/hwdb.d 目录中。Eudev 需要将这些信息编译到一个二进制数据库文件 /etc/udev/hwdb.bin 中去。创建初始数据库:

LD_LIBRARY_PATH=/tools/lib udevadm hwdb --update

该命令需在每次更新硬件信息时运行。

6.77.3. Eudev 软件包的内容

安装的程序: udevadm and udevd
安装的库: libudev.so
安装的目录: /etc/udev, /lib/udev, 和 /usr/share/doc/udev-udev-lfs-20171102

简要介绍

udevadm

通用 udev 管理工具:控制守护进程 udevd,从 udev 数据库提供信息,监控 uevent,等待 uevent 完成,测试 udev 配置,并为给定的设备触发 uevent

udevd

一个守护进程,用于监听 netlink 套接字上 uevent,创建设备和运行这些 uevent 的应答中已被配置了的外部命令

libudev

一个 udev 设备信息的库接口

/etc/udev

包含 udev 的配置文件,设备权限,以及设备命名规则