How can I temporarily disable a kernel module?

I would like to temporarily (until next boot) disable a kernel module.

How can I do this?


Solution 1:

Use lsmod to find the name of a kernel module about that you are interested in temporarily disabling. After you've found the name, use this command to disable the module:

sudo modprobe -r <module_name>

However, this command will fail with an error message something like FATAL: Module <module_name> is in use if a process is using:

  • the <module_name>
  • a module about that <module_name> directly depends on
  • any module about that <module_name> - through the dependency tree - depends on indirectly.

You can use lsmod | grep <module_name> to obtain the names of the modules which are preventing you from temporarily disabling a certain module (these module names are listed in the last column).

More about:

  • http://docs.fedoraproject.org/en-US/Fedora/14/html/Deployment_Guide/ch-Working_with_Kernel_Modules.html#sec-Listing_Currently-Loaded_Modules

  • http://docs.fedoraproject.org/en-US/Fedora/14/html/Deployment_Guide/sec-Unloading_a_Module.html

Solution 2:

It appears:

sudo modprobe -r moduleName

Achieves what I want. The module is removed and reloaded upon reboot.