6.55. Udev-096
最后更新于:2022-04-01 22:51:01
# 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` 配置文件、设备许可、设备命名规则。 |
';