bumblebee not working

Hi,

The hardware is a Dell XPS 9570:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation LPSS I2C Controller #0 (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Device a369 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Device a353 (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #17 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)
00:1c.4 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #5 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device a30e (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev ff)
3b:00.0 Network controller: Intel Corporation Wireless-AC 9260 (rev 29)
3c:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
3d:00.0 Non-Volatile memory controller: Toshiba America Info Systems Device 0116

After disabling Secure Boot in BIOS I did a fresh install of Tumbleweed and followed this guide:

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

Please notice that I followed only Tumbleweed specific sections and I did not installed the Nvidia driver or configure the X11 links. Basically (from the history output):

2  sudo snapper create -d BeforeBB
3  sudo zypper in bumblebee bbswitch
4  sudo usermod -aG bumblebee codrut
5  sudo usermod -aG video codrut
6  id codrut
7  sudo systemctl enable bumblebeed
8  sudo systemctl start bumblebeed
9  cat /etc/modprobe.d/

10 cat /etc/modprobe.d/99-local.conf
11 echo “blacklist nouveau” | sudo tee -a /etc/modprobe.d/99-local.conf
12 cat /etc/modprobe.d/99-local.conf
13 sudo mkinitrd
14 sudo zypper in Mesa-libGL1-32bit libX11-6-32bit primus-32bit
15 sudo zypper addrepo https://download.opensuse.org/repositories/X11:Bumblebee/openSUSE_Tumbleweed/X11:Bumblebee.repo
16 sudo zypper in nvidia-bumblebee nvidia-bumblebee-32bit
17 sudo systemctl enable dkms
18 sudo mkinitrd
19 optirun --status
20 optirun glxgears

This failed to run even after I blacklisted the GPU in TLP, stopping TLP and powertop is not configured on my system.

codrut@linux-ht9t:/etc/bumblebee> sudo systemctl status tlp
● tlp.service - TLP system startup/shutdown
Loaded: loaded (/usr/lib/systemd/system/tlp.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: http://linrunner.de/tlp
codrut@linux-ht9t:/etc/bumblebee> sudo systemctl status powertop
Unit powertop.service could not be found.

In dmesg for boot time:

9.388463] Bluetooth: hci0: Firmware revision 0.1 build 113 week 38 2018
9.394848] input: Integrated_Webcam_HD: Integrate as /devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.0/input/input33
9.394963] usbcore: registered new interface driver uvcvideo
9.394964] USB Video Class driver (1.1.1)
9.470946] nvidia-nvlink: Nvlink Core is being initialized, major device number 242
9.471191] NVRM: This is a 64-bit BAR mapped above 4GB by the system
           NVRM: BIOS or the Linux kernel, but the PCI bridge
           NVRM: immediately upstream of this GPU does not define
           NVRM: a matching prefetchable memory window.
9.471191] NVRM: This may be due to a known Linux kernel bug.  Please
           NVRM: see the README section on 64-bit BARs for additional
           NVRM: information.
9.471194] nvidia: probe of 0000:01:00.0 failed with error -1
9.471205] NVRM: The NVIDIA probe routine failed for 1 device(s).
9.471205] NVRM: None of the NVIDIA graphics adapters were initialized!
9.471290] nvidia-nvlink: Unregistered the Nvlink Core, major device number 242
9.487780] bpfilter: Loaded bpfilter_umh pid 1781
9.543363] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
9.543364] Bluetooth: BNEP filters: protocol multicast
9.543366] Bluetooth: BNEP socket layer initialized
9.560592] nvidia-nvlink: Nvlink Core is being initialized, major device number 242
9.560784] NVRM: This is a 64-bit BAR mapped above 4GB by the system
           NVRM: BIOS or the Linux kernel, but the PCI bridge
           NVRM: immediately upstream of this GPU does not define
           NVRM: a matching prefetchable memory window.
9.560785] NVRM: This may be due to a known Linux kernel bug.  Please
           NVRM: see the README section on 64-bit BARs for additional
           NVRM: information.
9.560788] nvidia: probe of 0000:01:00.0 failed with error -1
9.560795] NVRM: The NVIDIA probe routine failed for 1 device(s).
9.560796] NVRM: None of the NVIDIA graphics adapters were initialized!
9.560915] nvidia-nvlink: Unregistered the Nvlink Core, major device number 242
9.643870] nvidia-nvlink: Nvlink Core is being initialized, major device number 242
9.644080] NVRM: This is a 64-bit BAR mapped above 4GB by the system
           NVRM: BIOS or the Linux kernel, but the PCI bridge
           NVRM: immediately upstream of this GPU does not define
           NVRM: a matching prefetchable memory window.
9.644081] NVRM: This may be due to a known Linux kernel bug.  Please
           NVRM: see the README section on 64-bit BARs for additional
           NVRM: information.
9.644083] nvidia: probe of 0000:01:00.0 failed with error -1
9.644092] NVRM: The NVIDIA probe routine failed for 1 device(s).
9.644092] NVRM: None of the NVIDIA graphics adapters were initialized!
9.644180] nvidia-nvlink: Unregistered the Nvlink Core, major device number 242
9.736615] nvidia-nvlink: Nvlink Core is being initialized, major device number 242
9.736853] NVRM: This is a 64-bit BAR mapped above 4GB by the system
           NVRM: BIOS or the Linux kernel, but the PCI bridge
           NVRM: immediately upstream of this GPU does not define
           NVRM: a matching prefetchable memory window.
9.736854] NVRM: This may be due to a known Linux kernel bug.  Please
           NVRM: see the README section on 64-bit BARs for additional
           NVRM: information.
9.736858] nvidia: probe of 0000:01:00.0 failed with error -1
9.736868] NVRM: The NVIDIA probe routine failed for 1 device(s).
9.736869] NVRM: None of the NVIDIA graphics adapters were initialized!
9.736984] nvidia-nvlink: Unregistered the Nvlink Core, major device number 242

after issuing the command:

codrut@linux-ht9t:/etc/bumblebee> optirun --status
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.

codrut@linux-ht9t:/etc/bumblebee> optirun glxgears

in dmesg:

585.957616] [ERROR]Cannot access secondary GPU - error: Could not enable discrete graphics card

585.957666] [ERROR]Aborting because fallback start is disabled.

585.894214] bbswitch: enabling discrete graphics
585.894274] pci 0000:01:00.0: Refused to change power state, currently in D3

I have the exact same problem with this laptop. Been searching for a solution for days now.
I came across this post which looked promising but I can’t get it to work. Any advice would be appreciated!

https://bugzilla.opensuse.org/show_bug.cgi?id=1110041 may point to links that could be of use. Adding a comment there might sway developers to think about putting more effort into having your kind of trouble avoided. Note its highlight is the cmdline string “nomodeset”, which is a band-aid, not a solution.

Thanks for the reply. I’ve been through several of the threads linked in that discussion. I have tried switching to the discrete graphics card using both the “official” documentation and the process list in this post: https://forums.opensuse.org/showthread.php/531327-Anyone-get-Nvidia-Optimus-working-in-Leap-15?p=2873785#post2873785
Neither process works on the XPS 15 9570, however.

I have also tried upgrading the BIOS to the latest 1.7.0. but this also does not make a difference. The BIOS unfortunately also does not have an option to disable the Intel card so that the system will use the Nvidia card exclusively, as far as I can tell.

It appears the system doesn’t even “see” the Nvidia card either:

xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x46; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 3; outputs: 4; associated providers: 0; name: modesetting
output eDP-1
output DP-1
output DP-2
output DP-3

Only 1 “provider” is listed.

I am out of ideas right now and would appreciate any insight because I am out of my depth getting this to work. Anyone?

Can you please share your graphics hardware details?

/usr/sbin/hwinfo --gfxcard

Sure, here is the output:


16: PCI 100.0: 0302 3D controller                               
  [Created at pci.386]
  Unique ID: VCu0.x1dj2r4ptE7
  Parent ID: vSkL.PMQInhUWqQ8
  SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "nVidia GP107M [GeForce GTX 1050 Mobile]"
  Vendor: pci 0x10de "nVidia Corporation"
  Device: pci 0x1c8d "GP107M [GeForce GTX 1050 Mobile]"
  SubVendor: pci 0x1028 "Dell"
  SubDevice: pci 0x087c 
  Revision: 0xff
  Memory Range: 0xec000000-0xecffffff (rw,non-prefetchable)
  Memory Range: 0xc0000000-0xcfffffff (ro,non-prefetchable)
  Memory Range: 0xd0000000-0xd1ffffff (ro,non-prefetchable)
  I/O Ports: 0x3000-0x3fff (rw)
  Memory Range: 0xed000000-0xed07ffff (ro,non-prefetchable)
  IRQ: 16 (no events)
  Module Alias: "pci:v000010DEd00001C8Dsv00001028sd0000087Cbc03sc02i00"
  Driver Info #0:
    Driver Status: nouveau is not active
    Driver Activation Cmd: "modprobe nouveau"
  Driver Info #1:
    Driver Status: nvidia_drm is not active
    Driver Activation Cmd: "modprobe nvidia_drm"
  Driver Info #2:
    Driver Status: nvidia is not active
    Driver Activation Cmd: "modprobe nvidia"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #13 (PCI bridge)

28: PCI 02.0: 0300 VGA compatible controller (VGA)
  [Created at pci.386]
  Unique ID: _Znp.oMe2NkQFlO3
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Device Name: "Onboard IGD"
  Model: "Intel UHD Graphics 630 (Mobile)"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x3e9b "UHD Graphics 630 (Mobile)"
  SubVendor: pci 0x1028 "Dell"
  SubDevice: pci 0x087c 
  Driver: "i915"
  Driver Modules: "i915"
  Memory Range: 0xeb000000-0xebffffff (rw,non-prefetchable)
  Memory Range: 0x80000000-0x8fffffff (ro,non-prefetchable)
  I/O Ports: 0x4000-0x403f (rw)
  Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
  IRQ: 134 (151348 events)
  Module Alias: "pci:v00008086d00003E9Bsv00001028sd0000087Cbc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is active
    Driver Activation Cmd: "modprobe i915"
  Config Status: cfg=no, avail=yes, need=no, active=unknown

Primary display adapter: #28



There is no kernel driver loaded for your nvidia hardware.

It’s probably my ignorance of the whole bumblebee setup (I’m mostly a networking guy) but I thought this is what the Bumblebee daemon was supposed to take care of when you try to use the card, for instance through optirun?
Did I get that wrong? And if so, how do I get the kernel driver loaded the correct way when using Bumblebee?

I don’t have this hardware so can’t really advise specifically. Is this what you tried already?
https://en.opensuse.org/SDB:NVIDIA_Bumblebee
*The Tumbleweed steps in particular

It might help others to help you if you can explain what you’ve tried, and where you got to etc.

Perhaps a good idea to show the output of the following…

sudo systemctl status bumblebeed
sudo systemctl status dkms

Yes, I followed the official SDB which didn’t get the Nvidia card working. My results are exactly those of the OP of this thread. I also tried the steps listed here: https://forums.opensuse.org/showthread.php/531327-Anyone-get-Nvidia-Optimus-working-in-Leap-15?p=2873785#post2873785
Those didn’t work either, the end result is the same, unfortunately.

Alright, here you go:

● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/usr/lib/systemd/system/bumblebeed.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-02-06 09:00:14 CET; 16min ago
 Main PID: 2082 (bumblebeed)
    Tasks: 1 (limit: 4915)
   Memory: 1.9M
   CGroup: /system.slice/bumblebeed.service
           └─2082 /usr/sbin/bumblebeed

 

And the DKMS service:

● dkms.service - Dynamic Kernel Modules System
   Loaded: loaded (/usr/lib/systemd/system/dkms.service; enabled; vendor preset: disabled)
   Active: active (exited) since Wed 2019-02-06 09:00:14 CET; 16min ago
  Process: 1186 ExecStart=/usr/lib/systemd/system/dkms.systemd start (code=exited, status=0/SUCCESS)
 Main PID: 1186 (code=exited, status=0/SUCCESS)

feb 06 09:00:13 linux systemd[1]: Starting Dynamic Kernel Modules System...
feb 06 09:00:14 linux dkms.systemd[1186]: modprobe: ERROR: could not insert 'nvidia_drm': No such device
feb 06 09:00:14 linux dkms.systemd[1186]: modprobe: ERROR: could not insert 'nvidia': No such device
feb 06 09:00:14 linux dkms.systemd[1186]: modprobe: ERROR: could not insert 'nvidia_modeset': No such device
feb 06 09:00:14 linux dkms.systemd[1186]: modprobe: ERROR: could not insert 'nvidia_uvm': No such device
feb 06 09:00:14 linux systemd[1]: Started Dynamic Kernel Modules System.


Okay, so it seems it can’t find an NVidia module to load?

Zypper has this to say:


$ zypper se nvidia
Loading repository data...
Reading installed packages...

S  | Name                   | Summary                                                                       | Type      
---+------------------------+-------------------------------------------------------------------------------+-----------
i+ | nvidia-bumblebee       | Installer for the proprietary graphics driver for GeForce 6xxx and newer GPUs | package   
   | nvidia-bumblebee       | Installer for the proprietary graphics driver for GeForce 6xxx and newer GPUs | srcpackage
i+ | nvidia-bumblebee-32bit | Installer for the proprietary graphics driver for GeForce 6xxx and newer GPUs | package   
   | nvidia-texture-tools   | NVIDIA Texture Tools                                                          | package   
   | pcp-pmda-nvidia-gpu    | Performance Co-Pilot (PCP) metrics for the Nvidia GPU                         | package   



That’s just the installer, not the actual driver? Doesn’t the installation process pull that in? Guess we know why there’s no driver to load. Doesn’t seem to be one there?:sarcastic:

I have removed everything of Bumblebee that I could find, reversed all the steps from the official documentation and then did everything very carefully again, from scratch. However, the problem remains. The system can’t activate the NVidia card when requested. I guess Bumblebee doesn’t work on the Dell XPS 9570 for some reason which I can’t fathom.

Unfortunately, I can’t do things the old way, just disable the Intel card in the BIOS and run only on NVidia, so I can’t use my discrete graphics at all, which seems a shame. I’m open to suggestions, help, etc… Anyone? :expressionless:

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

Add yourself to the video group (here “username” should be replaced with your real username):

sudo usermod -aG video username

This hint helped me get my NVidia GTX 1050 to display my X session. But it wasn’t the whole story. I had to add the display managers I used (SDDM and, later, KDM) to the »video« group as well:

sudo usermod -aG video *username*
sudo usermod -aG video sddm
# ... and months later, *sudo usermod -aG video kdm* — as I learned by trial and error that KDM is much faster than SDDM with autologins

Some users with similar Bumblebee/NVidia problems solved have told me these usermods weren’t necessary anymore with Leap+Tumbleweed, but it can’t hurt to try. :slight_smile:

@unix111: Thank you for your suggestion. It won’t hurt to try.
I’ll report back here with my findings once I’ve had time to test!

Unfortunately, adding the sddm user to the video group makes no difference with regards to the error message. It’s still:

optirun glxgears
   71.659381] [ERROR]Cannot access secondary GPU - error: Could not enable discrete graphics card

   71.659415] [ERROR]Aborting because fallback start is disabled.


After searching further, I finally arrived at this thread: https://github.com/Bumblebee-Project/bbswitch/issues/140 which seems to describe the problem I am having.

bbswitch: enabling discrete graphics
pci 0000:01:00.0: Refused to change power state, currently in D3
pci 0000:01:00.0: Refused to change power state, currently in D3

Following advice in this thread, I decided to uninstall bbswitch from the Dell XPS and lo and behold, I can start the discrete GPU when using optirun!

optirun -vvv glxspheres
 5367.844735] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
 5367.852917] [INFO]Configured driver: nvidia
 5367.853236] [DEBUG]optirun version 3.2.1 starting...
 5367.853262] [DEBUG]Active configuration:
 5367.853275] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
 5367.853289] [DEBUG] X display: :8
 5367.853314] [DEBUG] LD_LIBRARY_PATH: /usr/lib64/nvidia:/usr/lib/nvidia
 5367.853333] [DEBUG] Socket path: /var/run/bumblebee.socket
 5367.853349] [DEBUG] Accel/display bridge: auto
 5367.853370] [DEBUG] VGL Compression: proxy
 5367.853390] [DEBUG] VGLrun extra options: 
 5367.853409] [DEBUG] Primus LD Path: /usr/lib64/primus:/usr/lib/primus
 5367.853574] [DEBUG]Using auto-detected bridge virtualgl
 5368.867279] [INFO]Response: Yes. X is active.

 5368.867314] [INFO]Running application using virtualgl.
 5368.867432] [DEBUG]Process vglrun started, PID 11861.
Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: GeForce GTX 1050/PCIe/SSE2
280.419504 frames/sec - 312.948166 Mpixels/sec
238.135725 frames/sec - 265.759469 Mpixels/sec
231.761183 frames/sec - 258.645480 Mpixels/sec
238.935969 frames/sec - 266.652542 Mpixels/sec

So far so good.

The problem that remains now is how to get my Steam games to run… :expressionless:

I can relate. Having installed Steam twice (once as Debian package using the »alien« deb-to-rpm tool while using openSUSE 42.3, later as RPM packages »steam« and »steamtricks«), I had to install several 32-bit libs manually because they weren’t explicitely listed as Steam dependencies.

I even had to tweak the startup scripts for some Steam games (e.g. »Lifeless Planet«), because they used pathnames that would be resolvable in a case-agnostic filesystem like HFS+ or NTFS, but not in a proper case-sensitive Unix filesystem like ext4.

Still, Steam seemed to have trouble starting games, installing its updates or providing in-game Steam overlay. Then, over at StackExchange or some such site I stumbled over this possibility of telling steam via environment variable to go for the openSUSE-packaged libs instead of Steam’s own debian-based libs:

STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam

… and behold, it worked. Maybe this can help you too, joopberis.

For solving Steam troubles however, it may be a good idea to open another seperate thread with an appropriate Steam-related subject. Cheers!