HOTPLUG(8)

NAME
hotplug - SUSE Linux hotplugging system

SYNOPSIS
hotplug NAME

DESCRIPTION
hotplug is a program which is used by the kernel to notify user mode software when some significant (usually hardware-related) events take place. An example is when a USB or Cardbus device has just been plugged in. This is useful for automatically loading and setting up drivers, packaged either as kernel modules or as user mode programs.

The hotplug program path name is registered in /proc/sys/kernel/hotplug, and normally holds the value /sbin/hotplug. Except for specialized configurations such as initrd(4) configurations, that identifies a shell script which delegates to specific "policy agents", /etc/hotplug/NAME.agent. The name of the agent is given by the kernel as the first command-line parameter. The name corresponds to a specific kernel subsystem whose events it processes (e.g. "usb", "pci", "net" etc.).

Information about an event is usually passed to agents in the form of environment variables. Most agents accept a "ACTION" variable that describes the type of the event. It can be, for example, "add" or "remove" to signify that some device has just been connected to or disconnected from the system respectively. In such requests, agents are also given variables describing at the device (and its location) so that they can choose the appropriate drivers to set up.

hotplug agents aren't necessarily called only by the kernel though. While the OS is initializing, the "cold-plugging" case, the script /etc/init.d/coldplug is invoked to make sure that all device connected at boot are properly configured, applying the same rules as if they were connected later.

Hotplug agents should be used to dynamically adapt to system configuration changes. It helps to think of them as just delivering events from different layers of the Linux software. So low level bus framework code will deliver events when new physical devices are plugged in, and bus agents make sure the device's driver is loaded, configured, and activated. Then other layers in the Linux stack will take over, reporting higher level events like "there is a new network interface". Agents at those levels tend to have more complex tasks.

FILES
/lib/modules/*/modules.*map      depmod output
/proc/sys/kernel/hotplug         specifies hotplug program path
/sbin/hotplug                    hotplug program (default path name)
/etc/hotplug/*                   hotplug files
/etc/hotplug/NAME.agent          hotplug subsystem-specific agents
/etc/hotplug/NAME*               subsystem-specific files, for agents
/etc/hotplug/NAME/DRIVER         driver setup scripts, invoked by agents
/etc/hotplug/usb/DRIVER.usermap  depmod data for user-mode drivers
/etc/init.d/hotplug              hotplug system service script
/etc/init.d/coldplug             coldplug system service script

SEE ALSO
/usr/share/doc/packages/hotplug/README

The http://linux-hotplug.sourceforge.net/ web site.

AUTHORS
The SUSE hotplug system is derived from the Linux Hotplugging Project http://linux-hotplug.sourceforge.net/ and changed in many places to follow the SUSE Linux system setup policy.

This manual page was originally written by Fumitoshi UKAI <ukai@debian.or.jp>, for the Debian GNU/Linux system (but may be used by others), based on original Japanese version of manpage.