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 etc/hotplug/pnp.distmap /etc/hotplug

因为我们要使用 LFS-Bootscripts 安装的初始化脚本,所以这里要删除 Hotplug 安装的初始化脚本:

rm -rf /etc/init.d

LFS-Bootscripts 程序包现在还不支持网络设备热插拔,所以我们要删除网络热插拔代理:

rm -f /etc/hotplug/net.agent

创建一个用于 hotplug 加载固件的目录:

mkdir /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

Linux内核默认情况下将在内核态的某些事情发生变化时(如硬件的插入和拔出)调用此脚本。

/etc/hotplug/*.rc

这些脚本用于冷插拔(检测和激活在系统启动时已经存在的硬件)。它们被 hotplug 初始化脚本(包括LFS-Bootscripts)调用。*.rc 脚本会尝试恢复系统引导时丢失的热插拔事件,因为,举例来说,内核没有挂载根文件系统。

/etc/hotplug/*.agent

这些脚本将被 hotplug 调用以响应内核产生的各种不同的热插拔事件,导致插入相应的内核模块和调用用户预定义的脚本。

/etc/hotplug/blacklist

这个文件包含了那些禁止 Hotplug 脚本插入内核的模块列表。

/etc/hotplug/hotplug.functions

这个文件包含了 Hotplug 包中其它脚本使用的公共函数。

/etc/hotplug/{pci,usb}

这个目录包含用户自己编写的热插拔事件处理器。

/etc/hotplug/usb.usermap

这个文件包含确定为每个USB设备调用哪个用户自定义的处理器的规则,这些规则基于 vendor ID 和 其它属性。

/etc/hotplug.d

这个目录包含了那些对接受热插拔事件感兴趣的程序(或符号连接)。例如, Udev 将会在安装时把它的符号连接放在这里。

/lib/firmware

这个目录包含了那些需要在使用前加载固件的设备的固件。

/var/log/hotplug/events

这个文件包含了自系统启动以来所有的 hotplug 调用事件。