[Dell XPS 15] Enable Nvidia drivers

Hi there, upon searching I found people stuck in different steps of the procedure and I’m not very familiar with what I should do next.

I have an external display attached to my laptop and this is what I have done so far:

sudo pacman -S optimus-manager
sudo systemctl enable optimus-manager.service
sudo systemctl start optimus-manager
sudo systemctl status optimus-manager
optimus-manager --switch nvidia

The displays go black for a moment and turn on again. The ouput is now mirrored (not a problem, I can adjust them again with xrandr) but when I run hwinfo | grep 'nvidia' the output is still:

  <6>[ 1834.135427] nvidia-nvlink: Nvlink Core is being initialized, major device number 236
  <4>[ 1834.135614] nvidia: probe of 0000:01:00.0 failed with error -1
  <6>[ 1834.135688] nvidia-nvlink: Unregistered the Nvlink Core, major device number 236
    Driver Status: nvidia_drm is not active
    Driver Activation Cmd: "modprobe nvidia_drm"
    Driver Status: nvidia is not active
    Driver Activation Cmd: "modprobe nvidia"

Is this the correct approach that I am taking and if so, what should I go for next?

I have gathered some more information about my system:

~ $ lspci
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 Cannon Lake PCH Serial IO I2C Controller (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake Mobile PCH SATA AHCI Controller (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: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
3c:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
3d:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
~ $ inxi -Fxxxz
System:    Host: XPS15 Kernel: 4.19.32-1-MANJARO x86_64 bits: 64 compiler: gcc v: 8.2.1 Desktop: i3 4.16.1 info: polybar 
           dm: LightDM 1.28.0 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.7.0 date: 12/25/2018 
Battery:   ID-1: BAT0 charge: 94.1 Wh condition: 94.1/97.0 Wh (97%) volts: 13.2/11.4 model: LGC-LGC8.33 DELL 5XJ288B 
           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: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 53004 
           Speed: 800 MHz min/max: 800/4100 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 4: 800 5: 800 6: 800 7: 800 8: 800 
           9: 800 10: 800 11: 800 12: 800 
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.4 driver: intel compositor: compton resolution: 3840x2160~60Hz, 3840x2160~60Hz 
           OpenGL: renderer: Mesa DRI Intel UHD Graphics 630 (Coffeelake 3x8 GT2) v: 4.5 Mesa 18.3.5 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.32-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 
           Device-3: Realtek RTL8153 Gigabit Ethernet Adapter type: USB driver: r8152 bus ID: 2-2.3:3 chip ID: 0bda:8153 
           serial: <filter> 
           IF: enp0s20f0u2u3 state: up speed: 1000 Mbps duplex: full mac: <filter> 
Drives:    Local Storage: total: 476.94 GiB used: 138.53 GiB (29.0%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: PM981 NVMe 512GB size: 476.94 GiB speed: 31.6 Gb/s lanes: 4 
           serial: <filter> rev: EXA74D1Q scheme: GPT 
Partition: ID-1: / size: 451.58 GiB used: 138.53 GiB (30.7%) fs: ext4 dev: /dev/nvme0n1p2 
           ID-2: swap-1 size: 16.84 GiB used: 0 KiB (0.0%) fs: swap dev: /dev/nvme0n1p3 
Sensors:   System Temperatures: cpu: 48.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Info:      Processes: 300 Uptime: 4h 47m Memory: 15.31 GiB used: 5.77 GiB (37.7%) Init: systemd v: 241 Compilers: gcc: 8.2.1 
           Shell: bash v: 5.0.0 running in: kitty inxi: 3.0.32

Have you read the entire tutorial for it and do those steps ?

1 Like

Yes I have. I reread it just now and I have done it correctly from what I can tell!
So I run optimus-manager --switch nvidia and I confirm, then the screen turns black and it takes a while to switch GPU (but fails?) and I’m back at login screen but after logging in I’m still on intel: when I run glxinfo | grep "server glx vendor string", I receive ‘SGI’ instead of ‘NVIDIA Corporation’

I don’t know where I went wrong. I tried it again just now.

1 Like

Is good that you checked again. It should’t fail, but probably is not suited for your model. So, i will propose to you to try optimus switch instead

Somehow i think is a better approach.

1 Like

Hey I noticed that I had not removed bumblebee (the service is called bumblebeed, with a d at the end, thats how I made a mistake).

sudo systemctl stop bumblebeed
sudo systemctl disable bumblebeed
sudo systemctl status bumblebeed

I tried the optimus-manager again to switch but again it didn’t work and I’m still on intel. How long does the change usually take? Because it feels very long while I’m waiting for the log screen to show up again.

Now that you disabled bumblebeed, do a reboot and then try to switch. I honestly don’t know how long it takes the switch. :man_shrugging:

should log out and back in again and work if it’s actually gonna work. but OP’s 1050ti probably didnt work properly with bumblebee either as bbswitch is known to cause issues with that card according to arch wiki.

@ivster if you do go this route, make sure you properly uninstall bumblebee and optimus-manager before attempting it. optimus manager has a certain way of being disabled/uninstalled

If you want to disable optimus-manager completely, then first disable the SystemD service :

# systemctl stop optimus-manager.service
# systemctl disable optimus-manager.service

Then run optimus-manager --cleanup as root to remove any leftover autogenerated configuration file. Make sure to do this step before uninstalling the program.

also make sure there are no bbswitch modules/packages installed and also uninstall any drivers that optimus-manager instructed to to install. and yes, all of that is necessary to fully get rid of it :unamused:

1 Like

Thanks for your replies!

I have done a reboot. optimus-manager doesn’t work anymore though, when I confirm the switch, it seems like it’s frozen and manjaro is not responsive anymore. Tried it twice.


Ok this is weird. I was just about to post the logfile after having 2 freezes. Before copying the logfiles I tried glxinfo | grep "server glx vendor string" again and this time I actually got “Nvidia Corporation”.

The weird part is that I set the default in optimus to intel because I want to keep intel mode for when I don’t have an external screen connected… not sure how it worked. But its good for now. I’ll keep an eye on the behaviour the coming days and hope it will run fine :slight_smile:

Thanks for your help! I learnt a lot today :slight_smile:

1 Like

your welcome, if it’s working the way you want then certainly stick with it. welcome to the forum.

i think you’ll find these useful for any issues you might run into wtih that model XPS.
https://wiki.archlinux.org/index.php/Dell_XPS_15_9570
https://wiki.archlinux.org/index.php/Dell_XPS_15_9560

both models are similar enought that most info from each of those wiki’s apply. IIRC the 9560 has more info on it. take care.

1 Like

Hey, my laptop freezes upon boot after about 1s in login screen.

Within that 1s I managed to switch to a tty and paddled back by disabling Optimus service and enabling bumblebee again...

Edit:
Hey I think I got it to work now. It took me a few restarts. It would usually crash when I would switch from one mode to the other. Even though it would crash, it would pick the other mode after the next boot.

I've now set nvidia as default (optimus-manager --set-startup nvidia) and everything seems to be fine when booting. (In the beginning I wanted to keep intel as default and manually pick nvidia whenever I have a dual screen setup, just to stay out of power hunger trouble when having no external display).

Switching is the troublesome part but I will just stay in nvidia mode for now since I'm not going to carry the laptop around!

Thanks for your support!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.