Comment 194 for bug 1803179

Revision history for this message
In , nheart (nheart-linux-kernel-bugs) wrote :

(In reply to Ranjith Hegde from comment #172)
> New problems in an old thread
>
> After using @Matthias Fulz's method (bumblebee without bbswitch + pm with
> powertop+tlp) its quite simple to run any software requiring nvidia. with
> his patch.
>
> The problem is in preventing any other software from using nvidia when not
> run with optirun/primusrun. For example, any software that calls for EGL
> automatically turns on nvidia. Mpv is one of those.
>
> Is there any way to ensure EGL calls intel instead? There is solution in
> arch wiki with env-variable
> "__EGL_VENDOR_LIBRARY_FILENAMES="/usr/share/glvnd/egl_vendor.d/50_mesa.json"
> "
>
> but it does not work. I have tried adding it in all possible places
> (/etc/environment, /etc/profile, bash-profile, zsh-profile-equivalent etc..)

Hey,

I was also struggling with those problems. What I do is that instead of removing the nvidia-audio from the PCIe Bus, I remove the nvidia card:

% cat /usr/local/bin/remove_nvidia
#!/usr/bin/bash
echo 1 > /sys/bus/pci/devices/0000:01:00.1/remove
echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove

I do this at boot via systemd. There is a post earlier that describes how to do it. You should also make sure that the nvidia modules are not loaded (should be taken care if you use bumblebee).

In order to re-enable the nvidia card when you need it, use:

% cat /usr/local/bin/add_nvidia
#!/usr/bin/env bash
echo 1 > /sys/bus/pci/rescan

You can modify your bumbleebee/optimus/primus scripts accordingly.