linux poison RSS
linux poison Email

How to disable loading of unnecessary kernel modules

What exactly is a kernel module? A Kernel Module is a program that is not actually compiled into the Linux kernel but is loaded separately. Kernel modules enable you to extend the capabilities of the kernel without the need to build extra functionality directly into the kernel image. A good example is the device driver.

There are certain advantages with using kernel modules as opposed to having the drivers compiled into the kernel. They can be unloaded (rmmod) and reloaded (modprobe, insmod) at any time, allowing you to pass different parameters to them rather than specify them once on bootup as kernel parameters or update them without rebooting. The fewer drivers you need, the fewer modules you need to load and the less memory Linux needs to operate. Also, to upgrade a modularized driver you just need to recompile the module, whereas if the driver is part of the kernel then you have to recompile the kernel. For hotpluggable buses like USB, the modules can be loaded on demand rather than all at once.

You can see what modules are already loaded into the kernel by running lsmod, which gets its information by reading the file /proc/modules

Many time it happens that there are lots of module gets loaded into memory and which are not required and hence its better if we disable loading of such module to enhance the performance of the system.

How to disable loading of unnecessary kernel modules
* Open the shell and type command lsmod to see what are the modules that are loaded.

* Check the value in section "used by", if the value is "0" it means that the this kernel module is not been used by any of the application/process and it's unnecessary occupying the space in the memory, the best way to know about such module to use google/bing search engine and if you feel that this module is not required you can simply unload it, for example if you don;t have the floppy drive then why to load floppy module :)

* Ok, so you have figure out what all module you want to blocking loading at the time of booting, go to console and open file /etc/modprobe.d/blacklist and add the kernel module that you want to disable loading, example shown below where I am disabling the loading of floppy & ipv6 kernel module.

blacklist ipv6
blacklist floppy

This tip can also use it to disable ipv6 on linux unless you wanted to just add the line
blacklist ipv6


Anonymous said...

Good tip, thanks

minki said...

very nice tip. My machine is now 2 times faster!

Anonymous said...

Very helpful........and precise!

Anonymous said...

I assume you mean:

Anonymous said...

It's a terrible idea to disable modules this way, let say that you disable your network ( lan ) LKM and then plug an ethernet cable...

Anonymous said...

"Disable your network"??? No need to disabled network, especially if you're connected through remote SSH. This method is useful for unloading the *unnecessary* modules.

Anonymous said...

Into source Linux Kernel and run command follow:
A dialog opened , here we can customize what modules that we want . right ?

Post a Comment

Related Posts with Thumbnails