DEPMOD(8) Linux Module Support DEPMOD(8)
depmod - handle dependency descriptions for loadable kernel modules
depmod [-aA] [-ehnqrsuvV] [-C configfile] [-F kernelsyms] [-b basedirectory] [forced_ver-
depmod [-enqrsuv] [-F kernelsyms] module1.o module2.o ...
The depmod and modprobe utilities are intended to make a Linux modular kernel manageable
for all users, administrators and distribution maintainers.
Depmod creates a "Makefile"-like dependency file, based on the symbols it finds in the set
of modules mentioned on the command line or from the directories specified in the configu-
ration file. This dependency file is later used by modprobe to automatically load the
correct module or stack of modules.
The normal use of depmod is to include the line
somewhere in the rc-files in /etc/rc.d, so that the correct module dependencies will be
available immediately after booting the system. Note that the option -a is now optional.
For boot-up purposes, the option -q might be more appropriate since that makes depmod
silent about unresolved symbols.
It is also possible to create the dependency file immediately after compiling a new ker-
nel. If you do "depmod -a 2.2.99" when you have compiled kernel 2.2.99 and its modules
the first time, while still running e.g. 2.2.98, the file will be created in the correct
place. In this case however, the dependencies on the kernel will not be guaranteed to be
correct. See the options -F, -C and -b above for more information on handling this.
While building the relationship between modules and the symbols exported by other modules,
depmod does not consider the GPL status of the modules nor of the exported symbols. That
is, depmod will not flag an error if a module without a GPL compatible license refers to a
GPL only symbol (EXPORT_SYMBOL_GPL in the kernel). However insmod will refuse to resolve
GPL only symbols for non-GPL modules so the actual load will fail.
Search for modules in all directories specified in the (optional) configuration
Compare file timestamps and, if necessary, act like depmod -a. This option only
updates the dependency file if anything has changed.
Show all the unresolved symbols for each module.
Display a summary of options and immediately exit.
Write the dependency file on stdout instead of in the /lib/modules tree.
Tell depmod to keep quiet and not to complain about missing symbols.
Some users compile modules under a non-root userid then install the modules as
root. This process can leave the modules owned by the non-root userid, even though
the modules directory is owned by root. If the non-root userid is compromised, an
intruder can overwrite existing modules owned by that userid and use this exposure
to bootstrap up to root access.
By default, modutils will reject attempts to use a module that is not owned by
root. Specifying -r will suppress the error and allow root to load modules that
are not owned by root.
Use of -r is a major security exposure and is not recommended.
Write all error messages via the syslog daemon instead of stderr.
depmod 2.4 does not set a return code when there are any unresolved symbols. The
next major release of modutils (2.5) will set a return code for unresolved symbols.
Some distributions want a non-zero return code in modutils 2.4 but that change
might cause problems for users who expect the old behaviour. If you want a non-
zero return code in depmod 2.4, specify -u. depmod 2.5 will silently ignore the -u
flag and will always give a non-zero return code for unresolved symbols.
Show the name of each module as it is being processed.
Display the version of depmod.
The following options are useful for people managing distributions:
-b basedirectory, --basedir basedirectory
If the directory tree /lib/modules containing the sub-trees of modules is moved
somewhere else in order to handle modules for a different environment, the -b
option tells depmod where to find the moved image of the /lib/modules tree. The
file references in the depmod output file that is built, modules.dep, will not con-
tain the basedirectory path. This means that when the file tree is moved back from
basedirectory/lib/modules into /lib/modules in the final distribution, all refer-
ences will be correct.
-C configfile, --config configfile
Use the file configfile instead of /etc/modules.conf. The environment variable
MODULECONF can also be used to select 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
being built. 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.
-F kernelsyms,--filesyms kernelsyms
When building dependency files for a different kernel than the currently running
kernel, it is important that depmod uses the correct set of kernel symbols to
resolve the kernel references in each module. These symbols can either be a copy
of System.map from the other kernel, or a copy of the output from /proc/ksyms. If
your kernel uses versioned symbols, it is best to use a copy of the /proc/ksyms
output, since that file contains the symbol versions of the kernel symbols. How-
ever you can use a System.map even with versioned symbols.
The behavior of depmod and modprobe can be adjusted by the (optional) configuration file
See modprobe(8) and modules.conf(5) for a complete description.
Each time you compile a new kernel, the command "make modules_install" will create a new
directory, but won't change the default.
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.
/etc/modules.conf (alternatively but deprecated /etc/conf.modules)
modules.conf(5), modprobe(8), modinfo(8), lsmod(8), ksyms(8)
depmod [ -V | --version ] should exit immediately. Instead, it prints the version infor-
mation and behaves as if no options were given.
Jacques Gelinas (firstname.lastname@example.org)
Bjorn Ekwall (email@example.com)
Linux January 26, 2002 DEPMOD(8)