Bumblebee: Nvidia drivers not loaded after updates on 13.1

I’ve had Bumblebee working perfectly on this 13.1 laptop, set up according to openSUSE guide, but after some of the packages were updated I get “nvidia not loaded” error:

stan@linux-y70s:~> optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

stan@linux-y70s:~> optirun glxspheres
 1219.789824] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

 1219.789946] [ERROR]Aborting because fallback start is disabled.
stan@linux-y70s:~>

I think it’s the second time I had this problem but I don’t remember what I did last time, it must have been something fairly simple but it escapes me now.

Should I just retrace steps from Bumblebee setup or is there an easier way to make nvidia driver registered with my kernel?

Apparently the nvidia driver cannot be loaded.
Try to re-install nvidia-bumblebee, either in YaST (right-click on the package and select “Update Unconditionally”), or via:

sudo zypper in -f nvidia-bumblebee

If there are errors, please post them.

That said, there haven’t been any openSUSE 13.1 updates recently that might affect the nvidia driver, and the last kernel update was two months ago.
And if there’s a problem with Bumblebee or the nvidia driver itself at the moment, this probably won’t help either.

So what updates did you install that broke it?

I haven’t touched this notebook for a couple of weeks, then I ran zypper patch and zypper up because autoupdate plasmoid couldn’t connect to repos and I had to manually select retry in terminal a few times. I distinctly remember there was a line about installing something related to bumbebee there as it stayed for quite some time.

On that day I used bumblebee to watch a 1080p video which stuttered in a few places otherwise.

Next day, ie after reboot, it wouldn’t run anymore.

Anyway, forced driver update returned some errors, I rebooted, tested optirun, and ran update again, here’s what I got:

stan@linux-y70s:~> optirun glxspheres
  212.700114] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

  212.700216] [ERROR]Aborting because fallback start is disabled.
stan@linux-y70s:~> sudo zypper in -f nvidia-bumblebee
root's password:
Loading repository data...
Reading installed packages...
Forcing installation of 'nvidia-bumblebee-343.22-1.1.x86_64' from repository 'Bumblebee'.
Resolving package dependencies...

The following package is going to be reinstalled:
  nvidia-bumblebee 

1 package to reinstall.
Overall download size: 12.9 KiB. No additional space will be used or freed after the operation.
Continue? [y/n/? shows all options] (y): y
Retrieving package nvidia-bumblebee-343.22-1.1.x86_64                          (1/1),  12.9 KiB (  513 B unpacked)
Retrieving: nvidia-bumblebee-343.22-1.1.x86_64.rpm .........................................................[done]
(1/1) Installing: nvidia-bumblebee-343.22-1.1 ..............................................................[done]
Additional rpm output:
check sums and md5 sums are ok
ln: failed to create symbolic link '/usr/share/licenses/nvidia-utils/nvidia': File exists
+ '' -x /usr/sbin/dkms ']'
+ /usr/sbin/dkms add -m nvidia -v 343.22 --rpm_safe_upgrade
Error! DKMS tree already contains: nvidia-343.22
You cannot add the same module/version combo more than once.
+ /usr/sbin/dkms build -m nvidia -v 343.22
Module nvidia/343.22 already built for kernel 3.11.10-21-desktop/4
+ /usr/sbin/dkms install -m nvidia -v 343.22
Module nvidia/343.22 already installed on kernel 3.11.10-21-desktop/x86_64
+ popd


stan@linux-y70s:~> optirun glxspheres
  340.846222] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

  340.846339] [ERROR]Aborting because fallback start is disabled.
stan@linux-y70s:~> 

I got the same error, as far as I can tell, the first time I ran forced update, this is the second try after reboot.

Ok, then there could have been the kernel update included of course.
Actually dkms should take care of re-compiling the nvidia kernel module whenever a new kernel is installed, but I remember a different (quite long) thread here where it didn’t work.

I got the same error, as far as I can tell, the first time I ran forced update, this is the second try after reboot.

So the reinstall doesn’t work because dkms complains it is already installed.
Try to remove nvidia-bumblebee completely and then install it again.

Trying to remove bumblebee completely and reinstall it didn’t work:

stan@linux-y70s:~> optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is likely on.

stan@linux-y70s:~> optirun glxspheres
  894.472582] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

  894.472684] [ERROR]Aborting because fallback start is disabled.
stan@linux-y70s:~> 

“Discrete video card” was off, now it’s “likely on”.

Also, during mkinitrd stage of installation I got this line for every kernel:

modprobe: Module nvidia not found.
WARNING: no dependencies for kernel module 'nvidia' found.

In the guide mkinitrd is run before nvidia drivers install, is that right?

I see that bbswitch is not installed anymore, having it used to be a big thing for bumblebee. I’ll install it, run mkinird again and see if it improves anything. Yast asked to change dependencies for some nvidia packages during bbswitch installation, I agreed, hope they don’t screw anything up.

Well, apparently the nvidia kernel module does not exist, so something must have gone wrong when installing the nvidia driver and compiling the module.
Did you get any error message?

In the guide mkinitrd is run before nvidia drivers install, is that right?

Probably.
AFAIK the nvidia installer aborts if it finds the nouveau kernel module loaded. That mkinitrd adds the nouveau blacklist to the initrd so even plymouth will not load it.

I see that bbswitch is not installed anymore, having it used to be a big thing for bumblebee. I’ll install it, run mkinird again and see if it improves anything. Yast asked to change dependencies for some nvidia packages during bbswitch installation, I agreed, hope they don’t screw anything up.

Hard to tell without knowing which packages you allowed to change and how, and not even knowing your repos. There aren’t any other nvidia packages in the bumblebee repo AFAICS, so this probably was no good idea.
I don’t know whether bbswitch is needed or would help, but if the guide doesn’t mention it, it shouldn’t be necessary to install it manually.
And that you had bumblebee working before should prove that anyway.

AFAIK the nvidia installer aborts if it finds the nouveau kernel module loaded. That mkinitrd adds the nouveau blacklist to the initrd so even plymouth will not load it.

I’ve had noueveau blacklisted with a separate .conf file long time ago so that it stays persistent between updates, and I have plymouth disabled because it messes up with my video driver, slowing it down. There was a long threat about it last year, after upgrade to 13.1 plymouth improved a bit but I had tested glxspheres once with and without plymouth - it was a jump from 25fps to 100 fps, and with nvidia turned off every HD video would still stutter. So plymouth is disabled, and it shouldn’t be relevant here, bumblebee worked regardless.

Hard to tell without knowing which packages you allowed to change and how, and not even knowing your repos. There aren’t any other nvidia packages in the bumblebee repo AFAICS, so this probably was no good idea.
I don’t know whether bbswitch is needed or would help, but if the guide doesn’t mention it, it shouldn’t be necessary to install it manually.
And that you had bumblebee working before should prove that anyway.

Bbswitch is still in bumblebee repo from the guide, there’s no telling if it was installed or not before. Used to be essential and then had to be manually added to etc/sysconfig Editor in Yast, now I don’t see it added there. Installing it didn’t change anything anyway. A couple of nvidia packages were added or changed to another repo: http://download.opensuse.org/repositories/home:/opensuse_zh/openSUSE_13.1/ That was probably a mistake. Adding bbswitch didn’t change anything anyway. Mkinitrd now included nvida module to each kernel version without warnings.

At this point I first need to get nvidia card off, not “likely on”, that would bring me to my today’s starting point.

I should probably reinstall Bumblebee again but this time I want to make sure I do it completely. The guide doesn’t list uninstall procedure, maybe simply ticking off packages in Yast is not enough.

AFAICS, this repo contains the kernel modules from the standard nvidia driver in version 331.79.
If you install those, you might not get any warning from mkinitrd any more (as the nvidia kernel module does exist now), but they will definitely break your installed nvidia driver which is version 343.22.

So you should definitely remove them again.
Uninstall nvidia-gfxG03-kmp-desktop and nvidia-uvm-gfxG03-kmp-desktop.
Then uninstall nvidia-bumblebee as well.

Afterwards install nvidia-bumblebee again with zypper, and this time please post the error messages you get.

I’ve uninstalled those two nvidia packages, bbswitch, and nvidia-bumblebee.

Then installed nvidia-bumblebee from zypper, here’s the part of the output that was left in my terminal window: Paste

Everything seems to be okay, I also run “systemctl enable dkms” as recommended in the guide, and after restart I still get this:

stan@linux-y70s:~> optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is likely on.

stan@linux-y70s:~> optirun glxspheres
  142.294119] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

  142.294211] [ERROR]Aborting because fallback start is disabled.
stan@linux-y70s:~> optirun -vv --debug bash
  167.774640] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
  167.775456] [DEBUG]optirun version 3.2.1 starting...
  167.775490] [DEBUG]Active configuration:
  167.775515] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
  167.775549] [DEBUG] X display: :8
  167.775575] [DEBUG] LD_LIBRARY_PATH: /usr/lib64/nvidia:/usr/lib/nvidia
  167.775584] [DEBUG] Socket path: /var/run/bumblebee.socket
  167.775610] [DEBUG] Accel/display bridge: auto
  167.775619] [DEBUG] VGL Compression: proxy
  167.775646] [DEBUG] VGLrun extra options: 
  167.775671] [DEBUG] Primus LD Path: /usr/lib64/primus:/usr/lib/primus
  167.775739] [DEBUG]Using auto-detected bridge virtualgl
  167.857217] [INFO]Response: No - error: Could not load GPU driver

  167.857277] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

  167.857286] [DEBUG]Socket closed.
  167.857337] [ERROR]Aborting because fallback start is disabled.
  167.857344] [DEBUG]Killing all remaining processes.
stan@linux-y70s:~> 

My bublebee nvidia installation also was borked by some update which i did sometime ago. I thought of reinstalling the driver (i did try updating to latest though), but have not done the complete reinstall. The problem I have is that dkms-bbswitch or bbswitch-dkms (overman’s and bumblebee repo have different namings for same thing) is not there anymore in the repo and I am using 3.15 kernel. Without dkms for bbswitch, i wont be able to compile modules for my kernel.

I think the message you are seeing “…video card is likely on…” suggests that bbswitch is not working. Which version of kernel are you on? I see only modules for 3.11.6 kernel in the repo.

Any suggestions from fellow bumblebee users? Can we get back the dkms-bbswitch (or bbswitch-dkms module back into the bumblebee repo please?)

3.11.10-21, the one that comes with regular updates.

Does it mean we have to wait for updated bbswitch? Could it be an oversight so we have to tell someone it’s outdated?

???
wildnux was talking about kernel 3.15, not the regular 3.11 that is included in 13.1.

The packages for 3.11.6 on the repo should work fine with any official openSUSE 13.1 kernel update.
Otherwise, nobody would have gotten them (or Bumblebee) to work since the first kernel update to 3.11.10 in January… :wink:

Btw, that’s the standard way on openSUSE. Kernel module packages (KMPs) are provided for one kernel version (normally the one shipped with the particular openSUSE version, i.e. 3.11.6 in this case), for all other installed kernels symlinks are created, so they are available there too. For this to work, the kernels have to be compatible enough of course, but that’s probably the only feasible solution when providing binary kernel modules, especially in combination with the kernel multiversion feature. (you cannot really offer a package for every available kernel version)

The only alternative would be to provide the kernel module in source form only and compile it on installation for the running kernel.
This is what the nvidia driver does, and where dkms comes into play.
And this is what wildnux asked for: getting back a dkms-bbswitch package that only contains the source code and compiles the module on the fly via dkms. So that you can use it with kernels other than the official 13.1 ones (i.e. other than 3.11.x).
But that’s completely unrelated to your problem, I’d say.

Yes, I don’t see an error in there.

I also run “systemctl enable dkms” as recommended in the guide,

This should only be necessary once.
And AFAIK not doing that would only be a problem when installing a kernel update, as dkms is not started then at boot and would not recompile the kernel modules for the new kernel.

But anyway, doing that is of course advisable, and it doesn’t harm to do it more than once (although it will have no effect on the subsequent times)… :wink:

and after restart I still get this:

stan@linux-y70s:~> optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is likely on.

Ok, according to wildnux’ response, this probably means that bbswitch is either not installed or not working.
Not surprising since you said you uninstalled it, and didn’t mention installing it again.

Try to install exactly those two packages from the Bumblebee repo:
bbswitch and bbswitch-kmp-desktop

stan@linux-y70s:~> optirun glxspheres
142.294119] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

142.294211] [ERROR]Aborting because fallback start is disabled.
stan@linux-y70s:~> optirun -vv --debug bash
167.774640] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
167.775456] [DEBUG]optirun version 3.2.1 starting…
167.775490] [DEBUG]Active configuration:
167.775515] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
167.775549] [DEBUG] X display: :8
167.775575] [DEBUG] LD_LIBRARY_PATH: /usr/lib64/nvidia:/usr/lib/nvidia
167.775584] [DEBUG] Socket path: /var/run/bumblebee.socket
167.775610] [DEBUG] Accel/display bridge: auto
167.775619] [DEBUG] VGL Compression: proxy
167.775646] [DEBUG] VGLrun extra options:
167.775671] [DEBUG] Primus LD Path: /usr/lib64/primus:/usr/lib/primus
167.775739] [DEBUG]Using auto-detected bridge virtualgl
167.857217] [INFO]Response: No - error: Could not load GPU driver

167.857277] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

167.857286] [DEBUG]Socket closed.
167.857337] [ERROR]Aborting because fallback start is disabled.
167.857344] [DEBUG]Killing all remaining processes.
stan@linux-y70s:~>

Well, it still says that the nvidia driver cannot be loaded. No idea if that could be related to bbswitch or is a completely different problem.
But, AFAIK the Xorg log when using optirun goes to /var/log/Xorg.1.log (notice the ‘1’), so please post that one as it might contain further clues (it might be a higher number than 1, so check what you have in /var/log/).

I’ll have to reinstall on my netbook, but as far as I rememeber it should be Xorg.8.log.
Btw what nvidia chips do you guys have, mine is GT218, an ION chip, and didn’t work with this update, on this page http://www.nvidia.com/download/driverResults.aspx/77844/en-us
it says GT2xx are no longer supported among some others.

When upgrading to 13.1 I removed bbswitch and recommended settings, then installed everything fresh from Bumblebee repo, it worked like magic, but I don’t remember what packages were installed then.

Now, when I try to do the same, Yast doesn’t offer to install bbswitch anymore and there are no instructions in the guide to do so or to manually edit sysonfig as pre-13.1 when I used Ovenman repo.

I’ve tried installing bbswitch manually, didn’t work, the outcome is somewhere in my earlier posts.

Maybe I didn’t remove everything cleanly and some broken settings persist after re-install, maybe bbswitch needs some special treatment, like manually adding it in sysconfig.

Xorg.1.log paste is here

Well, I have no idea, I only see what’s available in the repo, and that’s bbswitch and the bbswitch-kmp-xxx packages.
But as I wrote already: I think if it is not mentioned in the guide, it should either be installed automatically or not be needed.

Xorg.1.log paste is here

That was the wrong one.
It’s over a year old.

Have a look whether there’s a /var/log/Xorg.8.log.
Or maybe look at a directory listing for another recent Xorg.X.log. (except 0 of course, as this is the normal one running on intel)

And as hank_se already asked: What nvidia chip do you actually have?
The latest nvidia driver version dropped support for the GeForce 8/9 and 100-300 series (and 405), so that could explain your sudden problem since the latest updates.
From the above link:

Removed support for G8x, G9x, and GT2xx GPUs, and motherboard chipsets based on them. Ongoing support for new Linux kernels and X servers, as well as fixes for critical bugs, will be included in 340.* legacy releases through the end of 2019.

Xorg.8.log, modified on 21/09/2014, there aren’t any newer, except Xorg.0.log

stan@linux-y70s:~> /sbin/lspci -nnk | grep VGA -A200:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02)
        Subsystem: Toshiba America Info Systems Device [1179:fd80]
        Kernel driver in use: i915
--
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT216M [GeForce GT 330M] [10de:0a2b] (rev a2)
        Subsystem: Toshiba America Info Systems Device [1179:fd80]
        Kernel modules: nvidiafb, nouveau, nvidia
stan@linux-y70s:~> 



I suppose that’s from the last time it worked then.

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GT216M [GeForce GT 330M] [10de:0a2b] (rev a2)
        Subsystem: Toshiba America Info Systems Device [1179:fd80]
        Kernel modules: nvidiafb, nouveau, nvidia

Well, there you have it.
That chip is not supported any more by the nvidia driver 343.22 that’s in the Bumblebee repo.

You would have to install the 340.xx instead, but I have no idea how you would do that with Bumblebee.
Maybe they should provide some nvidialegacy-bumblebee package with 340.xx in the repo, I suppose.
You should probably file a bug report suggesting that.

PS: There are older versions of nvidia-bumblebee available on OBS (340.24 and 340.32):
http://software.opensuse.org/package/nvidia-bumblebee

You could try to install one of those instead of nvidia-bumblebee 343.22 from the Bumblebee repo. But remove that one first. The rest you should leave as is.

Finally, success. I installed BOTH bbswitch and bbswitch-kmp-desktop unlike only bbswitch I did before. This prompted install of desktop version of the kernel, too.

Then I installed 340.32 version of nvidia driver from that software page

Now everything works again.

Two more things - I hope setting “protected” flag on this driver in yast stops autoupdater from asking to update it, and do I have to install 32bit version of the driver, too? Guide recommends it but I’m not sure that simply installing corresponding rpm is enough. In Bumblebee repo it’s called nvidia-bumblebee-32bit but I don’t what it actually installs.

Should this problem be posted as a bug to whoever maintains Bumblebee repo? How should I go about it? Is the fact that bbswitch is not automatically selected for install be mentioned, too?

@wolfi323

do you know who can we ask to get bbswitch dkms package back into bumblebee repo?