牛骨文教育服务平台(让学习变的简单)

6.55. Udev-096

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

预计编译时间: 0.1 SBU所需磁盘空间: 6.8 MB

6.55.1. 安装 Udev

udev-config 压缩包里面包含用配置 Udev 的 LFS-specific 文件。把它解压到 Udev 的源码目录:

tar xf ../udev-config-6.2.tar.bz2

创建一些Udev无法创建的设备和目录,因为这些会在系统启动的早些时候被用到:

install -dv /lib/{firmware,udev/devices/{pts,shm}}
mknod -m0666 /lib/udev/devices/null c 1 3
ln -sv /proc/self/fd /lib/udev/devices/fd
ln -sv /proc/self/fd/0 /lib/udev/devices/stdin
ln -sv /proc/self/fd/1 /lib/udev/devices/stdout
ln -sv /proc/self/fd/2 /lib/udev/devices/stderr
ln -sv /proc/kcore /lib/udev/devices/core

编译软件包:

make EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id 
            extras/firmware extras/floppy extras/path_id 
            extras/scsi_id extras/usb_id extras/volume_id"

make 选项的含义:

EXTRAS=...

这将会编译一些帮助程序,对定制Udev的规则很有帮助。

要测试结果,请运行:make test

注意,Udev的测试单元会在宿主系统的日志中产生很多信息。这些都是无害的,可以被忽略掉。

安装软件包:

make DESTDIR=/ 
    EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id 
            extras/firmware extras/floppy extras/path_id 
            extras/scsi_id extras/usb_id extras/volume_id" install

make 参数的含义:

DESTDIR=/

防止编译 Udev 的进程杀死可能存在于宿主系统中的 udevd 进程。

Udev 要工作,需要配置才可以。因为默认是不安装任何配置文件的。安装 LFS-specific 配置文件:

cp -v udev-config-6.2/[0-9]* /etc/udev/rules.d/

安装解释如何创建 Udev 规则的文档:

install -m644 -D -v docs/writing_udev_rules/index.html 
    /usr/share/doc/udev-096/index.html

6.55.2. Udev 的内容

安装的程序: ata_id, cdrom_id, create_floppy_devices, edd_id, firmware_helper, path_id, scsi_id, udevcontrol, udevd, udevinfo, udevmonitor, udevsettle, udevtest, udevtrigger, usb_id, vol_id, write_cd_aliases安装的目录: /etc/udev

简要描述

ata_id 为 Udev 提供关于 ATA 驱动器的一个唯一的字符串和一些附加信息(uuid,label等)
cdrom_id 为 Udev 提供 CD-ROM 或 DVD-ROM 驱动器的性能
create_floppy_devices 创建所有可能的 CMOS 类型的 floppy 设备
edd_id 为 Udev 提供关于 BIOS 磁盘驱动器的 EDD ID
firmware_helper 为设备加载 firmware
path_id 提供设备的最短的唯一的硬件路径
scsi_id 根据向特定设备发送SCSI INQUIRY命令的返回信息,为 Udev 提供一个唯一的 SCSI 标识符
udevcontrol 为运行 udevd 守护进程,配置一些选项。比如,log level。
udevd 一个守护进程,侦听热插拔事件,并针对事件,创建设备,运行配置好的外部程序。
udevinfo 允许用户查询 udev 数据库以得到当前这个系统上所有设备的信息,它也提供一种方式去查询任何设备在 sysfs 树里去帮助创建 Udev 规则。
udevmonitor 打印出从Udev的规则运行之后,收到的内核事件和 Udev 发出的环境变量。
udevsettle 监视 Udev 的事件队列,如果当前热插拔事件被处理完就立即退出。
udevtest 模拟一个 udev 为那些给定的设备,并且打印出真实节点的名称 udev 可能已经被创建或者(不在LFS中)被重命名的网络接口。
udevtrigger 重新切换到内核空间的热插拔事件处理
usb_id 为 Udev 提供关于 USB 设备的信息
vol_id 为 Udev 提供一个文件系统的 label 和 uuid
/etc/udev 包含 udev 配置文件、设备许可、设备命名规则。