I have two different drivers for the same i2c device. Both drivers have the same string in their i2c module device table. One of the drivers is built into the kernel and the other was built as an out of tree module. If I load the module first, is there a way to force the device to be bound to the driver provided by the module rather than the driver built into the kernel?

  • Is there a reason why you don't want to blacklist the built-in one? – Ignacio Vazquez-Abrams Nov 8 '17 at 18:19

According to this answer:


built-in kernel modules can be blacklisted using kernel boot parameters. To do this, you would need to either edit the 'linux' entry on the GRUB command line or modify the boot parameters in the /boot/grub.cfg file.

Other than that, I believe you would have to re-configure/compile the kernel.

Edited: To incorporate correct information, as mentioned by Ignacio Vasquez-Abrams in the comments.

  • You can blacklist built-in modules, you just can't do it via /etc/modprobe*. – Ignacio Vazquez-Abrams Nov 10 '17 at 3:35
  • @IgnacioVazquez-Abrams hmm, I didn't think that was possible (which is backed-up by the top answer to this question). I guess he can try it and see though .. – Time4Tea Nov 10 '17 at 3:48
  • @IgnacioVazquez-Abrams it seems you were right about blacklisting built-in modules, although apparently it can only be done during boot. I have changed my answer to reflect the correct information. Thanks! – Time4Tea Nov 13 '17 at 3:50

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.