MODPROBE(8)
๐ MODPROBE โ the modprobe(8) page, but make it a group chat ๐
okay bestie, sit down, hydrate, because we're talking about modprobe โ the little kmod tool that adds and removes modules from the Linux Kernel. no cap. ๐ง
โจ NAME โจ
modprobe โ Add and remove modules from the Linux Kernel ๐
๐ธ SYNOPSIS ๐ธ
modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-b] [modulename]
[module parameters...]
modprobe [-r] [-v] [-n] [-i] [modulename...]
modprobe [-c]
modprobe [--dump-modversions] [filename]
look at that. four whole vibes. pick your fighter. ๐
๐ฆ DESCRIPTION ๐ฆ
modprobe intelligently adds or removes a module from the Linux kernel. and because convenience is the whole personality: there is no difference between _ and - in module names โ automatic underscore conversion is performed, so go off, type whichever one your fingers feel like. โจ
modprobe looks in the module directory /lib/modules/uname -r`` for all the modules and other files, except for the optional configuration files (see modprobe.d(5)). it will also use module options specified on the kernel command line in the form of <module>.<option> and blacklists in the form of modprobe.blacklist=<module>. iconic behaviour ngl.
๐ heads up bestie: unlike in 2.4 series Linux kernels (which are not supported by this tool) this version ofmodprobedoes 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: seedmesg(8). not the tool's fault, the kernel is just being the kernel. ๐
modprobe expects an up-to-date modules.dep.bin file as generated by the corresponding depmod utility shipped along with modprobe (see depmod(8)). this file lists what other modules each module needs (if any), and modprobe uses this to add or remove these dependencies automatically. it's giving "meal prep but for kernel modules". ๐
if any arguments are given after the modulename, they are passed to the kernel โ in addition to any options listed in the configuration file. ๐
when loading modules, modulename can also be a path to the module. If the path is relative, it must explicitly start with "./". Note that this may fail when using a path to a module with dependencies not matching the installed depmod database. so like, cute idea, occasionally tragic outcome. ๐ญ
๐ OPTIONS ๐
twenty-three of them. yes we're listing all of them. yes they all matter. periodt. ๐
-a,--allโ Insert all module names on the command line. all of them. every single one. no crumbs. ๐ซถ-b,--use-blacklistโ This option causesmodprobeto apply theblacklistcommands in the configuration files (if any) to module names as well. It is usually used byudev(7). ๐ฅ- *
-C*directory,--config=directory โ This option overrides the default configuration directory. Seemodprobe.d(5). This option is passed throughinstallorremovecommands to othermodprobecommands in theMODPROBE_OPTIONSenvironment variable. ๐ -c,--showconfigโ Dump out the effective configuration from the config directory and exit. just a little peek behind the curtain, bestie. โจ--dump-modversionsโ 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. packaging girlies, this one's for you. ๐--show-exportsโ Print out a list of symbols exported by the module. This option is commonly used to inspect the function list, while investigating loading of modules with partial or missing dependencies. detective mode activated ๐-d,--dirnameโ Root directory for modules,/by default. ๐ฆ--first-timeโ Normally,modprobewill 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 whethermodprobereally did something: this option makesmodprobefail in the case that it actually didn't do anything. main character energy: it refuses to take credit for nothing. ๐--force-vermagicโ 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 using this 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. โ ๏ธ--force-modversionโ When modules are compiled withCONFIG_MODVERSIONSset, 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-modversionto 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 to any modules inserted: both the module (or alias) on the command line and any modules on which it depends. โ ๏ธ-f,--forceโ Try to strip any versioning information from the module which might otherwise stop it from loading: this is the same as using both--force-vermagicand--force-modversion. 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 on which it depends. โ ๏ธ-i,--ignore-install,--ignore-removeโ This option causesmodprobeto ignoreinstallandremovecommands 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). Bothinstallandremovecommands 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--ignore-installor--ignore-remove. Seemodprobe.d(5). ๐-n,--dry-run,--showโ This option does everything but actually insert or delete the modules (or run theinstallorremovecommands). Combined with-v, it is useful for debugging problems. For historical reasons both--dry-runand--showactually mean the same thing and are interchangeable. fake it till you make it, but make it a debugging tool. ๐-q,--quietโ With this flag,modprobewon't print an error message if you try to remove or insert a module it can't find (and isn't an alias orinstall/removecommand). However, it will still return with a non-zero exit status. The kernel uses this to opportunistically probe for modules which might exist usingrequest_module. shhh bestie, it still knows. ๐คซ-R,--resolve-aliasโ Print all module names matching an alias. This can be useful for debugging module alias problems. ๐-r,--removeโ This option causesmodprobeto remove rather than insert a module. If the modules it depends on are also unused,modprobewill 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. ๐--remove-holdersโ This option causesmodprobeto remove the mentioned module(s), alongside other modules that depend on it/them โ aka the reverse dependency list. taking the whole friend group down with you, respectfully. ๐ซถ- *
-w*TIMEOUT_MSEC,--wait=TIMEOUT_MSEC โ This option causesmodprobe -rto continue trying to remove a module if it fails due to the module being busy, i.e. its refcount is not0at the time the call is made. Modprobe tries to remove the module with an incremental sleep time between each tentative up until the maximum wait time in milliseconds passed in this option. persistence!! we love to see it. โจ - *
-S*version,--set-version=version โ Set the kernel version, rather than usinguname(2)to decide on the kernel version (which dictates where to find the modules). ๐ --show-dependsโ 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.installcommands which apply are shown prefixed by"install". It does not run any of theinstallcommands. Note thatmodinfo(8)can be used to extract dependencies of a module from the module itself, but knows nothing of aliases orinstallcommands. ๐-s,--syslogโ This option causes any error messages to go through the syslog mechanism (asLOG_DAEMONwith levelLOG_NOTICE) rather than to standard error. This is also automatically enabled when stderr is unavailable. This option is passed throughinstallorremovecommands to othermodprobecommands in theMODPROBE_OPTIONSenvironment variable. ๐จ-V,--versionโ Show version of program and exit. slay, brief, iconic. ๐-v,--verboseโ Print messages about what the program is doing. Usuallymodprobeonly prints messages if something goes wrong. This option is passed throughinstallorremovecommands to othermodprobecommands in theMODPROBE_OPTIONSenvironment variable. narrator mode ON. ๐ฃ๏ธ
๐ ENVIRONMENT ๐
the MODPROBE_OPTIONS environment variable can also be used to pass command line arguments to modprobe. The format is intentionally left undocumented, since the use by third-party tools and scripts is discouraged. bestie, the mystery is the point. ๐
the environment variable originates with the implementation of the install rules. ๐ฆ
๐ COPYRIGHT ๐
This manual page originally Copyright 2002, Rusty Russell, IBM Corporation. ๐ซถ
โญ SEE ALSO โญ
modprobe.d(5), insmod(8), rmmod(8), lsmod(8), modinfo(8), depmod(8)
the whole kmod friend group ๐
๐ญ BUGS ๐ญ
Please direct any bug reports to kmod's issue tracker at https://github.com/kmod-project/kmod/issues/ alongside with version used, steps to reproduce the problem and the expected outcome. yes, all of it โ version, steps, expected outcome. don't just show up with "it's broken" and no receipts. ๐
๐ง AUTHORS ๐ง
Numerous contributions have come from the linux-modules mailing list <linux-modules@vger.kernel.org> and Github. If you have a clone of kmod.git itself, the output of git-shortlog(1) and git-blame(1) can show you the authors for specific parts of the project. credit where credit is due, always. โจ
Lucas De Marchi <lucas.de.marchi@gmail.com> is the current maintainer of the project. thank you for your service, king ๐ซก๐
and that's the whole page, bestie!! this was kmod's modprobe(8) from 2026-10-30 โ shipped as part of kmod, now go forth and load a module responsibly ๐๐๐ฆโจ๐ธ๐
๐ซถ๐๐โญ๐
๐ฆ where this page comes from
- arch rolling: kmod 34.3-1 ยท LGPL-2.1-or-later AND GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms