6.47. Hotplug-2004_09_23

Hotplug 软件包包含脚本,这些脚本对内核生成的即插即用事件做出反应。此类事件对应于内核状态的每一次更改,这些更改在sysfs文件系统中可见,例如,硬件的添加和移除。此软件包还会在启动期间检测现有硬件,并将相关的模块插入到正在运行的内核中。

大致编译时间: 0.01 SBU
所需磁盘空间: 460 KB
安装依赖于: Bash、Coreutils、Find、Gawk 和 Make

6.47.1. Hotplug 的安装

安装 Hotplug 软件包

make install

复制 “install” 目标遗漏的文件。

cp -v etc/hotplug/pnp.distmap /etc/hotplug

删除 Hotplug 安装的 init 脚本,因为我们将使用 LFS-Bootscripts 软件包中包含的脚本

rm -rfv /etc/init.d

LFS-Bootscripts 软件包尚不支持网络设备热插拔。因此,删除网络热插拔代理

rm -fv /etc/hotplug/net.agent

创建一个目录,用于存储可以由 hotplug 加载的固件

mkdir -v /lib/firmware

6.47.2. Hotplug 的内容

已安装程序: hotplug
已安装脚本: /etc/hotplug/*.rc, /etc/hotplug/*.agent
已安装文件: /etc/hotplug/hotplug.functions, /etc/hotplug/blacklist, /etc/hotplug/{pci,usb}, /etc/hotplug/usb.usermap, /etc/hotplug.d, 和 /var/log/hotplug/events

简短描述

hotplug

当内核内部状态发生变化时(例如,添加新设备或移除现有设备),默认情况下会调用此脚本

/etc/hotplug/*.rc

这些脚本用于冷插拔,即检测系统启动期间已存在的硬件并对其进行操作。它们由 LFS-Bootscripts 软件包中包含的hotpluginit 脚本调用。 *.rc 脚本尝试恢复在系统启动期间丢失的热插拔事件,例如,因为内核未挂载根文件系统

/etc/hotplug/*.agent

这些脚本由 hotplug 调用,以响应内核生成的不同类型的热插拔事件。它们的作用是插入相应的内核模块并调用任何用户提供的脚本

/etc/hotplug/blacklist

此文件包含不应由 Hotplug 脚本插入到内核中的模块列表

/etc/hotplug/hotplug.functions

此文件包含 Hotplug 软件包中其他脚本使用的通用函数

/etc/hotplug/{pci,usb}

这些目录包含用户编写的热插拔事件处理程序

/etc/hotplug/usb.usermap

此文件包含规则,这些规则根据 USB 设备的供应商 ID 和其他属性,确定为每个 USB 设备调用哪些用户定义的处理程序

/etc/hotplug.d

此目录包含对接收热插拔事件感兴趣的程序(或指向它们的符号链接)。例如,Udev 在安装期间将其符号链接放在此处

/lib/firmware

此目录包含需要在使用前加载固件的设备的固件

/var/log/hotplug/events

此文件包含自启动以来 hotplug 调用的所有事件