Note: blacklisting will not work for modules which are built into the kernel image (i.e. not loaded via a separate .ko file. The only way to disable such modules is via a kernel parameter (if available) or by recompiling the kernel.
Just open your /etc/modprobe.d/blacklist file and add drivername using following syntax:
blacklist driver-name
EDIT: In later versions since 12.10 (12.04?) the file is /etc/modprobe.d/blacklist.conf
Reboot your box and use lsmod command to show the status of modules in the Linux Kernel
Note: here driver-name is the name of your desired blacklist driver. For example, If you wanted to disable the NIC card driver, you can find the name of kernel driver for your LAN card by using the command lspci -v command in a terminal.
For Example my output was :
........
........
6:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)
Subsystem: Lenovo Device 3861
Flags: bus master, fast devsel, latency 0, IRQ 46
Memory at b8000000 (64-bit, non-prefetchable) [size=64K]
Expansion ROM at [disabled]
Capabilities:
Kernel driver in use: tg3
Kernel modules: tg3
........
........
Here, I see the driver is tg3. so you need to write tg3(or your driver) in the place of driver-name.
Another way to blacklist modules in at least Ubuntu 16.04 LTS is by adding the following line to the kernel command line:
modprobe.blacklist=MODULE_NAME
Using the /etc/modprobe system is the best way, but this is an alternative that can be used in a pinch by editing your GRUB command line at boot.
This can also be made permanent by editing /etc/default/grub and adding to the GRUB_CMDLINE_LINUX_DEFAULT variable. For example, in my /etc/default/grub I have:
Then I run update-grub2, then update-initramfs -u. After a reboot, you'll be free of the module, so long as nothing loads it after boot.
This method also works in EL variants (RHEL, CentOS, SciLinux), but you'll have to use that distro's methods to update grub and the initrd.
(Note to those trying to blacklist nouveau: Make sure to not load X by running systemctl set-default multi-user.target, otherwise when X starts it'll load nouveau again!)
Just open your
/etc/modprobe.d/blacklist
file and add drivername using following syntax:EDIT: In later versions since 12.10 (12.04?) the file is
/etc/modprobe.d/blacklist.conf
Reboot your box and use lsmod command to show the status of modules in the Linux Kernel
Note: here
driver-name
is the name of your desired blacklist driver. For example, If you wanted to disable the NIC card driver, you can find the name of kernel driver for your LAN card by using the commandlspci -v
command in a terminal.For Example my output was :
Here, I see the driver is
tg3
. so you need to writetg3
(or your driver) in the place ofdriver-name
.Plenty of info can be found here.
You can also temporarily blacklist them on the grub command line (linux line) when you boot with the syntax
Another way to blacklist modules in at least Ubuntu 16.04 LTS is by adding the following line to the kernel command line:
Using the /etc/modprobe system is the best way, but this is an alternative that can be used in a pinch by editing your GRUB command line at boot.
This can also be made permanent by editing /etc/default/grub and adding to the
GRUB_CMDLINE_LINUX_DEFAULT
variable. For example, in my /etc/default/grub I have:Then I run
update-grub2
, thenupdate-initramfs -u
. After a reboot, you'll be free of the module, so long as nothing loads it after boot.This method also works in EL variants (RHEL, CentOS, SciLinux), but you'll have to use that distro's methods to update grub and the initrd.
(Note to those trying to blacklist nouveau: Make sure to not load X by running
systemctl set-default multi-user.target
, otherwise when X starts it'll load nouveau again!)In more recent releases, you need to use the install directive in your blacklist file
Replace "modulename" above with the name of the module. This will forcibly prevent its loading.
You can find more info about the install directive in the manual for modprobe.conf
None of these solutions worked on 16.04 LTS for i915.ko.
The (dirty) solution I found was to rename
Unfortunately, external VGA screen is not recognised anymore :{