Linux的热插拔子系统
Linux中有用于PCI热插拔的子系统,SHPC、PCI Express、ACPI热插拔基本上是相同的。SHPC、PCI Express、ACPI热插拔所使用的驱动程序如下表所示。
首先,需要安装热插拔驱动程序shachp。在SHPC的情况下,使用下列命令把shachp安装到内核。
modprobe shpchp
将驱动程序安装到内核后,会在下列路径中显示可以热插拔的插槽编号。
/sys/bus/pci/slots
需要注意的是,这个插槽编号与PCI中的一般Segment:Bus:Device:Function编号并不相同。基本上就是系统厂商提供的使用手册中记载的插槽编号。
将0写入对象插槽编号的目录下的power文件,就会执行Hot-remove。Power Indicator变为off(灭灯)表示Hot-remove完成,可以拆除设备。
echo 0>/sys/bus/pci/slots/<插槽编号>/power
注意事项:将设备进行Hot-remove时,需要先停止正在使用的服务。
对于Hot-add的情况,请在安装设备后对power写入1。