XPS 9570 and nvidia dGPU - up to date solution to switch GPU ?

Hello manjaro community,

I am beginning with manjaro and happy to do so. It's a new experience for me after two enjoyable years on linux mint xfce.

I got a brand new Dell XPS 9570, i7 and GTX 1050 Ti. I easily installed manjaro KDE on it, dual boot with windows, fully working. I selected "non-free" drivers and it obviously installed bumblebee, and its mixed intel/nvidia driver. The dGPU is not used in this config on this laptop.

I read a lot on the intel GPU / nvidia GPU configuration and difficulties on this laptop. But threads on forums are getting older, posted in 2018, and show no clear solution. I am interested in the discrete GPU activation for one thing : photo edition on darktable (only OpenCL abilities are useful here). So I have tried the second option from https://wiki.archlinux.org/index.php/Dell_XPS_15_9570
I am note sure if this page is up to date and if it works. I installed bumblebee-forceunload from AUR and followed the other instructions (conf files to create). But unfortunately it ended up with no possible boot, it's stuck during the boot process somewhere after some services are enabled, TLP system started, and the last line is "{OK} started WPA supplicant". And then blinking cursor.

I tried the following actions :

  • add "acpi-rev-override=1" in the kernel option, no success
  • chroot in the installed manjaro from the USB live, to check whether I correctly set the files, and to be sure that "nouveau" was blacklisted (indeed it has been automatically blacklisted by mwhd in a config file).

Another thing : I unabled a few services. I have been rather careful (just services like bluetooth for instance), but I could make an error.

Could you give me a hand ? I would like to know which action I should try to boot again. Then I will go on with nvidia GPU config.

Hello,

I finally could boot my system.

I chrooted and uninstall nvidia 390 driver, then let mhwd install automatically nonfree nvidia driver.

However, for what I have to do now about dGPU, I would like to know : is the "hybrid bumblebee driver" OK to have dGPU working on my laptop ? I read everywhere "install nvidia proprietary driver", and read nothing about the hybrid driver. That's why I made an attempt to uninstall it, and install pure nvidia driver, resulting in a no-booting system. Now I am back with the hybrid driver, but I don't know if I can go further with it.

Can anyone give me any directions ?

Girafenaine

1 Like

on an optimus laptop the default that manjaro uses is bumblebee and it often has problems like the ones you had. it also has limitations that the other optimus solutions dont. here's a short comparison between the different options you have:

i usually suggest prime or optimus-switch, prime uses both nvidia and intel gpu's full time, optimus-switch lets you switch between prime mode and intel only mode for power savings. see what fits your needs and use the links to each tutorial. both of those i suggested are simple to setup if you follow the directions. if you run into issues just ask here.

Hello dglt,

Thank you very much for your answer and link.

I don't find convenient to have to reboot to change GPU, so prime and optimus-switch are not the ones I want to try first.

I have just tried optimus manager thanks to your link and this thread : https://archived.forum.manjaro.org/t/guide-install-and-configure-optimus-manager-for-hybrid-gpu-setups-intel-nvidia/92196/6. This guide is perfect, thanks to michaldybczak.

Unfortunately, when I tell optimus manager to switch, it log out and in again, but cannot load nvidia driver. In optimus manager logs, I can read this :
"Cannot load Nvidia modules : Failed to execute 'modprobe nvidia NVreg_UsePageAttributeTable=1' : modprobe: ERROR: could not insert 'nvidia': No such device"
and :
"Error : cannot setup PRIME : Cannot setup PRIME : Failed to execute 'xrandr --setprovideroutputsource modesetting NVIDIA-0' :"

It seems like it can't even see nvidia. I have nvidia-intel-hybrid bumblebee driver installed with mhwd.

Is there any config files to check, or driver to modify ?

Girafenaine

for some reason xorg-xrandr does not or no longer gets installed with the nvidia drivers.
the xrandr script relies on the xorg-xrandr package. installing xorg-xrandr should take care of your issue. at least in regards to prime or optimus-switch, for optimus-manager maybe @michaldybczak someone else that uses it could point you in the right direction.

Thanks for you quick help.

I installed xorg-xrand. The logs show the same error !

There is probably something else about nvidia driver or config itself. I am looking for some good ideas online.

Girafenaine

if you installed optimus-manager, did you first run the --cleanup script before uninstalling it?

what are you currently trying to get working? prime?

if yes, post these outputs:

inxi -Fxxxz
mhwd -li
mhwd-kernel -li
ls -laR /etc/X11 ; ls -la /etc/modprobe.d/ ; ls -la /etc/modules-load.d/
pacman -Qs | grep -Ei "-headers|-nvidia|xrandr|dkms"

Hello dglt,

I didn't uninstall optimus-manager, and didn't run the cleanup script (I read it is intended before uninstalling).

I am trying to be able to have intel iGPU working most of the time with low power use, and to have nvidia dGPU working with some applications (darktable). On arch wiki XPS 9570 page, two solutions are put forward, one with specific loading/unloading drivers scripts, the other with a tweaked bumblebee. I don't know if optimus manager can run on this machine.

Here are the requested outputs :

Host: Makroudh Kernel: 4.19.59-1-MANJARO x86_64 bits: 64 compiler: gcc v: 9.1.0 
           Desktop: KDE Plasma 5.16.3 tk: Qt 5.13.0 wm: kwin_x11 dm: SDDM Distro: Manjaro Linux 
Machine:   Type: Laptop System: Dell product: XPS 15 9570 v: N/A serial: <filter> Chassis: type: 10 
           serial: <filter> 
           Mobo: Dell model: 0D0T05 v: A00 serial: <filter> UEFI: Dell v: 1.8.1 date: 02/01/2019 
Battery:   ID-1: BAT0 charge: 87.4 Wh condition: 87.4/97.0 Wh (90%) volts: 13.2/11.4 
           model: SMP DELL GPM0365 type: Li-ion serial: <filter> status: Full 
CPU:       Topology: 6-Core model: Intel Core i7-8750H bits: 64 type: MT MCP arch: Kaby Lake rev: A 
           L2 cache: 9216 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 53004 
           Speed: 1380 MHz min/max: 800/4100 MHz Core speeds (MHz): 1: 923 2: 1004 3: 1004 4: 923 5: 993 
           6: 1004 7: 1001 8: 970 9: 1007 10: 1003 11: 1004 12: 1007 
Graphics:  Device-1: Intel UHD Graphics 630 vendor: Dell driver: i915 v: kernel bus ID: 00:02.0 
           chip ID: 8086:3e9b 
           Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] driver: N/A bus ID: 01:00.0 
           chip ID: 10de:1c8c 
           Display: x11 server: X.Org 1.20.5 driver: modesetting unloaded: intel alternate: fbdev,vesa 
           compositor: kwin_x11 resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa DRI Intel UHD Graphics 630 (Coffeelake 3x8 GT2) v: 4.5 Mesa 19.1.2 
           compat-v: 3.0 direct render: Yes 
Audio:     Device-1: Intel Cannon Lake PCH cAVS vendor: Dell driver: snd_hda_intel v: kernel 
           bus ID: 00:1f.3 chip ID: 8086:a348 
           Sound Server: ALSA v: k4.19.59-1-MANJARO 
Network:   Device-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter vendor: Bigfoot Networks 
           driver: ath10k_pci v: kernel port: efa0 bus ID: 3b:00.0 chip ID: 168c:003e 
           IF: wlp59s0 state: up mac: <filter> 
           Device-2: Qualcomm Atheros type: USB driver: btusb bus ID: 1-4:3 chip ID: 0cf3:e300 
Drives:    Local Storage: total: 480.69 GiB used: 9.75 GiB (2.0%) 
           ID-1: /dev/nvme0n1 vendor: Toshiba model: KXG60ZNV512G NVMe 512GB size: 476.94 GiB 
           speed: 31.6 Gb/s lanes: 4 serial: <filter> rev: 10604103 scheme: GPT 
           ID-2: /dev/sda type: USB model: SMI USB DISK size: 3.75 GiB serial: <filter> rev: 1100 
           scheme: MBR 
Partition: ID-1: / size: 412.33 GiB used: 9.68 GiB (2.3%) fs: ext4 dev: /dev/nvme0n1p7 
Sensors:   System Temperatures: cpu: 46.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 251 Uptime: 1h 22m Memory: 15.32 GiB used: 1.44 GiB (9.4%) Init: systemd v: 242 
           Compilers: gcc: 9.1.0 Shell: bash v: 5.0.7 running in: konsole inxi: 3.0.34
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-bumblebee            2018.08.09               false            PCI


Warning: No installed USB configs!
> Currently running: 4.19.59-1-MANJARO (linux419)
The following kernels are installed in your system:
   * linux419
   * linux51
ls -laR /etc/X11
/etc/X11:
total 32
drwxr-xr-x  5 root root 4096 12 mars  10:39 .
drwxr-xr-x 91 root root 4096 20 juil. 21:19 ..
drwxr-xr-x  2 root root 4096 20 juil. 15:02 mhwd.d
drwxr-xr-x  3 root root 4096 12 mars  10:40 xinit
drwxr-xr-x  2 root root 4096 20 juil. 20:17 xorg.conf.d

/etc/X11/mhwd.d:
total 16
drwxr-xr-x 2 root root 4096 20 juil. 15:02 .
drwxr-xr-x 5 root root 4096 12 mars  10:39 ..
-rw-r--r-- 1 root root  581 20 juil. 15:02 intel.conf
-rw-r--r-- 1 root root    0 20 juil. 14:37 nvidia.conf.nvidia-xconfig-original

/etc/X11/xinit:
total 28
drwxr-xr-x 3 root root 4096 12 mars  10:40 .
drwxr-xr-x 5 root root 4096 12 mars  10:39 ..
-rw-r--r-- 1 root root  739  4 mars  19:31 xinitrc
drwxr-xr-x 2 root root 4096 17 juil. 22:47 xinitrc.d
-rw-r--r-- 1 root root   45  4 mars  19:31 xserverrc

/etc/X11/xinit/xinitrc.d:
total 20
drwxr-xr-x 2 root root 4096 17 juil. 22:47 .
drwxr-xr-x 3 root root 4096 12 mars  10:40 ..
-rwxr-xr-x 1 root root  318  9 nov.   2018 40-libcanberra-gtk-module.sh
-rwxr-xr-x 1 root root  203 17 juil. 22:21 50-systemd-user.sh

/etc/X11/xorg.conf.d:
total 24
drwxr-xr-x 2 root root 4096 20 juil. 20:17 .
drwxr-xr-x 5 root root 4096 12 mars  10:39 ..
-rw-r--r-- 1 root root  303 17 juil. 18:25 00-keyboard.conf
-rw-r--r-- 1 root root  184 20 juil. 15:05 01-noautogpu.conf.bak
-rw-r--r-- 1 root root  306 20 juil. 15:05 20-intel.conf.bak
lrwxrwxrwx 1 root root   26 20 juil. 15:02 90-mhwd.conf.bak -> /etc/X11/mhwd.d/intel.conf
[etienne@Makroudh optimus-manager]$ 
ls -la /etc/modprobe.d/
total 28
drwxr-xr-x  2 root root 4096 20 juil. 15:02 .
drwxr-xr-x 91 root root 4096 20 juil. 21:19 ..
-rw-r--r--  1 root root   84 20 juil. 10:37 blacklist.conf
-rw-r--r--  1 root root  105 20 juil. 15:02 mhwd-bbswitch.conf
-rw-r--r--  1 root root   58 20 juil. 14:58 mhwd-gpu.conf
-rw-r--r--  1 root root  194 20 juil. 15:02 mhwd-nvidia.conf
ls -la /etc/modules-load.d/
total 20
drwxr-xr-x  2 root root 4096 20 juil. 14:58 .
drwxr-xr-x 91 root root 4096 20 juil. 21:19 ..
-rw-r--r--  1 root root   58 20 juil. 14:58 mhwd-gpu.conf
-rw-r--r--  1 root root   34 30 sept.  2018 modules.conf
pacman -Qs | grep -Ei "-headers|-nvidia|xrandr|dkms"
    Access control list utilities, libraries and headers
    Free peer-reviewed portable C++ source libraries - development headers
local/lib32-nvidia-utils 1:430.26-1
    The CUPS Printing System - client libraries and headers
local/libxrandr 1.5.2-1
local/linux-api-headers 5.1-1
    Kernel headers sanitized for use in userspace
local/linux419-nvidia 1:430.26-9 (linux419-extramodules)
local/linux51-nvidia 1:430.26-9 (linux51-extramodules)
local/mhwd-nvidia 1:430.26-1
local/mhwd-nvidia-340xx 340.107-1
local/mhwd-nvidia-390xx 390.116-1
    Common libraries and headers for wxgtk2 and wxgtk3
local/xorg-xrandr 1.5.0-2 (xorg-apps xorg)
    combined X.Org X11 Protocol headers

im not the best person to ask about optimus-manager seeing as how i was never able to get it functioning properly the few times i tried. from what i understand optimus manager uses bbswitch and nouveau to enable/disable the nvidia gpu, and both have their own issues.

if vulkan/dxvk, or the best performance are not your priorities then it seems bumblebee would be your best fit. if so, run the cleanup script for optimus-manager and uninstall it.

then remove the currently installed drivers and make sure the files that may be leftover afterwards are gone.

  • remove optimus-manager
  • uninstall bumblebee (you will be installing it again in a minute)
sudo mhwd -r pci video-hybrid-intel-nvidia-bumblebee
  • check these directories for any video/mhwd related .conf files and delete them.
/etc/X11/xorg.conf.d/
/etc/X11/mhwd.d/
/etc/modprobe.d/
/etc/modules-load.d

when you sure those steps are done:

sudo mhwd -a pci nonfree 0300
sudo systemctl enable bumblebeed

just to be clear, im not recommending you use bumblebee, it just seems to be what your describing if you ignore it's downsides.

Thanks for your time !

I agree that bumblebee could be a solution for me. OK for the process to get ride of optimus-manager. I understand there is little hope to have it working. If anyone has clues, I could try further.

But what you described will lead me in the initial state : bumblebee was installed by mhwd when I installed Manjaro KDE. It did not let me enable nvidia dGPU, which seems to be a common matter for XPS 9570. I have to try something else ! And my first attempt with modified bumblebee-forceunload led to no Xorg. That' how I came to optimus-manager.

Any other ideas to try ? Before I uninstalled optimus-manager with the whole process of your post.

Girafenaine

PS I edited thread title to better explain my needs, since my system is now able to boot but I am still looking for an up to date solution to use dGPU on XPS 9570.

running these apps with optirun or primusrun didnt work? is that what your saying?

if yes, the only thing i could suggest with bumblebee is trying kernel parameters with it to make bbswitch function properly.


if you go this way, i would start with acpi_osi=! acpi_rev_override=1 since it seems to work well with dell laptops.

the reason i suggested prime or optimus-switch is because they i know they both work. if you want help with getting optimus-manager working then you should start a new thread with "help with optimus-manager" for example and include the outputs i asked you to post so others may see. the OP of this thread was in regard to not being able to boot and you have already resolved it.

you'll get more eyes on a well titled thread that includes the needed info then you will with this thread.

edit: i marked post #2 as solution since it fixed the OP issue

People constantly get it wrong. There is no nvidia-intel-hybrid bumblebee driver. It's a name of the setup type in mhwd script. Basically what it does is: it installs intel drivers, nvidia drivers and bumblebee and configures it to work.

You don't have to uninstall it or anything. During optimus-manager setup you are disabling mhwd configs and bumblebee itself so this doesn't matter. Bumblebee can still be uninstalled but if its daemon is inactive, it's just harmless and not doing anything.

As to the issue with:

 Failed to execute 'xrandr --setprovideroutputsource modesetting NVIDIA-0' :"

it can have something to do with your messing with the drivers but it can be a simple configure mismatch with your hardware.

Optimus manager by default uses noveau for the switch. Did you try changing it to bbswitch?

Also, maybe you need to manually change your monitor number for it to work?
I may be wrong but it looks more like a problem with ascribing nvidia to draw the output on a monitor because it can't find the screen.

What output do you have when you type this command?

xrandr

For me at the beginning of the output I see:

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192

which tells me that the screen has number 0 and that is true for most configurations. If that is different for you, this is the reason for the issue and that can be fixed rather easily.

1 Like

Hello,

Thanks for your help.

@dglt : yes optirun and primusrun don't work with bumblebee on this laptop. You have no access to the dGPU with auto mhwd installation.

@michaldybczak : thanks for your answers. OK for the drivers, i got it now. I have now optimus-manager working... at least a little. I don't have this xrand error anymore but I don't know how I got rid of it.

I tried a little more with optimus-manager, and succeed in getting nvidia dGPU to work. I could verify that my Darktable software can takde advantage of the OpenCL (3 times faster test than without dGPU and OpenCL).

However, it 's not that convenient :

  • with nouveau as "switching backend", I can reach nvidia only if it boots with nvidia. Booting with intel leads to no nvidia switch possible. Furthermore when switching from nvidia to intel, the power management seems not to power down the nvidia dGPU. There is still an "xrandr" error, but now only in the prime-setup.log . xrandr outputs the same thing as you get, with "screen 0". It looks like this :
019-07-21 07:35:34 PM +0200 ==================== 

Optimus Manager (Setup script) version 1.1
Setting up PRIME
Checking status of optimus-manager.service
Loading config
Running xrandr commands
Error : cannot setup PRIME : Cannot setup PRIME : Failed to execute 'xrandr --setprovideroutputsource modesetting NVIDIA-0' : 
  • with bbswitch, the switch does not change from intel to nvidia. There is auto logout and i can login again, but it sticks with intel iGPU. In the /var/log/optimus-manager/gpu-setup.log :
Loading bbswitch module
Setting GPU power to ON via bbswitch
Cannot setup GPU : kernel setup error : bbswitch failed to set the GPU to ON

I will investigate a little more, and probably try something else with modified bumblebee.forceunload later.

Girafenaine

unless it's part of optimus-manager's instructions you probably shouldnt use it. the thing with bbswitch is that it almost always needs the right kernel parameters for it to function properly. i dont know about the rest of it but using the right kernel parameter should be able to get bbswitch functioning.

I already mentioned in my guide that very often nouveau isn't working too well so switching to bbswitch may resolve all your switch issues. People who have problem with nouveau describe them in the same way as you did so the chances are high that all starts to work fully OK after the change of that setting.

Remeber that changing this setting may brake your boot into graphical session but you can still log in in tty and change the setting back manually. All is written at the end of my guide.

Screenshot_20190721_213923

@dglt is right. Don't overdo. With optimus-manage bumblebee has no chance of working. You would had to uninstall optimus-manager and do cleaup command, then reverse all manual changes and only then some bumblebee setup MAY work. So it's a lot of work and since optimus-manager is kinda working, I think the best chance is to try out bbswitch. In all previous cases, this was the solution.

1 Like

Hello,

  1. I don't want to mix optimus-manager with bumblebee. I was not clear enough, but I first would like to have optimus-manager to work. And only in the case I don't meet success, I would uninstall optimus-manager, and then try again the bumblebee-forceunload procedure that some have set on the same laptop. They are two different procedures not to be mixed, no matter about that.

  2. Optimus-manager : as I wrote above, the "bbswitch" does not work for me, as it is not able to switch from intel to nvidia GPU. It seems that optimus-manager cannot call for bbswitch, or bbswitch can't power on nvidia GPU. I get following lines in the journalctl optimus-manager.service :

juil. 21 16:17:18 Makroudh systemd[1]: Starting Optimus Manager Commands Daemon...
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: 2019-07-21 04:17:18 PM +0200 ====================
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Optimus Manager (Setup script) version 1.1
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Setting up boot
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Cleaning up leftover Xorg conf
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Loading config
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Reading startup mode
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: No kernel parameter set for startup, reading from file
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Startup mode is : nvidia
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Writing startup mode to requested GPU mode
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Writing requested mode
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Initial GPU setup
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Checking for GDM display servers
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Loading bbswitch module
juil. 21 16:17:18 Makroudh prime-switch-boot[566]: Setting GPU power to ON via bbswitch
juil. 21 16:17:19 Makroudh prime-switch-boot[566]: Cannot setup GPU : kernel setup error : bbswitch failed to set the GPU to ON

What should I check or try ? I will try with some acpi kernel argument as dglt suggested. edit : with acpi_rev_override=1, which is the most common working tweak on Dell laptops, it does not let "bbswitch" work. Neither did acpi_osi="!Windows 15".

Girafenaine

it's acpi_osi="!Windows 2015"
that wouldnt work, any parameters entered incorrectly are ignored. also many people think that
this:
acpi_osi="Windows 2015"
is a combination of acpi_osi=! and acpi_osi="Windows 2015" but it's not. the way you have it excludes "Windows 2015".

try these, only 1 line at a time and make sure you update-grub and reboot after each edit.

acpi_osi=! acpi_rev_override=1
acpi_osi=! acpi_rev_override=2
acpi_osi=! acpi_rev_override=3
acpi_osi=! acpi_rev_override=4
acpi_osi=! acpi_rev_override=5

Hello,

OK, thanks for the parameter correction.

Can I try by editing the grub command with "e-key" at boot time ? None of the lines above works, it ends up with a grub prompt on a black sreen.

Ano other idea to get bbswitch to work in the optimus-manager system on a XPS 9570 ?

Girafenaine

you can.

then your probably doing it wrong. none of those parameters would drop you to a grub command prompt.
when grub comes up, move selector to manjaro and press "e", then find the word "quiet" and replace it with acpi_osi=! acpi_rev_override=1 . you need to make sure there is a single space between each parameter. then CTRL+X to boot.

holy water? :laughing:

1 Like

Maybe it's time to try optimus-switch.
For optimus-manager (as well as optimus-switch), since they try to do a miracle (optimus success on Linux), they still have space for improvements, so I suggest you ask the developer(s).

1 Like

Forum kindly sponsored by