37.1. Kernel Module Utilities

37.1. Kernel Module Utilities

A group of commands for managing kernel modules is available if the module-init-tools package is installed. Use these commands to determine if a module has been loaded successfully or when trying different modules for a piece of new hardware.

The command /sbin/lsmod displays a list of currently loaded modules. For example:

Module                  Size  Used by
nfs                   218437  1
lockd                  63977  2 nfs
parport_pc             24705  1
lp                     12077  0
parport                37129  2 parport_pc,lp
autofs4                23237  2
i2c_dev                11329  0
i2c_core               22081  1 i2c_dev
sunrpc                157093  5 nfs,lockd
button                  6481  0
battery                 8901  0
ac                      4805  0
md5                     4033  1
ipv6                  232833  16
ohci_hcd               21713  0
e100                   39493  0
mii                     4673  1 e100
floppy                 58481  0
sg                     33377  0
dm_snapshot            17029  0
dm_zero                 2369  0
dm_mirror              22957  2
ext3                  116809  2
jbd                    71257  1 ext3
dm_mod                 54741  6 dm_snapshot,dm_zero,dm_mirror
ips                    46173  2
aic7xxx               148121  0
sd_mod                 17217  3
scsi_mod              121421  4 sg,ips,aic7xxx,sd_mod

For each line, the first column is the name of the module, the second column is the size of the module, and the third column is the use count.

The /sbin/lsmod output is less verbose and easier to read than the output from viewing /proc/modules.

To load a kernel module, use the /sbin/modprobe command followed by the kernel module name. By default, modprobe attempts to load the module from the /lib/modules/<kernel-version>/kernel/drivers/ subdirectories. There is a subdirectory for each type of module, such as the net/ subdirectory for network interface drivers. Some kernel modules have module dependencies, meaning that other modules must be loaded first for it to load. The /sbin/modprobe command checks for these dependencies and loads the module dependencies before loading the specified module.

For example, the command

 /sbin/modprobe e100 

loads any module dependencies and then the e100 module.

To print to the screen all commands as /sbin/modprobe executes them, use the -v option. For example:

 /sbin/modprobe -v e100 

Output similar to the following is displayed:

 /sbin/insmod /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko Using /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko Symbol version prefix 'smp_' 

The /sbin/insmod command also exists to load kernel modules; however, it does not resolve dependencies. Thus, it is recommended that the /sbin/modprobe command be used.

To unload kernel modules, use the /sbin/rmmod command followed by the module name. The rmmod utility only unloads modules that are not in use and that are not a dependency of other modules in use.

For example, the command

 /sbin/rmmod e100 

unloads the e100 kernel module.

Another useful kernel module utility is modinfo. Use the command /sbin/modinfo to display information about a kernel module. The general syntax is:

 /sbin/modinfo [options]<module>

Options include -d, which displays a brief description of the module, and -p, which lists the parameters the module supports. For a complete list of options, refer to the modinfo man page (man modinfo).


Note: This documentation is provided {and copyrighted} by Red Hat®, Inc. and is released via the Open Publication License. The copyright holder has added the further requirement that Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. The CentOS project redistributes these original works (in their unmodified form) as a reference for CentOS-4 because CentOS-4 is built from publicly available, open source SRPMS. The documentation is unmodified to be compliant with upstream distribution policy. Neither CentOS-4 nor the CentOS Project are in any way affiliated with or sponsored by Red Hat®, Inc.