modprobe is the core tool in Linux for loading, uninstalling and managing kernel modules. It can automatically handle module dependencies. 1. Use the command sudo modprobe module_name to load the module. For example, sudo modprobe nfs will automatically load nfs and its dependencies such as sunrpc. 2. Use sudo modprobe -r module_name to uninstall the module. For example, sudo modprobe -r nfs will remove nfs and unused dependent modules, provided that the module is not occupied. 3. To view the module status, you can use lsmod | grep module_name to check whether it has been loaded, and use modinfo module_name to view module details such as parameters and author. 4. To update the dependency map, you need to run sudo depmod to rebuild the modules.dep file to ensure that modprobe correctly parses the dependencies, which are usually executed after installing a new module. 5. Blacklist blocking module loading can be implemented through echo "blacklist problem_module" | sudo tee /etc/modprobe.d/blacklist-problematic.conf. For example, blacklist uvcvideo can disable camera drivers, or install module_name /bin/false can be used to silently fail the loading. 6. The configuration alias and parameters can be set in the .conf file under /etc/modprobe.d/, such as alias mygpu nvidia and options nvidia NVreg_UsePageAttributeTable=1. 7. Common application scenarios include resolving Wi-Fi conflicts (such as blacklist b43 and loading wl), privacy protection (disable uvcvideo or snd_hda_codec_hdmi), and loading proprietary drivers at startup via initramfs. 8. Best practices recommend that modprobe be used instead of insmod, keep the /etc/modprobe.d/ configuration file naming clear, run sudo depmod -a after modification, and manually test the module loading before restarting, so as to ensure the system runs stably, safely and efficiently.
Managing kernel modules in Linux is a key task for system administrators and power users, especially when dealing with hardware drivers or custom kernel features. The modprobe
command is the primary tool used to load, unload, and manage kernel modules in a clean and dependency-aware way. Here's how to use it effectively.

What Is modprobe
?
modprobe
is a utility that adds or removes modules from the Linux kernel. Unlike the lower-level insmod
and rmmod
, modprobe
understands module dependencies and automatically handles them. It reads configuration files (usually in /etc/modprobe.d/
) and module dependency maps (created by depmod
) to ensure modules are loaded correctly.
Loading and Unloading Modules
Load a Module
To load a kernel module:

sudo modprobe module_name
For example, to load the nfs
module:
sudo modprobe nfs
modprobe
will automatically load any required dependencies (like sunrpc
, lockd
, etc.).

Unload a Module
To remove a module:
sudo modprobe -r module_name
The -r
flag tells modprobe
to remove the module and any unused dependent modules. For example:
sudo modprobe -r nfs
Note : A module can only be unloaded if it's not in use.
Viewing Module Information
Check if a Module Is Loaded
Use lsmod
to list currently loaded modules:
lsmod | grep module_name
View Module Details
To see information about a module (like parameters, description, author):
modinfo module_name
Example:
modinfo i915
This shows details about the Intel graphics driver.
Managing Module Dependencies
Update Module Dependency Map
After installing new modules or changing configurations, regenerate the dependency map:
sudo demod
This updates /lib/modules/$(uname -r)/modules.dep
, which modprobe
uses to resolve dependencies.
Most modern distributions run this automatically during package installation.
Blacklisting and Configuring Modules
Prevent a Module from Loading
To blacklist a module so it won't load at boot, create a config file in /etc/modprobe.d/
:
echo "blacklist problem_module" | sudo tee /etc/modprobe.d/blacklist-problematic.conf
Example: Prevent uvcvideo
from loading:
blacklist uvcvideo
You can also replace a problematic module with a dummy one:
install problem_module /bin/false
This ensures even if something tries to load it, it fails silently.
Alias and Module Options
You can alias a module name or pass parameters:
alias mygpu nvidia options nvidia NVreg_UsePageAttributeTable=1
These go in .conf
files under /etc/modprobe.d/
.
Common Use Cases
- Fixing Wi-Fi issues : Blacklist conflicting drivers like
b43
and loadwl
instead. - Disabling webcams or mics for privacy: blacklist
uvcvideo
orsnd_hda_codec_hdmi
. - Loading proprietary drivers at boot via initramfs (ensure they're in initramfs using
update-initramfs
ordracut
).
Tips and Best Practices
- Always use
modprobe
overinsmod
unless you're debugging. - Keep
/etc/modprobe.d/
organized—use describe.conf
filenames. - After editing module configs, run
sudo depmod -a
to be safe. - Test module loading manually before rebooting.
Basically, modprobe
makes kernel module management safe and efficient by handling dependencies and respecting system-wide rules. With the right configurations, you can fine-tune your kernel's behavior for performance, security, or hardware compatibility.
The above is the detailed content of How to Manage Kernel Modules in Linux with `modprobe`. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

I have a lot of experience in participating in VSCode offline technology exchange activities, and my main gains include sharing of plug-in development, practical demonstrations and communication with other developers. 1. Sharing of plug-in development: I learned how to use VSCode's plug-in API to improve development efficiency, such as automatic formatting and static analysis plug-ins. 2. Practical demonstration: I learned how to use VSCode for remote development and realized its flexibility and scalability. 3. Communicate with developers: I have obtained skills to optimize VSCode startup speed, such as reducing the number of plug-ins loaded at startup and managing the plug-in loading order. In short, this event has benefited me a lot and I highly recommend those who are interested in VSCode to participate.

Linux system restricts user resources through the ulimit command to prevent excessive use of resources. 1.ulimit is a built-in shell command that can limit the number of file descriptors (-n), memory size (-v), thread count (-u), etc., which are divided into soft limit (current effective value) and hard limit (maximum upper limit). 2. Use the ulimit command directly for temporary modification, such as ulimit-n2048, but it is only valid for the current session. 3. For permanent effect, you need to modify /etc/security/limits.conf and PAM configuration files, and add sessionrequiredpam_limits.so. 4. The systemd service needs to set Lim in the unit file

Informix and MySQL are both popular relational database management systems. They perform well in Linux environments and are widely used. The following is a comparison and analysis of the two on the Linux platform: Installing and configuring Informix: Deploying Informix on Linux requires downloading the corresponding installation files, and then completing the installation and configuration process according to the official documentation. MySQL: The installation process of MySQL is relatively simple, and can be easily installed through system package management tools (such as apt or yum), and there are a large number of tutorials and community support on the network for reference. Performance Informix: Informix has excellent performance and

The reason why the editor crashes after the VSCode plugin is updated is that there is compatibility issues with the plugin with existing versions of VSCode or other plugins. Solutions include: 1. Disable the plug-in to troubleshoot problems one by one; 2. Downgrade the problem plug-in to the previous version; 3. Find alternative plug-ins; 4. Keep VSCode and plug-in updated and conduct sufficient testing; 5. Set up automatic backup function to prevent data loss.

To tune MySQL into a Chinese interface, it can be implemented through MySQLWorkbench or command line tools. 1) In MySQLWorkbench, open "Preferences", select the "Appearance" tab, and then select "Chinese(Simplified)" in the "Language" drop-down menu, and restart. 2) When using command line tools, set the operating system locale variables, such as using "exportLANG=zh_CN.UTF-8" on Linux or macOS, and then run the mysql client.

Debian Text Editor is a basic text editing tool, mainly used for daily simple text editing work. Compared with other mainstream editors, it has certain limitations in performance and user experience. Here are the advantages and features of several other editors compared to Debian text editors: Notepad Loading large files speed: Notepad can quickly load large files, such as 1GB-sized SQL files in just 8 seconds, which is nearly 47 times faster than standard text editors. Code coloring function: Supports code coloring in about 80 programming languages, which helps improve coding efficiency. Batch operation capability: It has column editing mode, which is convenient for performing batch processing tasks such as financial verification or operation and maintenance logs. Extension plug-in branch

Starting SFTP service in Debian systems usually requires the help of an OpenSSH server. The following are the specific steps: 1. Install the OpenSSH server First, confirm that the OpenSSH server is installed on your Debian system. If not installed, you can complete the installation by following command: sudoaptupdatesudoaptininstallopenssh-server2. After starting the OpenSSH server installation is completed, the OpenSSH server will generally start automatically. You can check its running status through the following command: sudosystemctlstatusssh If the service is not running, you can start it with the following command: s

Linux and Windows have their own advantages and disadvantages in CPU and memory usage: 1) Linux uses time slice-based scheduling algorithms to ensure fairness and efficiency; Windows uses priority scheduling, which may cause low-priority processes to wait. 2) Linux manages memory through paging and switching mechanisms to reduce fragmentation; Windows tends to pre-allocate and dynamic adjustment, and efficiency may fluctuate.
