.\" Generated by scdoc 1.11.3 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "MODPROBE.D" "5" "2024-08-26" "kmod" "modprobe.d" .PP .SH NAME .PP modprobe.\&d - Configuration directory for modprobe .PP .SH SYNOPSIS .PP /etc/modprobe.\&d/*.\&conf .PP /run/modprobe.\&d/*.\&conf .PP /usr/local/lib/modprobe.\&d/*.\&conf .PP /usr/lib/modprobe.\&d/*.\&conf .PP /lib/modprobe.\&d/*.\&conf .PP .SH DESCRIPTION .PP Because the \fBmodprobe\fR command can add or remove more than one module, due to modules having dependencies, we need a method of specifying what options are to be used with those modules.\& One can also use them to create convenient aliases: alternate names for a module, or they can override the normal \fBmodprobe\fR behavior altogether for those with special requirements (such as inserting more than one module).\& .PP Note that module and alias names (like other module names) can have - or _ in them: both are interchangeable throughout all the module commands as underscore conversion happens automatically.\& .PP .SH CONFIGURATION FORMAT .PP The configuration files contain one command per line, with blank lines and lines starting with '\&#'\& ignored (useful for adding comments).\& A '\&\e'\& at the end of a line causes it to continue on the next line, which makes the files a bit neater.\& .PP See the COMMANDS section below for more.\& .PP .SH CONFIGURATION DIRECTORIES AND PRECEDENCE .PP Configuration files are read from directories in listed in SYNOPSYS in that order of precedence.\& Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored.\& .PP All configuration files are sorted in lexicographic order, regardless of the directory they reside in.\& Configuration files can either be completely replaced (by having a new configuration file with the same name in a directory of higher priority) or partially replaced (by having a configuration file that is ordered later).\& .PP NOTE: The configuration directories may be altered via the MODPROBE_OPTIONS environment variable.\& See the ENVIRONMENT section in \fBmodprobe\fR(8).\& .PP .SH COMMANDS .PP alias \fIwildcard\fR \fImodulename\fR .RS 4 This allows you to give alternate names for a module.\& For example: "alias my-mod really_long_modulename" means you can use "modprobe my-mod" instead of "modprobe really_long_modulename".\& You can also use shell-style wildcards, so "alias my-mod* really_long_modulename" means that "modprobe my-mod-something" has the same effect.\& You can'\&t have aliases to other aliases (that way lies madness), but aliases can have options, which will be added to any other options.\& .PP Note that modules can also contain their own aliases, which you can see using \fBmodinfo\fR.\& These aliases are used as a last resort (ie.\& if there is no real module, \fBinstall\fR, \fBremove\fR, or \fBalias\fR command in the configuration).\& .PP .RE blacklist \fImodulename\fR .RS 4 Modules can contain their own aliases: usually these are aliases describing the devices they support, such as "pci:123.\&.\&.\&".\& These "internal" aliases can be overridden by normal "alias" keywords, but there are cases where two or more modules both support the same devices, or a module invalidly claims to support a device that it does not: the \fBblacklist\fR keyword indicates that all of that particular module'\&s internal aliases are to be ignored.\& .PP .RE install \fImodulename\fR \fIcommand.\&.\&.\&\fR .RS 4 This command instructs \fBmodprobe\fR to run your command instead of inserting the module in the kernel as normal.\& The command can be any shell command: this allows you to do any kind of complex processing you might wish.\& For example, if the module "fred" works better with the module "barney" already installed (but it doesn'\&t depend on it, so \fBmodprobe\fR won'\&t automatically load it), you could say "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred", which would do what you wanted.\& Note the \fB--ignore-install\fR, which stops the second \fBmodprobe\fR from running the same \fBinstall\fR command again.\& See also \fBremove\fR below.\& .PP The long term future of this command as a solution to the problem of providing additional module dependencies is not assured and it is intended to replace this command with a warning about its eventual removal or deprecation at some point in a future release.\& Its use complicates the automated determination of module dependencies by distribution utilities, such as mkinitrd (because these now need to somehow interpret what the \fBinstall\fR commands might be doing.\& In a perfect world, modules would provide all dependency information without the use of this command and work is underway to implement soft dependency support within the Linux kernel.\& .PP If you use the string "$CMDLINE_OPTS" in the command, it will be replaced by any options specified on the modprobe command line.\& This can be useful because users expect "modprobe fred opt=1" to pass the "opt=1" arg to the module, even if there'\&s an install command in the configuration file.\& So our above example becomes "install fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred $CMDLINE_OPTS" .PP .RE options \fImodulename\fR \fIoption.\&.\&.\&\fR .RS 4 This command allows you to add options to the module \fImodulename\fR (which might be an alias) every time it is inserted into the kernel: whether directly (using \fBmodprobe\fR \fImodulename\fR) or because the module being inserted depends on this module.\& .PP All options are added together: they can come from an \fBoption\fR for the module itself, for an alias, and on the command line.\& .PP .RE remove \fImodulename\fR \fIcommand.\&.\&.\&\fR .RS 4 This is similar to the \fBinstall\fR command above, except it is invoked when "modprobe -r" is run.\& .PP .RE softdep \fImodulename\fR pre: \fImodules.\&.\&.\&\fR post: \fImodules.\&.\&.\&\fR .RS 4 The \fBsoftdep\fR command allows you to specify soft, or optional, module dependencies.\& \fImodulename\fR can be used without these optional modules installed, but usually with some features missing.\& For example, a driver for a storage HBA might require another module be loaded in order to use management features.\& .PP pre-deps and post-deps modules are lists of names and/or aliases of other modules that modprobe will attempt to install (or remove) in order before and after the main module given in the \fImodulename\fR argument.\& .PP Example: Assume "softdep c pre: a b post: d e" is provided in the configuration.\& Running "modprobe c" is now equivalent to "modprobe a b c d e" without the softdep.\& Flags such as --use-blacklist are applied to all the specified modules, while module parameters only apply to module c.\& .PP Note: if there are \fBinstall\fR or \fBremove\fR commands with the same \fImodulename\fR argument, \fBsoftdep\fR takes precedence.\& .PP .RE weakdep \fImodulename\fR \fImodules.\&.\&.\&\fR .RS 4 The \fBweakdep\fR command allows you to specify weak module dependencies.\& Those are similar to pre softdep, with the difference that userspace doesn'\&t attempt to load that dependency before the specified module.\& Instead the kernel may request one or multiple of them during module probe, depending on the hardware it'\&s binding to.\& The purpose of weak module is to allow a driver to specify that a certain dependency may be needed, so it should be present in the filesystem (e.\&g.\& in initramfs) when that module is probed.\& .PP Example: Assume "weakdep c a b".\& A program creating an initramfs knows it should add a, b, and c to the filesystem since a and b may be required/desired at runtime.\& When c is loaded and is being probed, it may issue calls to request_module() causing a or b to also be loaded.\& .PP .RE .SH COMPATIBILITY .PP A future version of kmod will come with a strong warning to avoid use of the \fBinstall\fR as explained above.\& This will happen once support for soft dependencies in the kernel is complete.\& That support will complement the existing softdep support within this utility by providing such dependencies directly within the modules.\& .PP .SH COPYRIGHT .PP This manual page originally Copyright 2004, Rusty Russell, IBM Corporation.\& .PP .SH SEE ALSO .PP \fBmodprobe\fR(8), \fBmodules.\&dep\fR(5) .PP .SH AUTHORS .PP Numerous contributions have come from the linux-modules mailing list and Github.\& If you have a clone of kmod.\&git itself, the output of \fBgit-shortlog\fR(1) and \fBgit-blame\fR(1) can show you the authors for specific parts of the project.\& .PP \fBLucas De Marchi\fR is the current maintainer of the project.\&