bumblebee needs configuration changes to work with nvidia-driver-390 and libglvnd0

Bug #1758243 reported by Rocko
198
This bug affects 41 people
Affects Status Importance Assigned to Milestone
bumblebee (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

bumblebee fails to work in Ubuntu 18.04 with nvidia-driver-390 unless these configuration changes are made:

1. For optirun to work, /etc/bumblebee/bumblebee.conf needs two library paths changed (because of the changes for GLVND):

[driver-nvidia]
LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input

With these changes, optirun works correctly on my laptop (using the primus bridge) but primusrun still fails.

2. For power management to work (ie turning the nvidia card off whilst not in use), the nouveau and nvidia modules need blacklisting so they don't load on boot, and nvidia_drm and nvidia_modeset need aliasing to off so they never load. Otherwise, nvidia_drm attaches to drm_kms_helper and then bumblebee can't unload the nvidia module and turn off the card. This configuration file in /etc/modprobe.d/nvidia-bl.conf works for me:

blacklist nouveau
blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_modeset
alias nouveau off
alias nvidia_drm off
alias nvidia_modeset off

(The first two lines are already in bumblebee.conf. I found I also had to alias nouveau to off because gdm?/mutter? so desperately wants to load it.)

Update: aliasing nouveau to off doesn't stop the nvidia-fallback service from loading the nouveau module, so if nouveau is still loading, you could try running this command:

systemctl disable nvidia-fallback.service

You'll need to reboot because nouveau is already loaded, but the change should be permanent unless something else re-enables the nvidia-fallback service.

Finally, to run mesa applications, you need to set this variable:

export __GLVND_DISALLOW_PATCHING=1

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: bumblebee 3.2.1-17
Uname: Linux 4.16.0-041600rc6-generic x86_64
ApportVersion: 2.20.8-0ubuntu10
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
Date: Fri Mar 23 12:18:02 2018
InstallationDate: Installed on 2017-08-16 (218 days ago)
InstallationMedia: Ubuntu 17.04 "Zesty Zapus" - Release amd64 (20170412)
SourcePackage: bumblebee
UpgradeStatus: Upgraded to bionic on 2017-11-17 (125 days ago)
modified.conffile..etc.bumblebee.xorg.conf.nouveau: [modified]
modified.conffile..etc.bumblebee.xorg.conf.nvidia: [modified]
mtime.conffile..etc.bumblebee.bumblebee.conf: 2018-03-23T12:17:54.683287
mtime.conffile..etc.bumblebee.xorg.conf.nouveau: 2018-03-22T14:01:52.732698
mtime.conffile..etc.bumblebee.xorg.conf.nvidia: 2018-03-22T14:57:34.141995

Revision history for this message
Rocko (rockorequin) wrote :
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in bumblebee (Ubuntu):
status: New → Confirmed
Revision history for this message
Roman Dinga (roman-dinga) wrote :

For me it doesn't work even with setting all the stuff mentioned here. Neither with intalling nvidia-prime, which sets different blacklisting. The error is that Nvidia GPU could not be found.

Revision history for this message
Rocko (rockorequin) wrote :

@Roman: it might be the systemd nvidia-fallback, which loads nouveau if the nvidia driver isn't loaded. I'm seeing this problem now even with my 'alias nouveau off' setting:

$ systemctl status nvidia-fallback.service
● nvidia-fallback.service - Fall back on nouveau if nvidia is not loaded
   Loaded: loaded (/lib/systemd/system/nvidia-fallback.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2018-04-25 08:47:30 AWST; 16min ago
  Process: 1013 ExecStart=/sbin/modprobe nouveau --config / (code=exited, status=0/SUCCESS)
 Main PID: 1013 (code=exited, status=0/SUCCESS)

Apr 25 08:47:29 xps15-9560 systemd[1]: Starting Fall back on nouveau if nvidia is not loaded...
Apr 25 08:47:30 xps15-9560 systemd[1]: Started Fall back on nouveau if nvidia is not loaded.

You could try doing:

systemctl disable nvidia-fallback.service

and rebooting to see if that fixes the problem.

Rocko (rockorequin)
description: updated
Revision history for this message
Juan Montero (jjmonrod) wrote :

This solution worked for me, but I had to manually install nvidia-dkms-390.
I think bumblebee-nvidia should pull in this package automatically.

My steps were:
1. apt purge nvidia* bumblebee*
2. apt install bumblebee-nvidia nvidia-dkms-390
3. edit the config file exactly as provided by Rocko in post #1
4. create the blacklist file accordingly
5. disable nvidia-fallback

After reboot, optirun works.

Revision history for this message
Juan Montero (jjmonrod) wrote :

Update: both optirun and primusrun crash when trying to load openGL.

They work as expected for non-opengl apps:
('optirun screenfetch' and 'primusrun screenfetch' both work and show the GPU correctly!)

-----------------------------
Output of 'optirun glxgears':
-----------------------------
X Error of failed request: BadMatch (invalid parameter attributes)
  Major opcode of failed request: 155 (GLX)
  Minor opcode of failed request: 11 (X_GLXSwapBuffers)
  Serial number of failed request: 37
  Current serial number in output stream: 38
primus: warning: dropping a frame to avoid deadlock
primus: warning: timeout waiting for display worker
terminate called without an active exception

-----------------------------
Output of primusrun glxgears:
-----------------------------
/usr/bin/primusrun: line 41: warning: command substitution: ignored null byte in input
primus: fatal: failed to load any of the libraries: /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1: cannot open shared object file: No such file or directory

This happens even after installing the full nvidia-driver-390 package (which includes nvidia-prime) and repeating all the steps mentioned in post #1.

Which package provides this openGL library and where is it located? Am I missing a symlink or a path?

Revision history for this message
Roman Dinga (roman-dinga) wrote :

@Rocko: unfortunately it didn't work. I've also tried the 5 commands by Juan Montero (purge and then reinstall), but it didn't help. Any idea what can be wrong?

Revision history for this message
Rocko (rockorequin) wrote :

@Roman: I don't know what might be wrong. You might be able to get more information with the command "systemctl status bumblebeed.service". Also, you could try "tail -f /var/log/syslog" in one terminal before running "optirun glxinfo" in another and check back on the tail output afterwards. "journalctl -e" might also have some relevant info.

Revision history for this message
Juan Montero (jjmonrod) wrote :
Download full text (51.9 KiB)

Sorry for the length of this post, I don't know how to attach multiple files.
I am pasting the output of the following commands:

----------------------------------------------------------
$ systemctl status nvidia-fallback.service
----------------------------------------------------------
● nvidia-fallback.service - Fall back on nouveau if nvidia is not loaded
   Loaded: loaded (/lib/systemd/system/nvidia-fallback.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

----------------------------------------------------------
$ systemctl status bumblebeed.service
----------------------------------------------------------
● bumblebeed.service - Bumblebee C Daemon
   Loaded: loaded (/lib/systemd/system/bumblebeed.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-05-01 11:39:50 CEST; 3min 11s ago
 Main PID: 727 (bumblebeed)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/bumblebeed.service
           └─727 /usr/sbin/bumblebeed

Mai 01 11:39:50 vesper bumblebeed[727]: [ 4.231860] [INFO]/usr/sbin/bumblebeed 3.2.1 started
Mai 01 11:39:50 vesper systemd[1]: Started Bumblebee C Daemon.
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816309] [WARN][XORG] (WW) Warning, couldn't open module mouse
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816321] [ERROR][XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816331] [WARN][XORG] (WW) NVIDIA(0): Unable to get display device for DPI computation.
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816335] [WARN][XORG] (WW) NVIDIA(0): Option "NoLogo" is not used
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816340] [WARN][XORG] (WW) Warning, couldn't open module mouse
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816343] [ERROR][XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816348] [ERROR][XORG] (EE) PreInit returned 2 for "<default pointer>"
Mai 01 11:40:21 vesper bumblebeed[727]: [ 34.816353] [ERROR][XORG] (EE) PreInit returned 2 for "<default keyboard>"

----------------------------------------------------------
$ tail -f /var/log/syslog (difference before and after optirun glxinfo)
----------------------------------------------------------
May 1 11:43:54 vesper kernel: [ 248.137858] bbswitch: enabling discrete graphics
May 1 11:43:54 vesper kernel: [ 248.253446] nvidia-nvlink: Nvlink Core is being initialized, major device number 241
May 1 11:43:54 vesper kernel: [ 248.253821] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 390.48 Thu Mar 22 00:42:57 PDT 2018 (using threaded interrupts)
May 1 11:43:54 vesper systemd[1]: Starting NVIDIA Persistence Daemon...
May 1 11:43:54 vesper nvidia-persistenced: Verbose syslog connection opened
May 1 11:43:54 vesper nvidia-persistenced: Now running with user ID 121 and group ID 127
May 1 11:43:54 vesper nvidia-persistenced: Started (2166)
May 1 11:43:54 vesper nvidia-persistenced: Failed to query NVIDIA devices. Please ensure that the NVIDIA device files (/dev/nvidia*) exist, and that user 121 has read and write permissions for those files.
May 1 11:43:54 vesp...

Revision history for this message
Rocko (rockorequin) wrote :

@Juan: I should have suggested running just optirun glxinfo|grep 'server glx vendor'!

Your logs show that bumblebee is working fine - the nvidia module loads and the X server starts. I get the same nvidia-persistenced and error loading the mouse module as you, but my 3D wine apps are working fine in optirun.

I should have tried "optirun glxheads" like in your comment #6 first, because I get the same BadMatch error as you when I try to run OpenGL apps (the call to X_GLXSwapBuffers fails).

The comment from bluca here https://github.com/Bumblebee-Project/Bumblebee/issues/951#issuecomment-385242063 suggests that it might be a problem in libglvnd0, so we should open another bug for this.

Revision history for this message
Rocko (rockorequin) wrote :
Revision history for this message
Roman Dinga (roman-dinga) wrote :

Hi Rocko,

This is the error I get in syslog:
May 2 11:02:59 rocky kernel: [ 424.518174] bbswitch: enabling discrete graphics
May 2 11:02:59 rocky bumblebeed[770]: libkmod: ERROR ../libkmod/libkmod-module.c:832 kmod_module_insert_module: could not find module by name='off'
May 2 11:02:59 rocky bumblebeed[770]: [ 424.980461] [ERROR]Could not load GPU driver

I've checked the services, bumblebeed is active, nvidia-fallback is inactive. I think that there is some config issue somewhere since it states that module name "off" is unknown. But I don't know where to look.

Revision history for this message
Rocko (rockorequin) wrote :

@Roman: it sounds like bumblebee is trying to load a module that has been aliased to 'off' somewhere in your /etc/modprobe.d folder. Is the configuration in /etc/bumblebee/bumblebee.conf set to load nouveau, perhaps? Or has the nvidia module been aliased to off by accident?

Revision history for this message
Roman Dinga (roman-dinga) wrote :

OK, after installing a fresh copy of Ubuntu 18.04 and executing exactly the steps mentioned here I managed to get to a state where you are. Non-GL apps work with optirun, GL apps throw BadMatch (invalid parameter attributes) error. So I'll wait until the bug you opened is solved. Then we will see.

Revision history for this message
Edmond Shwayri (eshwayri) wrote :

I am at the same point as well with 18.04. OpenGL fails with the same error, while everything else seems to work as expected. I guess no Steam for me until this is fixed.

Revision history for this message
Roman Dinga (roman-dinga) wrote :

For me switching to Nvidia card using the Nvidia settings tool or prime-select works like a charm. Also when I set the kernel parameter nvidia-drm.modeset=1 I get a tear-free experience, which is excellent. So while this is not fixed, I can fully use the Nvidia card by switching to it entirely.

Revision history for this message
Alexander Lochmann (alexander-lochmann) wrote :

I can confirm as of today this bug is still present.
I made the changes suggested by Rocko. Still primusrun does not work properly.

Revision history for this message
JT (ajackofsometrades) wrote :

I have the exact same issue with the exact same error messages as the original post.

Revision history for this message
JT (ajackofsometrades) wrote :

Whoops, I meant to say that I have the exact same error messages as Juan in post #6 (https://bugs.launchpad.net/ubuntu/+source/bumblebee/+bug/1758243/comments/6)

Revision history for this message
Rocko (rockorequin) wrote :

From the attached bumblebee issue, carlicious recently posted that a fix for running Ubuntu apps other than wine is to set __GLVND_DISALLOW_PATCHING=1 (and this works for me - I tried running 0ad, glxheads).

description: updated
Revision history for this message
JT (ajackofsometrades) wrote :

Thanks, that solved it. I had a million tabs open, and I guess I missed that line late in his OP.

Revision history for this message
Juan Montero (jjmonrod) wrote :

The fix from post #20 solved the issue.
Now both glxgears and glxheads work.

Revision history for this message
Peter Curtis (pdcurtis) wrote :

I can confirm that the full procedure covered in #1 and #5 has worked for me once I added one addition change. I found a file in /etc/modprobe.d with the line "alias nvidia off" which prevented bumblebee from loading the nvidia module. It was in /etc/modprobe.d//blacklist-nvidia.conf which I believe is created by prime-select and remained although nvidia-prime had been purged. I commented out the line and restarted bumblebee with "sudo systemctl restart bumblebeed" and everything then worked.

Revision history for this message
Mochamad Taufan Rezzafri (rezzafri) wrote :

these two lines is no longer necessary.

alias nvidia_drm off
alias nvidia_modeset off

fixes for drm device handling on systemd c238/239 is backported to systemd 237-3ubuntu10.2 (bug #1777099)
these fixes also help nvidia-xrun to unload nvidia, nvidia_uvm, nvidia_drm, and nvidia_modeset module

https://launchpad.net/ubuntu/bionic/+source/systemd/+changelog

Revision history for this message
JORGETECH (jorgetech) wrote :

I would recommend keeping the "nvidia_drm" and ”nvidia_modeset" aliases since removing them caused me problems (system freezes after running primusrun/optirun or loading the nvidia kernel module).

Revision history for this message
Rocko (rockorequin) wrote :

FWIW, I've found that optirun doesn't work in Ubuntu 18.10 - the nvidia module loads but as soon as the application tries to create a 3D window, the appliction exits - but primusrun does work, so long as you ensure the path to its libGL is correct, as per https://github.com/Bumblebee-Project/Bumblebee/issues/951#issuecomment-379512353:

eg PRIMUS_libGL=/usr/lib/x86_64-linux-gnu/libGL.so.1 primusrun 0ad

or I think you can also modify your primusrun file directly, as per https://github.com/Bumblebee-Project/Bumblebee/issues/951#issuecomment-412314114.

Revision history for this message
zubozrout (zubozrout) wrote :

@rockorequin - I seem to be able to launch apps with primusrun setting the correct libGL path, but although apps launch that way they are actually not using Nvidia but only the integrated Intel GPU (at least I don't see any performance improvements). In the bumblebee lok I can then see the following issue:

[ERROR]Module 'nvidia' is not found.

and also this, which seems bad (strangely modprobe seems to be able to load that module just fine but the error in bumblebee is persistent even after restarting the service after modprobe passed):

[ERROR]Module 'bbswitch' not found.
[WARN]No switching method available. The dedicated card will always be on.

I am on 18.10 and so far have been completely unable to use Bumblebee with still not so old Nvidia MX150 GPU. I've tried it with all drivers starting with 390 and ending with 415. So the only solution is to is to switch gpu using prime-select which is quite unpleasant having to re-login after each switch.

Revision history for this message
zubozrout (zubozrout) wrote :

Btw, I've tried to follow this guide (among others) which seems quite complex but is is a complete no-go for me: https://float-middle.com/ubuntu-18-04-steam-and-nvidia-390/

Also tested this on a more recent device (mine is about a year old) with Nvidia GTX 1500 Max-Q also running Ubuntu 18.10 and that was not successful either - so I am more confident this is not a hardware specific issue.

Revision history for this message
Rocko (rockorequin) wrote :

@zubozrout: I got the same error (Module 'nvidia' is not found) when I tried it just now. I had to alter the /etc/bumblebee/bumblebee.conf XorgModulePath in 18.10 to get optirun to work with the nvidia 415 driver:

XorgModulePath=/usr/lib/x86_64-linux-gnu/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input
X

and restart bumblebee (sudo systemctrl restart bumblebeed).

Note that the path used to start with /usr/lib/x86_64-linux-gnu/nvidia/xorg, but it looks like the module now goes just in /usr/lib/x86_64-linux-gnu/xorg:

$ ls /usr/lib/x86_64-linux-gnu/xorg
libglxserver_nvidia.so libglxserver_nvidia.so.415.25 nvidia_drv.so

Not finding bbswitch shouldn't be such a big issue with newer kernals, because the kernel should be able to suspend the card automatically. You could try the latest bumblebee testing PPA (https://launchpad.net/~bumblebee/+archive/ubuntu/testing) and put this line into the [driver-nvidia] section of bumblebee.conf before restarting it:

AlwaysUnloadKernelDriver=true

For more details, see https://github.com/Bumblebee-Project/Bumblebee/issues/978 and specifically https://github.com/Bumblebee-Project/Bumblebee/issues/978#issuecomment-415332707.

There's no cosmic driver in that PPA, but the bionic one works just fine on my cosmic.

Revision history for this message
Rocko (rockorequin) wrote :

And just to correct some typos in my comment above: the extra X shouldn't appear after that XorgModulePath= line, and of course it's systemctl not systemctrl for restarting the daemon.

Revision history for this message
Juan Montero (jjmonrod) wrote :

I just did a fresh install of the Disco beta, with nvidia-driver-418, bumblebee-3.2.1-20 and the manual configuration is still required, as follows:

1. The first change needed is to edit /etc/bumblebee/bumblebee.conf as follows:

LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia-418/xorg,/usr/lib/xorg/modules,$
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

This was expected because the path is different for every NVIDIA driver.

2. The second change needed was to export this:

export __GLVND_DISALLOW_PATCHING=1

And with these two changes everything works.

3. The nvidia-fallback.service isn't installed so no need to disable it.

4. And about the aliases, should I leave them for safety? I don't see anything wrong by not putting them, I don't have any freezes on my laptop.

Revision history for this message
Juan Montero (jjmonrod) wrote :

Sorry, the path is cropped in my previous post.
The correct path is:

LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia-418/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

Revision history for this message
Richard Anthony Horan (richard378) wrote :

Note: Also export PRIMUS_libGL=/usr/lib/x86_64-linux-gnu/libGL.so.1 to make primusrun work.
And #31 and #32 works for nvidia-dkms-430 with the above environment variable

Revision history for this message
Stefan Helmert (stefan-helmert) wrote :

These proposed way seems to work for me. What are the next steps to bring it upstream?

Revision history for this message
Stefan Helmert (stefan-helmert) wrote :

Very important: I had to select "intel" in nvidia-settings to prevent loading the blacklisted nvidia driver by nvidia-persistenced.

Revision history for this message
Pen Gale (pengale) wrote :

I had all this working wonderfully on a Thinkpad T480 on Ubuntu Disco, until a recent reboot after an update (possibly due to kernel 5.0.0-27, possibly due to a udev update)

bbswitch would fail to enable the card, with the following in dmesg:

pci 0000:00:01.0: Refused to change power state, currently in D3

After a lot of futzing about and installing/reinstalling, the steps mentioned in the OP, #31, #32 and #35 worked, with the following change to bumblebee.conf:

PMMethod=none

I think that this means that my nvidia card is on all the time -- I'm not sure how to check its state with bbswitch disabled -- but I can at least run the desktop off of the Intel card, and games and such off of the nvidia card, which helps with stability and heat for me.

(It's possible that I did something to change the acpi power management settings when booting the kernel, and those changes got blown up by the update.)

Revision history for this message
Pen Gale (pengale) wrote :

A followup to the above (#36):

I think that my kernel might be switching the card on and off successfully, w/out the use of bbswitch. If I `optirun glxgears`, I can see the card being used via nvidia-smi (and via a sensors plugin I've got running in gnome). When I close the process, nvidia-smi reports the card as off.

In short: the above instructions worked for me, after turning bbswitch off, due to the 5.0 kernel recognizing my MX150 and switching it on/off as appropriate.

That's pretty darn cool!

Revision history for this message
Rocko (rockorequin) wrote :

@Pete:

Yes, more recent kernels now can automatically power down the nvidia card off when it's not in use, so you don't need bbswitch anymore.

What's even more cool is that with the nvidia 435.21 driver and the version of X that comes with Ubuntu 19.10, you don't even need bumblebee any more: if you enable nvidia load-on-demand in nvidia-settings, you get an intel desktop with the nvidia card pretty much powered down but you can run any application using the nvidia card by exporting these variables first:

export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia

Of course, when the application finishes, the kernel powers down the nvidia card again.

VUlkan is also very cool: I export this variable as well to ensure it gets used for the nvidia card:

export __VK_LAYER_NV_optimus=NVIDIA_only

Revision history for this message
Mathieu Reho (mreho) wrote :

@Rocko

Hello,
Thank you for your help. Unfortunately your solution isn't working for me.
I enabled the "NVIDIA On-Demand" parameter from nvidia-settings, then restarted my computer and exported all the env variables. I tried to launch a game, CS:GO for example, and when I type "mat_info" to see on which graphic chip it started, it tells me "Intel Graphics 630".
It is starting on my Nvidia chip only if I force it in "PRIME Profiles" from nvidia-settings panel.
Maybe if I make an "Application Profile" for all the programs that need graphic ressources I can get around the problem..

I run on a Dell XPS 15 7590, with Ubuntu 19.10 installed and kernel 5.3.0-18-generic.
The installed Nvidia driver is 435.21-0ubuntu2.

If someone have a suggestion, please let me know :)

Revision history for this message
Marcos Alano (mhalano) wrote : Re: [Bug 1758243] Re: bumblebee needs configuration changes to work with nvidia-driver-390 and libglvnd0
Download full text (4.2 KiB)

Hi!

I thought NVIDIA On-demand would be enabled with the next version of
xserver. Wouldn't it?

Marcos Alano
Linux System Administrator
<email address hidden>

On Thu, Oct 17, 2019, 06:41 Mathieu Reho <email address hidden> wrote:

> @Rocko
>
> Hello,
> Thank you for your help. Unfortunately your solution isn't working for me.
> I enabled the "NVIDIA On-Demand" parameter from nvidia-settings, then
> restarted my computer and exported all the env variables. I tried to launch
> a game, CS:GO for example, and when I type "mat_info" to see on which
> graphic chip it started, it tells me "Intel Graphics 630".
> It is starting on my Nvidia chip only if I force it in "PRIME Profiles"
> from nvidia-settings panel.
> Maybe if I make an "Application Profile" for all the programs that need
> graphic ressources I can get around the problem..
>
> I run on a Dell XPS 15 7590, with Ubuntu 19.10 installed and kernel
> 5.3.0-18-generic.
> The installed Nvidia driver is 435.21-0ubuntu2.
>
> If someone have a suggestion, please let me know :)
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1758243
>
> Title:
> bumblebee needs configuration changes to work with nvidia-driver-390
> and libglvnd0
>
> Status in bumblebee package in Ubuntu:
> Confirmed
>
> Bug description:
> bumblebee fails to work in Ubuntu 18.04 with nvidia-driver-390 unless
> these configuration changes are made:
>
> 1. For optirun to work, /etc/bumblebee/bumblebee.conf needs two
> library paths changed (because of the changes for GLVND):
>
> [driver-nvidia]
> LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu
>
> XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input
>
> With these changes, optirun works correctly on my laptop (using the
> primus bridge) but primusrun still fails.
>
> 2. For power management to work (ie turning the nvidia card off whilst
> not in use), the nouveau and nvidia modules need blacklisting so they
> don't load on boot, and nvidia_drm and nvidia_modeset need aliasing to
> off so they never load. Otherwise, nvidia_drm attaches to
> drm_kms_helper and then bumblebee can't unload the nvidia module and
> turn off the card. This configuration file in /etc/modprobe.d/nvidia-
> bl.conf works for me:
>
> blacklist nouveau
> blacklist nvidia
> blacklist nvidia_drm
> blacklist nvidia_modeset
> alias nouveau off
> alias nvidia_drm off
> alias nvidia_modeset off
>
> (The first two lines are already in bumblebee.conf. I found I also had
> to alias nouveau to off because gdm?/mutter? so desperately wants to
> load it.)
>
> Update: aliasing nouveau to off doesn't stop the nvidia-fallback
> service from loading the nouveau module, so if nouveau is still
> loading, you could try running this command:
>
> systemctl disable nvidia-fallback.service
>
> You'll need to reboot because nouveau is already loaded, but the
> change should be permanent unless something else re-enables the
> nvidia-fallback service.
>
> Finally, to run mesa applications, you need to set this variable:
...

Read more...

Revision history for this message
Mathieu Reho (mreho) wrote :

Hello,

I just added these env variables before the command line and it works perfectly fine !

For example :

$> __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%

It is not necessary to export them first, the best way is to set them in the command line like I did, in order to have them only for this instance, and not for the entire system.

@Marcos : Exactly, you're right => https://www.linuxuprising.com/2019/08/nvidia-43517-linux-beta-driver-adds.html

Thank you anyway :)

Revision history for this message
Rocko (rockorequin) wrote :

@Matthieu: Yes, nvidia on-demand works great in Ubuntu 19.10 with those two variables. I also include this one (it's to make Vulkan only use the nvidia card - Vulkan works really well for running DX 11 wine apps using dxvk):

__VK_LAYER_NV_optimus=NVIDIA_only

Revision history for this message
JORGETECH (jorgetech) wrote :

@Rocko Do you now if the new NVIDIA PRIME offloading support works with AMD (CPU) + Nvidia combo? I know someone who has one of those laptops and I was amazed to discover there was not a single working solution for that combo (which is understandable since those laptops are very recent).

How is the power consumption with pre-Turing cards (e.g. GTX 1080)?

Revision history for this message
lost (lost06) wrote :

there is something wrong with primus-libs in Ubuntu. the libGL.so.1 is hard-coded in primus lib
I run also the same version in Debian no bug! The trick create /usr/lib/x86_64-linux-gnu/mesa

and copy in libGL.so.1 and primusrun will not complain.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.