modprobe - high level handling of loadable modules
SYNOPSIS
modprobe [-adnqv] [-C config] module [symbol=value ...]
modprobe [-adnqv] [-C config] [-t type] pattern
modprobe -l [-C config] [-t type] pattern
modprobe -c [-C config]
modprobe -r [-dnv] [-C config] [module ...]
modprobe -Vh
OPTIONS
-a, --all
Load all matching modules instead of stopping after
the first successful loading.
-c, --showconfig
Show the currently used configuration.
-C, --config config
Use the file config instead of (the optional)
/etc/modules.conf to specify the configuration.
The environment variable MODULECONF can also be
used to select (and override) a different
configuration file from the default
/etc/modules.conf (or /etc/conf.modules
(deprecated)).
When environment variable UNAME_MACHINE is set, modutils
will use its value instead of the machine field from the
uname() syscall. This is mainly of use when you are
compiling 64 bit modules in 32 bit user space or vice
versa, set UNAME_MACHINE to the type of the modules.
Current modutils does not support full cross build mode
for modules, it is limited to choosing between 32 and 64
bit versions of the host architecture.
-d, --debug
Show information about the internal representation
of the stack of modules.
-h, --help
Display a summary of options and immediately exit.
-k, --autoclean
Set 'autoclean' on loaded modules. Used by the
kernel when it calls on modprobe to satisfy a
missing feature (supplied as a module). The -q
option is implied by -k. These options will
automatically be sent to insmod.
-l, --list
List matching modules.
Don't actually perform the action, just show what
would be done.
-q, --quiet
Do not complain about insmod failing to install a
module. Continue as normal, but silently, with
other possibilities for modprobe to test. This
option will automatically be sent to insmod.
-r, --remove
Remove module (stacks) or do autoclean, depending
on whether there are any modules mentioned on the
command line.
-s, --syslog
Report via syslog instead of stderr. This options
will automatically be sent to insmod.
-t moduletype; --type moduletype
Only consider modules of this type. modprobe will
only look at modules whose directory path includes
exactly "/moduletype/". moduletype can include
more than one directory name, e.g. "-t drivers/net"
would list modules in xxx/drivers/net/ and its
subdirectories.
-v, --verbose
Print all commands as they are executed.
-V, --version
Display the version of modprobe.
Note: Module names must not contain paths (no '/'), nor
may they contain the trailing '.o'. For example,
slip is a valid module name for modprobe,
/lib/modules/2.2.19/net/slip and slip.o are
invalid. This applies to the command line and to
entries in the config.
DESCRIPTION
The modprobe and depmod utilities are intended to make a
Linux modular kernel more manageable for all users,
administrators and distribution maintainers.
Modprobe uses a "Makefile"-like dependency file, created
by depmod, to automatically load the relevant module(s)
from the set of modules available in predefined directory
trees.
Modprobe is used to load a single module, a stack of
dependent modules, or all modules that are marked with a
specified tag.
in a module stack, as described by the dependency file
modules.dep. If the loading of one of these modules
fails, the whole current stack of modules loaded in the
current session will be unloaded automatically.
Modprobe has two ways of loading modules. One way (the
probe mode) will try to load a module out of a list
(defined by pattern). Modprobe stops loading as soon as
one module loads successfully. This could be used to
autoload one Ethernet driver out of a list.
The other way modprobe can be used is to load all modules
from a list. See EXAMPLES, below.
With the option -r, modprobe will automatically unload a
stack of modules, similar to the way "rmmod -r" does. Note
that using just "modprobe -r" will clean up unused
autoloaded modules and also perform the pre- and post-
remove commands in the configuration file
/etc/modules.conf.
The combining the options -l and -t lists all available
modules of a certain type.
Option -c will print the currently used configuration
(default + configuration file).
CONFIGURATION
The behavior of modprobe (and depmod) can be modified by
the (optional) configuration file /etc/modules.conf.
For a more detailed description of what this file can
contain, as well as the default configuration used by
depmod and modprobe, see modules.conf(5).
Note that the pre- and post-remove commands will not be
executed if a module is "autocleaned" by kerneld! Look
for the up-coming support for persistent module storage
instead.
If you want to use the pre- and post-install features, you
will have to turn off autoclean for kerneld and instead
put something like the following line in your crontab
(this is used for kmod systems as well) to do autoclean
every 2 minutes:
*/2 * * * * test -f /proc/modules && /sbin/modprobe -r
STRATEGY
The idea is that modprobe will look first in the directory
containing modules compiled for the current release of the
kernel. If the module is not found there, modprobe will
look in the directory common to the kernel version (e.g.
2.0, 2.2). If the module is still found, modprobe will
look in the directory containing modules for a default
release, and so on.
to a directory related to the release (and version) of the
kernel you are installing. Then you should do a symlink
from this directory to the "default" directory.
Each time you compile a new kernel, the command "make
modules_install" will create a new directory, but won't
change the "default" link.
When you get a module unrelated to the kernel distribution
you should place it in one of the version-independent
directories under /lib/modules.
This is the default strategy, which can be overridden in
/etc/modules.conf.
EXAMPLES
modprobe -t net
Load one of the modules that are stored in the
directory tagged "net". Each module are tried
until one succeeds.
modprobe -a -t boot
All modules that are stored in directories tagged
"boot" will be loaded.
modprobe slip
This will attempt to load the module slhc.o if it
was not previously loaded, since the slip module
needs the functionality in the slhc module. This
dependency will be described in the file
modules.dep that was created automatically by
depmod.
modprobe -r slip
This will unload the slip module. It will also
unload the slhc module automatically, unless it is
used by some other module as well (e.g. ppp).
FILES
/etc/modules.conf (alternatively but deprecated /etc/conf.modules)
/lib/modules/*/modules.dep,
/lib/modules/*
SEE ALSO
depmod(8), lsmod(8), kerneld(8), ksyms(8), rmmod(8).
SAFE MODE
If the effective uid is not equal to the real uid then
modprobe treats its input with extreme suspicion. The
last parameter is always treated as a module name, even if
it starts with '-'. There can only be one module name and
options of the form "variable=value" are forbidden. The
module name is always treated as a string, no meta
expansion is still applied to data read from the config
file.
euid may not be equal to uid when modprobe is invoked from
the kernel, this is true for kernels >= 2.4.0-test11. In
an ideal world, modprobe could trust the kernel to only
pass valid parameters to modprobe. However at least one
local root exploit has occurred because high level kernel
code passed unverified parameters direct from the user to
modprobe. So modprobe no longer trusts kernel input.
modprobe automatically sets safe mode when the environment
consists only of these strings
HOME=/
TERM=linux
PATH=/sbin:/usr/sbin:/bin:/usr/bin
This detects modprobe execution from the kernel on kernels
2.2 though 2.4.0-test11, even if uid == euid, which it
does on the earlier kernels.
LOGGING COMMANDS
If directory /var/log/ksymoops exists and modprobe is run
with an option that could load or a delete a module then
modprobe will log its command and return status in
/var/log/ksymoops/`date +%Y%m%d.log`. There is no switch
to disable this automatic logging, if you do not want it
to occur, do not create /var/log/ksymoops. If that
directory exists, it should be owned by root and be mode
644 or 600 and you should run script insmod_ksymoops_clean
every day or so.
REQUIRED UTILITIES
depmod(8), insmod(8).
NOTES
Patterns supplied to modprobe will often need to be
escaped to ensure that it is evaluated in the proper
context.
BUGS
modprobe [ -V | --version ] should exit immediately.
Instead, it prints the version information and behaves as
if no options were given.
AUTHOR
Jacques Gelinas (jack@solucorp.qc.ca)
Bjorn Ekwall (bj0rn@blox.se)
Man(1) output converted with
man2html