.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "MODPROBE" "8" "2010-03-01" "" ""
.SH NAME
modprobe \- program to add and remove modules from the Linux Kernel
.SH SYNOPSIS
.sp
\fBmodprobe\fR [ \fB-v\fR ]  [ \fB-V\fR ]  [ \fB-C \fIconfig-file\fB\fR ]  [ \fB-n\fR ]  [ \fB-i\fR ]  [ \fB-q\fR ]  [ \fB-b\fR ]  [ \fB-o \fImodulename\fB\fR ]  [ \fB\fImodulename\fB\fR ]  [ \fB\fImodule parameters\fB\fR\fI...\fR ] 
.sp
\fBmodprobe\fR [ \fB-r\fR ]  [ \fB-v\fR ]  [ \fB-n\fR ]  [ \fB-i\fR ]  [ \fB\fImodulename\fB\fR\fI...\fR ] 
.sp
\fBmodprobe\fR [ \fB-l\fR ]  [ \fB-t \fIdirname\fB\fR ]  [ \fB\fIwildcard\fB\fR ] 
.sp
\fBmodprobe\fR [ \fB-c\fR ] 
.sp
\fBmodprobe\fR [ \fB--dump-modversions\fR ]  [ \fB\fIfilename\fB\fR\fI...\fR ] 
.SH "DESCRIPTION"
.PP
\fBmodprobe\fR intelligently adds or removes a
module from the Linux kernel: note that for convenience, there
is no difference between _ and - in module names (automatic
underscore conversion is performed).
\fBmodprobe\fR looks in the module directory
\fI/lib/modules/`uname -r`\fR for all
the modules and other files, except for the optional
\fI/etc/modprobe.conf\fR configuration file and
\fI/etc/modprobe.d\fR directory
(see \fBmodprobe.conf\fR(5)). \fBmodprobe\fR will also use module
options specified on the kernel command line in the form of
<module>\&.<option>\&.
.PP
Note that unlike in 2.4 series Linux kernels (which are not supported
by this tool) this version of \fBmodprobe\fR does not
do anything to the module itself: the work of resolving symbols
and understanding parameters is done inside the kernel. So
module failure is sometimes accompanied by a kernel message: see
\fBdmesg\fR(8)\&.
.PP
\fBmodprobe\fR expects an up-to-date
\fImodules.dep.bin\fR file (or fallback human
readable \fImodules.dep\fR file), as generated
by the corresponding \fBdepmod\fR utility shipped
along with \fBmodprobe\fR (see
\fBdepmod\fR(8)). This file lists what other modules each
module needs (if any), and \fBmodprobe\fR uses this
to add or remove these dependencies automatically.
.PP
If any arguments are given after the
\fImodulename\fR, they are passed to the
kernel (in addition to any options listed in the configuration
file).
.SH "OPTIONS"
.TP
\fB-a --all\fR
Insert all module names on the command line.
.TP
\fB-b --use-blacklist\fR
This option causes \fBmodprobe\fR to apply the
\fBblacklist\fR commands in the configuration files
(if any) to module names as well. It is usually used by
\fBudev\fR(7)\&.
.TP
\fB-C --config\fR
This option overrides the default configuration directory/file
(\fI/etc/modprobe.d\fR or 
\fI/etc/modprobe.conf\fR).

This option is passed through \fBinstall\fR
or \fBremove\fR commands to other
\fBmodprobe\fR commands in the
MODPROBE_OPTIONS environment variable.
.TP
\fB-c --showconfig\fR
Dump out the effective configuration from the config directory
and exit.
.TP
\fB--dump-modversions\fR
Print out a list of module versioning information required by a
module. This option is commonly used by distributions in order to
package up a Linux kernel module using module versioning deps.
.TP
\fB-d --dirname\fR
Directory where modules can be found,
\fI/lib/modules/RELEASE\fR
by default.
.TP
\fB--first-time\fR
Normally, \fBmodprobe\fR will succeed (and do
nothing) if told to insert a module which is already
present or to remove a module which isn't present. This is
ideal for simple scripts; however, more complicated scripts often
want to know whether \fBmodprobe\fR really
did something: this option makes modprobe fail in the
case that it actually didn't do anything.
.TP
\fB--force-vermagic\fR
Every module contains a small string containing important
information, such as the kernel and compiler versions. If
a module fails to load and the kernel complains that the
"version magic" doesn't match, you can use this option to
remove it. Naturally, this check is there for your
protection, so this using option is dangerous unless
you know what you're doing.

This applies to any modules inserted: both the module (or
alias) on the command line and any modules on which it depends.
.TP
\fB--force-modversion\fR
When modules are compiled with CONFIG_MODVERSIONS set, a
section detailing the versions of every interfaced used
by (or supplied by) the module is created. If a
module fails to load and the kernel complains that the
module disagrees about a version of some interface, you
can use "--force-modversion" to remove the version
information altogether. Naturally, this check is there
for your protection, so using this option is dangerous
unless you know what you're doing.

This applies any modules inserted: both the module (or
alias) on the command line and any modules on which it depends.
.TP
\fB-f --force\fR
Try to strip any versioning information from the module
which might otherwise stop it from loading: this is the
same as using both \fB--force-vermagic\fR and
\fB--force-modversion\fR\&. Naturally, these
checks are there for your protection, so using this option
is dangerous unless you know what you are doing.

This applies to any modules inserted: both the module (or
alias) on the command line and any modules it on which it depends.
.TP
\fB-i --ignore-install --ignore-remove\fR
This option causes \fBmodprobe\fR to
ignore \fBinstall\fR and
\fBremove\fR commands in the
configuration file (if any) for the module specified on the
command line (any dependent modules are still subject
to commands set for them in the configuration file). Both
\fBinstall\fR and \fBremove\fR
commands will currently be ignored when this option is used
regardless of whether the request was more specifically
made with only one or other (and not both) of
\fB--ignore-install\fR or
\fB--ignore-remove\fR\&.
See \fBmodprobe.conf\fR(5)\&.
.TP
\fB-l --list\fR
List all modules matching the given wildcard (or "*"
if no wildcard is given). This option is provided for
backwards compatibility and may go away in future: see
\fBfind\fR(1) and
\fBbasename\fR(1) for a more flexible alternative.
.TP
\fB-n --dry-run\fR
This option does everything but actually insert or
delete the modules (or run the install or remove
commands). Combined with \fB-v\fR, it is
useful for debugging problems. For historical reasons
both \fB--dry-run\fR and \fB--show\fR
actually mean the same thing and are interchangeable.
.TP
\fB-o --name\fR
This option tries to rename the module which is being
inserted into the kernel. Some testing modules can
usefully be inserted multiple times, but the kernel
refuses to have two modules of the same name. Normally,
modules should not require multiple insertions, as that
would make them useless if there were no module support.
.TP
\fB-q --quiet\fR
With this flag, \fBmodprobe\fR won't print an error
message if you try to remove or insert a module it can't find (and
isn't an alias or
\fBinstall\fR/\fBremove\fR command).
However, it will still return with a non-zero exit status. The
kernel uses this to opportunistically probe for modules which might
exist using request_module.
.TP
\fB-R --resolve-alias\fR
Print all module names matching an alias. This can be useful
for debugging module alias problems.
.TP
\fB-r --remove\fR
This option causes \fBmodprobe\fR to remove
rather than insert a module. If the modules it depends on
are also unused, \fBmodprobe\fR will try to
remove them too. Unlike insertion, more than one module
can be specified on the command line (it does not make
sense to specify module parameters when removing modules).

There is usually no reason to remove modules, but some
buggy modules require it. Your distribution kernel may not
have been built to support removal of modules at all.
.TP
\fB-S --set-version\fR
Set the kernel version, rather than using
\fBuname\fR(2) to decide on the kernel version (which dictates where to
find the modules).
.TP
\fB--show-depends\fR
List the dependencies of a module (or alias), including
the module itself. This produces a (possibly empty) set
of module filenames, one per line, each starting with
"insmod" and is typically used by distributions to determine
which modules to include when generating initrd/initramfs images.
\fBInstall commands which apply are shown prefixed by
"install". It does not run any of the install commands. Note that
modinfo(8)
can be used to extract dependencies of a module from the
module itself, but knows nothing of aliases or install commands.
\fR.TP
\fB-s --syslog\fR
This option causes any error messages to go through the
syslog mechanism (as LOG_DAEMON with level LOG_NOTICE)
rather than to standard error. This is also automatically
enabled when stderr is unavailable.

This option is passed through \fBinstall\fR
or \fBremove\fR commands to other
\fBmodprobe\fR commands in the
MODPROBE_OPTIONS environment variable.
.TP
\fB-t --type\fR
Restrict \fB-l\fR to modules
in directories matching the
\fIdirname\fR given. This option
is provided for backwards compatibility and may go
away in future: see
\fBfind\fR(1)
and
\fBbasename\fR(1) for a more flexible alternative.
.TP
\fB-V --version\fR
Show version of program and exit.
.TP
\fB-v --verbose\fR
Print messages about what the program is doing. Usually
\fBmodprobe\fR only prints messages if
something goes wrong.

This option is passed through \fBinstall\fR
or \fBremove\fR commands to other
\fBmodprobe\fR commands in the
MODPROBE_OPTIONS environment variable.
.SH "ENVIRONMENT"
.PP
The MODPROBE_OPTIONS environment variable can also be used to
pass arguments to \fBmodprobe\fR\&.
.SH "COPYRIGHT"
.PP
This manual page originally Copyright 2002, Rusty Russell, IBM
Corporation. Maintained by Jon Masters and others.
.SH "SEE ALSO"
.PP
\fBmodprobe.conf\fR(5),
\fBmodprobe.d\fR(5),
\fBinsmod\fR(8),
\fBrmmod\fR(8),
\fBlsmod\fR(8),
\fBmodinfo\fR(8)
