6.58. Udev-151

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

预计编译时间: 0.2 SBU
所需磁盘空间: 11.6 MB

6.58.1. 安装 Udev

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

tar -xvf ../udev-config-20100128.tar.bz2

创建一些Udev无法创建的设备和目录,因为这些会在系统启动的早些时候被用到, 或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

为编译 the package 做准备:

./configure --prefix=/usr \
    --sysconfdir=/etc --sbindir=/sbin \
    --with-rootlibdir=/lib --libexecdir=/lib/udev \
    --docdir=/usr/share/doc/udev-151 \
    --disable-extras --disable-introspection

新配置选项的含义

--with-rootlibdir=/lib

这个选项控制在哪安装libudev 库。 因为Udev在启动时要用到这个库, 而这时/usr可能还不可用,所以需要放在 /lib 目录,--rootlibdir的默认值/usr/lib。

--libexecdir=/lib/udev

这个选项控制在哪安装 Udev-internal 的规则和帮助程序。

--docdir=/usr/share/doc/udev-151

这个选项将和命名约定一致的Udev文档和其他软件包安装在正确的位置。

--disable-extras

这个选项阻止Udev安装帮助文档和那些需要更多外部库的其他项目。这些库文件不是LFS系统的一部分。更多的信息,请参考Udev的 README 文件。

--disable-introspection

该选项阻止 Udev 的 instrospection 功能,它要求把未安装的软件包作为基本LFS系统的一部分。更多信息,请参考 Udev的 README 文件。

编译这个软件包:

make

这个软件包没有附带测试程序。

安装这个软件包:

make install

Udev 要工作,需要配置才可以。因为默认是不安装任何配置文件的。 为了支持设备映射和RAID设置,我们首先要从Udev安装两个额外的rule文件First :

install -m644 -v rules/packages/64-*.rules \
    /lib/udev/rules.d/

现在为了建立一些手持设备的符号链接要安装一个文件:

install -m644 -v rules/packages/40-pilot-links.rules \
    /lib/udev/rules.d/

安装一个处理ISDN设备的文件:

install -m644 -v rules/packages/40-isdn.rules \
    /lib/udev/rules.d/

安装 LFS-specific 的特定规则文件:

cd udev-config-20100128
make install

安装介绍Udev提供的常用规则文件的文档:

make install-doc

6.58.2. Udev 的内容

安装的程序: ata_id, cdrom_id, collect, create_floppy_devices, edd_id, firmware.sh, fstab_import, path_id, scsi_id, udevadm, udevd, usb_id, write_cd_rules, and write_net_rules
安装的库:: libudev.{a,so}
Installed directory: /etc/udev

简要描述

ata_id

为 Udev 提供关于 ATA 驱动器的一个唯一的字符串和 一些附加信息 (uuid, label)

cdrom_id

为 Udev 提供 CD-ROM 或 DVD-ROM 驱动器的性能

collect

给出当前事件的 ID,和列出所有目标事件的ID, 注册当前的ID并表明是否所有的目标ID都已经注册了。

create_floppy_devices

创建所有可能的基于 CMOS 类型的 floppy 设备

edd_id

为 Udev 提供关于 BIOS 磁盘驱动器的 EDD ID

firmware.sh

将firmware加载为设备

fstab_import

发现在/etc/fstab中符合当前设备的项, 并为Udev提供它的信息

path_id

提供设备的最短的唯一的硬件路径

scsi_id

根据向特定设备发送SCSI INQUIRY命令的返回信息, 为 Udev 提供一个唯一的 SCSI 标识符

udevadm

通用的 udev 管理工具:控制udevd守护进程, 从Udev数据库中提供信息, 监视 事件运行,等待 事件 完成,测试 Udev 配置, 为指定的设备启动事件

udevd

一个守护进程,侦听热插拔事件,并针对事件,创建设备, 运行配置好的外部程序

usb_id

为 Udev 提供关于 USB 设备的信息

write_cd_rules

一个脚本,它生成Udev规则,来为光盘驱动器提供稳定名称 (还可以参考 Section 7.10, “为设备创建惯用符号连接 ”)

write_net_rules

一个脚本A,它生成规则,来为网络接口提供稳定的名称 (还可参考 Section 7.13, “配置网络脚本 ”)

libudev

指向udev设备信息的库接口

/etc/udev

包含Udev配置文件、设备许可、设备命名规则。