7

I configured and compiled Linux kernel with nouveau driver built-into kernel, i.e. with <*> as opposed to <M> when doing make menuconfig inside Linux kernel source directory.

Now, I intend to use another driver rather than nouveau. If nouveau was a module, I would add a line like blacklist nouveau inside /etc/modprobe.d/blacklist.conf

What should I do now.

6

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

  • Which modules does it not work for, for example? What is the reason? E.g. in particular does not seem to work for i8042. – Ciro Santilli 新疆改造中心法轮功六四事件 Dec 30 '17 at 22:57
  • 1
    @CiroSantilli新疆改造中心法轮功六四事件 it seems xhci_hcd is hard to get rid of this way. – Ján Lalinský Oct 24 at 16:38
7

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.