How to block drivers built-into Kernel, i.e. drivers who are not a module
Not many people know about this, but there absolutely is a way to blacklist a driver built into the kernel.
First and foremost, you should run lsmod | grep <driver_name>
. If you don't see any results, congratulations - your driver is built directly into the kernel and the normal way of blacklisting it isn't going to work. Instead, you'll need to blacklist your driver's initialization function instead. To do this, you'll need to add initcall_blacklist=<driver_init>
as a kernel boot option where driver_init is the driver initialization function - you'll have to look through your kernel's sources to figure out what name needs to be used. As a concrete example, initcall_blacklist=vmd_drv_init
used as a boot option prevents Intel's Volume Management Device driver from loading and binding to an active Volume Management Device controller.
You can also temporarily blacklist them on the grub command line (linux line) when you boot with the syntax
module_to_blacklist.blacklist=yes
OR
modprobe.blacklist=module_to_blacklist
You need to modify the grub,cfg to make the changes permanent.
Mind you, this solution will not work for few modules