How to force a proprietary driver to load on startup?
I've been having some problems with the driver for a wireless NIC supplied with the 3.0.0 kernel. I've compiled and installed the proprietary driver for it, so that I can switch it once the system has booted with:
# Remove the driver included with the kernel
sudo modprobe -r rtl8192cu
# Use the proprietary driver
sudo modprobe 8192cu
The module locations are
- rtl8192cu : /lib/modules/3.0.0-12-generic/kernel/drivers/net/wireless/rtlwifi/rtl8192cu/rtl8192cu.ko
- 8192cu (proprietary driver): /lib/modules/3.0.0-12-generic/kernel/drivers/net/wireless/8192cu.ko
I know these are probably very basic questions, but I'd like to know about the following:
- Why is the system using the driver included with the kernel ? Is it because its path has some kind of priority? Or because it is included by default with the kernel?
- Is blacklisting the
rtl8192cu
module the right way to make the propietary8192cu
module load at startup? - Is there any other way to make the system automatically load the proprietary driver by default?
Solution 1:
Since it is included with the kernel as a module, unless you blacklist the old module, it is loaded at the boot time because of having a device using that module. After installing an other driver, you need to blacklist the old one.
Blacklisting is the right way. But you should add the new module to /etc/modules file.