You are not logged in.
Hello! Since I'm using custom kernel I decided to replace every kernel module package with DKMS variants. But it looks like bbswitch can't turn my Nvidia OFF when using nvidia-dkms.
device 0000:01:00.0 is in use by driver 'nvidia', refusing OFF
Why is that? Is there anything I can do? For now I just installed usual nvidia package for my specific kernel and it works all right, although I don't really want to rebuild it manually every time kernel gets updated.
Offline
Nvidia module needs to be unloaded before bbswitch can turn it off. Not sure if bbswitch or bumblebee does the unloading.
But the unloading can also fail if the nvidia module has loaded the module "nvidia-uvm".
Using nvidia-dkms shouldn't be an issue, it works fine with the linux-ck kernel I use.
I suggest having a look at the wiki page for bumblebee, the answer is probably there.
Offline
I don't see anything related to my issue here in the ArchWiki. Unloading modules manually every time is not a solution to me, Bumblebee should automatically do all the work. I even tried to blacklist nvidia module using kernel parameter, didn't help.
Using nvidia-dkms shouldn't be an issue
It works all right with usual package though, which puts this module into the "extramodules" directory.
I tried to blacklist both nvidia and nvidia-uvm now, it still loads on boot which it probably should not do by the way.
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux-pf root=UUID=7cedd0eb-9acd-45e1-b30b-ded60c4809a8 rw quiet rcutree.rcu_idle_gp_delay=1 modprobe.blacklist=nvidia,nvidia-uvm
[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-linux-pf root=UUID=7cedd0eb-9acd-45e1-b30b-ded60c4809a8 rw quiet rcutree.rcu_idle_gp_delay=1 modprobe.blacklist=nvidia,nvidia-uvm
[ 8.455370] nvidia: module license 'NVIDIA' taints kernel.
[ 8.509742] [drm] Initialized nvidia-drm 0.0.0 20130102 for 0000:01:00.0 on minor 1
[ 8.509748] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 343.22 Thu Sep 11 16:27:43 PDT 2014
[ 8.511514] nvidia_uvm: Loaded the UVM driver, major device number 249
Last edited by gim (2014-10-28 08:41:23)
Offline
I know this thread is one year old, but I had exactly the same problem and I couldn't find anything about it.
I found that Archlinux uses its own script to load every dkms modules when you start the dkms service. You can disable this behavior by setting LOAD=no in /etc/default/dkms.
The problem with this approach is that you then have to load the modules you want manually, and you have to ensure they will be loaded after the dkms service launched (otherwise they won't load after each kernel/module upgrade). Today you could do it pretty easily with a systemd service file, but it is still a pain when you just want dkms to ignore the nvidia module.
Then I found that you can add the '-b' option to modprobe in the archlinux dkms script (/usr/lib/systemd/scripts/dkms), and it will honor your blacklist preferences (which seems like a more intuitive behavior). I still had to blacklist the nvidia_uvm module, otherwise the script would load nvidia as a dependency of nvidia_uvm even if nvidia is blacklisted.
I will probably create an issue on the bugtracker to see if they can add the '-b' option, since I don't see any drawback for using it.
Offline