usbmodules − List kernel driver modules available for a plugged in USB device


usbmodules [--device /proc/bus/bus/NNN/NNN | --product xx/xx/xx --type dd/dd/dd --interface dd/dd/dd] [--check modulename] [--help] [--mapfile pathname] [--version pathname]


usbmodules lists driver modules that may be able to manage interfaces on currently plugged in USB devices. usbmodules may be used by /sbin/hotplug or one of its agents (normally /etc/hotplug/usb.agent) when USB devices are "hot plugged" into the system. This can be done by the following Bourne shell syntax:

for module in $(usbmodules --device $DEVICE) ; do

modprobe -s -k "$module"



for module in $(usbmodules --product $PRODUCT --type $TYPE --interface $INTERFACE) ; do

modprobe -s -k "$module"


The DEVICE environment variable is passed from the kernel to /sbin/hotplug during USB hotplugging if the kernel was configured using usbdevfs. The environment variables PRODUCT, TYPE and INTERFACE are set when /sbin/hotplug is called during hotplugging. usbmodules can operate with both configurations.

When a USB device is removed from the system, the Linux kernel will decrement a usage count on USB driver module. If this count drops to zero (i.e., there are no clients for the USB device driver), then the modprobe -r process that is normally configured to run from cron every few minutes will eventually remove the unneeded module.


--check modulename

Instead of listing the relevant modules, just exit with code 0 (success) if the given module’s exported USB ID patterns matches. Otherwise, return failure. usbmodules emits no output either way.

--device /proc/bus/usb/MMM/NNN

Selects which device usbmodules will examine. The argument is mandatory unless --procuct , --type and --interface are used together.

--product xx/xx/xx --type dd/dd/dd --interface dd/dd/dd

Alternative way to select the device usbmodules will examine. These arguments are mandatory unless --device is given.

--help, -h

Print a help message

--mapfile /etc/hotplug/usb.handmap

Use the specified file instead of the /lib/modules/.../modules.usbmap file corresponding to the running kernel.


Identifies the version of usbutils this tool was built with.



This file is automatically generated by depmod, versions 2.4.2 and later, and is used by usbmodules to determine which modules correspond to which USB ID’s.


An optional interface to USB devices provided by Linux kernels with versions of the 2.4 USB support. Contains per-bus subdirectories with per-device files (offering a usermode driver API as well as access to device and configuration descriptors), a devices file containing a list of all USB devices, and a drivers file listing USB device drivers known to the USB subsystem.




usbmodules was written by Adam J. Richter <adam [AT]>, and is based partly on lsusb, which was written by Thomas Sailer <sailer [AT]>.


usbmodules is copyright 2000, Yggdrasil Computing, Incorporated, and copyright 1999, Thomas Sailer. usbmodules may may be copied under the terms and conditions of version 2 of the GNU General Public License as published by the Free Software Foundation (Cambrige, Massachusetts, United States of America).