modprobe
is a
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
program originally written by
Rusty Russell
Rusty Russell is an Australian free software programmer and advocate, known for his work on the Linux kernel's networking subsystem and the Filesystem Hierarchy Standard.
Software development
Russell wrote the packet filtering systems ipc ...
and used to add a
loadable kernel module
In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called ''base kernel'', of an operating system. LKMs are typically used to add support for new hardware (as device drivers) and ...
to the
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
or to remove a loadable kernel module from the kernel. It is commonly used indirectly:
udev
udev (userspace ) is a device manager for the Linux kernel. As the successor of devfsd and hotplug, udev primarily manages device nodes in the directory. At the same time, udev also handles all user space events raised when hardware devices ...
relies upon modprobe to load drivers for automatically detected hardware.
Modprobe is distributed as part of the software package "kmod" (maintained by Lucas De Marchi and others). It was previously developed as:
* "module-init-tools", for Linux kernel version 2.6 and later (maintained by
Jon Masters and others)
* "modutils" for use with Linux versions 2.2.x and 2.4.x. .
Operation
The program offers more full-featured "
Swiss-army-knife" features than the more basic and utilities, with the following benefits:
* An ability to make more intuitive decisions about which modules to load
* awareness of module
dependencies, so that when requested to load a module, adds other required modules first
* the resolution of
recursive module dependencies as required
If invoked with no switches, the program by default adds/inserts/installs the named module into the kernel.
Root
In vascular plants, the roots are the organs of a plant that are modified to provide anchorage for the plant and take in water and nutrients into the plant body, which allows plants to grow taller and faster. They are most often below the su ...
privileges are typically required for these changes.
Any arguments appearing after the module name are passed to the kernel (in addition to any options listed in the configuration file).
In some versions of modprobe, the configuration file is called modprobe.conf, and in others, the equivalent is the collection of files called
in the /etc/modprobe.d directory.
modprobe looks only in the standard module directories, to install modules from the working directory insmod is still required. The user can also make a symbolic link of the module to the standard path, so depmod will find and load it like any other installed module.
Features
The program also has more configuration features than other similar utilities. It is possible to define module aliases allowing for some automatic loading of modules. When the kernel requires a module, it actually runs modprobe to request it; however, the kernel has a description of only some module properties (for example, a device major number, or the number of a network protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
), and modprobe does the job of translating that to an actual module name via aliases.
This program also has the ability to run programs before or after loading or unloading a given module; for example, setting the mixer
Mixer may refer to:
Electronics
* DJ mixer, a type of audio mixing console used by disc jockeys
* Electronic mixer, electrical circuit for adding signal voltages
* Frequency mixer, electrical circuit that creates new frequencies from two signals ...
right after loading a sound card
A sound card (also known as an audio card) is an internal expansion card that provides input and output of audio signals to and from a computer under the control of computer programs. The term ''sound card'' is also applied to external audio ...
module, or uploading the firmware
In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide h ...
to a device immediately prior to enabling it. Although these actions must be implemented by external programs, modprobe takes care of synchronizing their execution with module loading/unloading.
Blacklist
There are cases where two or more modules both support the same devices, or a module invalidly claims to support a device: the blacklist keyword indicates that all of a particular module's internal aliases are to be ignored.modprobe.conf(5) - Linux man page
/ref>
There are a couple of ways to blacklist
Blacklisting is the action of a group or authority compiling a blacklist (or black list) of people, countries or other entities to be avoided or distrusted as being deemed unacceptable to those making the list. If someone is on a blacklist, ...
a module, and depending on the method used to load it depends on where this is configured.
There are two ways to blacklist a module using modprobe, employing the modprobe.conf system, the first is to use its blacklisting system in /etc/modprobe.d/. Any filename ending with .conf can be used:
cat /etc/modprobe.d/blacklist.conf
blacklist ieee1394
blacklist ohci1394
blacklist eth1394
blacklist sbp2
An install primitive is the highest priority in the config file and will be used instead of the blacklisting method above, requiring this second method:
cat /etc/modprobe.d/ieee1394.conf
install ieee1394 /bin/true
install ohci1394 /bin/true
install eth1394 /bin/true
install sbp2 /bin/true
Alternately, you can modify /etc/modprobe.conf:
alias sub_module /dev/null
alias module_main /dev/null
options module_main needed_option=0
See also
* lsmod
lsmod is a command on Linux systems. It shows which loadable kernel modules are currently loaded.
An example terminal print after running lsmod command:
Module Size Used by
af_packet 27392 2
8139too ...
References
{{Reflist
External links
modprobe man page
modprobe.conf
modules.dep
Command-line software
Linux kernel-related software