4.6.4 编译安装udev

前面几节我们探讨了相关的工作原理,从本节开始,我们开始动手实践驱动模块的自动加载过程。

因为系统启动程序systemd和udev之间的依赖关系,为了方便开发编译,所以社区中已经将udev和systemd合并了。但是本书中我们不讨论systemd,为了减少干扰,本书中使用尚未合并前的udev。合并前后,udev本质上并没有什么差别。

使用如下命令编译安装udev(我们采用的版本是udev 173):

4.6.4 编译安装udev - 图1

指定—libexecdir的目的是告诉安装脚本将udev的规则文件以及一些helper程序安装在/lib/udev目录下。我们使用—disable选项禁掉udev不必要的一些特性,也减少了udev对其他库的依赖和系统的复杂性。

接下来将udevd、udevadm以及相关的规则文件安装到initramfs中:

4.6.4 编译安装udev - 图2

udevd和udevadm依赖的库在前面已经复制到initramfs中了,所以只需将udevd、udevadm和加载驱动的规则,即80-drivers.rules,复制到initramfs即可。