Qualcomm Atheros QCA6164 breaks bumblebee with Nvidia GeForce 920M

Hi,

Following problem: I have an Optimus ultrabook (Lenovo U31-70) with an Intel HD 5500 and a GeForce 920M. The wifi module is a Qualcomm Atheros QCA6164 802.11ac. I struggle to get bumblebee and wifi working at the same time.

I can easily get bumblebee up and running using this guide:

https://en.opensuse.org/SDB:NVIDIA_Bumblebee

# optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

# optirun glxspheres 
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce 920M/PCIe/SSE2
70.530654 frames/sec - 78.712210 Mpixels/sec

Thanks to the pointers in this post

https://forums.opensuse.org/showthread.php/510952-Need-help-with-WIFI-%28Qualcomm-Atheros-QCA6164%29
I am in principle also able to get the wifi up and running. I added the Kernel:stable repo and switched the kernel-firmware and the kernel-default to this repo. Versions are

kernel-firmware 20160112git-35.1-noarch
kernel-default 4.4.5-1.2.g09dee88-x86_64

This fixes the wifi, but upon log in or out I see

[FAILED] Failed to start Load Kernel Modules.

What’s worst is that the new kernel provides bumblebee from working properly:

#optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is likely on

Note that the “likely on” is bad.

Thoughts?

Installing Kernel from non-standard repos will break the video driver. When you install the a driver it is compiled to work with exiting kernel. The packages from standard repos are made to work with the standard kernel. AFAIK there are no way to install the hard way for bumblebee nvidia diver which allows a wider selection of kernels to run with and bumblebee requires special set up so you can’t use the normal NVIDIA driver packages. Maybe drop back to nouveau. Bumblebee does not require the NVIDIA driver. Another option would be to try the no bumblebee solution for Optimus based machines.

https://forums.opensuse.org/showthread.php/512260-Leap-42-1-Optimus-system-with-nvidia-prime-instead-of-bumblebee

This method uses the regular NVIDIA driver and and allows install of the normal NVIDIA driver which can be done via the hard way with downloads from NVIDIA site.

The problem is not the video driver since e.g.

optirun glxspheres

still works. The problem is that bumblebee or bbswitch is unable to switch the discrete GPU off thus draining my battery. I just removed the

nvidia-bumblebee

package and

# optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is likely on.

is still there (now of course I can’t use optirun for launching apps).

I will have a look at that post, thanks.

When I use the newer kernel from Kernel:stable I get the following error:

# sudo cat /proc/acpi/bbswitch
root's password:
cat: /proc/acpi/bbswitch: No such file or directory

If I use the regular kernel, the same command shows me the state of the video card.

You can’t just drop a newer kernel in and expect things to work. You must compile a NVIDA driver to work with any given kernel. The driver is still attached to the older kernel and you must attach a driver to the newer kernel by hand ie the hard way. But a stock driver will not work with bumblebee it is a specially packaged driver nvidia-bumblebee made to work with the stock kernel. So you must do one of the things I suggested above.

Of course. bbswitch uses it’s own kernel module, which you installed for one kernel, but not for the other. Same goes for the NVIDIA stuff.

I have strong doubts that the wifi card issues are in any way related to the NVIDIA/Bumblebee stuff. And that’s an understatement.

Haha no I didn’t mean they’re related. It’s just that currently I can get one thing working – or the other. That’s slightly inconvenient. And that’s an understatement ;-).

So I was just hoping for a simple workaround e.g. another way to install the drivers for the wifi card or another way to handle the graphics card (I’m still working on that aforementioned post with nvidia-prime).

So if this is true (and I have no doubt about it)

then I suspect that these instructions

https://forums.opensuse.org/showthread.php/512260-Leap-42-1-Optimus-system-with-nvidia-prime-instead-of-bumblebee

really won’t help me either. I will still have to install bbswitch (which then works for the kernel in the LEAP repo) to power off the Nvidia card but in order to get my wifi running I will have to upgrade the kernel to the one in kernel:stable…

Any other way to get my wifi up and running? Maybe except for buying a cheap usb wifi https://forums.opensuse.org/images/icons/icon6.png? Or any other ideas regarding the nvidia card? If nothing else works, is there a way to completely power down the nvidia card (like with bbswitch) so that it does not chew away my battery at least? That way I’d simply use my Intel HD while under Linux, could use the Nvidia under Windows and hopefully soon with a new release or Kernel updates my problems will be solved.

You still can build your own bbswitch kernel module, suitable for your installed kernel, according to the instructions found there:https://github.com/Bumblebee-Project/bbswitch

You’ll need kernel headers, but otherwise that procedure should be no problem.

This finally did the trick, thanks a bunch!

Can anyone tell me what the kernel-pv package is needed for? I removed it after upgrading the kernel (there was no matching version of kernel-pv) to get rid off a

[FAILED] Failed to start Load Kernel Modules

error on boot and shutdown. I found something about paravirtualisation and can only guess that it is more of a niche application?