多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 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` 配置文件、设备许可、设备命名规则。 |