Dell XPS 15 9570
|Discrete Nvidia Graphics||Modify|
|Wifi[broken link: invalid section]||Working|
|Bluetooth[broken link: invalid section]||Working|
|rfkill[broken link: invalid section]||Working|
|Power Management[broken link: invalid section]||Buggy|
|EFI firmware updates||Working|
|Fingerprint reader[broken link: invalid section]||Not working|
- 1 Suspend
- 2 Hibernate
- 3 Graphics
- 4 Touchpad and Touchscreen
- 5 Thunderbolt docks
- 6 EFI firmware updates
- 7 Tips and Tricks
By default, the very inefficient s2idle suspend variant is incorrectly selected. This is probably due to the BIOS. The much more efficient deep variant should be selected instead:
$ cat /sys/power/mem_sleep [s2idle] deep $ echo deep|sudo tee /sys/power/mem_sleep $ cat /sys/power/mem_sleep s2idle [deep]
To make the change permanent add
mem_sleep_default=deep to your kernel parameters.
Read more regarding the sleep variants on the kernel documentation .
Works out of the Box see Power management/Suspend and hibernate
The nouveau module is known to cause kernel panics and freezes on this model. One way to mitigate this is by adding
nomodeset to the kernel options, however it's best if you completely disable it.
blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv blacklist nv
And make sure the discrete GPU powers off by default on boot.
w /sys/bus/pci/devices/0000:01:00.0/power/control - - - - auto
Integrated graphics works well out of the box.
Works but additional configuration is needed. (see *)
- Disable runtime PM:
- Uninstall or disable bbswitch
- Install bumblebee and set PMMethod=none in nvidia section
- Install NVIDIA driver
Note: This is just one configuration that worked. There are more configurations that might work just as well or even better. Sometimes nvidia driver can not be unloaded because some process is still using it.
Discrete (GeForce GTX 1050 Ti) graphics card do not work well with bbswich. It won't power on/off (see *).
TheAUR package will not work because it relies on bbswitch, that is broken. The AUR package provides an alternative version that works with this card. After installing the package a service can be enabled to automatically bring the card down during boot:
systemctl enable nvidia-xrun-pm
NVRM: Failed to enable MSI; falling back to PCIe virtual-wire interrupts
Sometimes it happens after suspend/resume. GPU could work fine without MSI. . You could disable MSI by adding the following in /etc/modprobe.d/nvidia.conf:
options nvidia NVreg_EnableMSI=0
Built-in screen flickers after Linux 5.0.x upgrade
Some users reported that upgrading to Linux 5.0.x can cause the screen to flicker when booting up, making the built-in display unusable (see *)
Currently, it seems that there are two possible workarounds :
- Downgrade to Linux 4.20.13.
- Apply Albert Astals Cid's patch on Linux kernel 5.0.x (see kernel Arch Build System).
Touchpad and Touchscreen
Wacom touchscreen and Synaptics touchpad:
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SYNA2393:00 06CB:7A13 Touchpad id=16 [slave pointer (2)] ⎜ ↳ Wacom HID 488F Finger id=15 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] [truncated]
Both are i2c devices:
$ udevadm info /dev/input/mouse3 # touchscreen
P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-10/i2c-WCOM488F:00/0018:056A:488F.0006/input/input47/mouse3 N: input/mouse3 L: 0 E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-10/i2c-WCOM488F:00/0018:056A:488F.0006/input/input47/mouse3 E: DEVNAME=/dev/input/mouse3 E: MAJOR=13 E: MINOR=35 E: SUBSYSTEM=input E: USEC_INITIALIZED=5501073 E: ID_INPUT=1 E: ID_INPUT_TOUCHSCREEN=1 E: ID_PATH=pci-0000:00:15.0-platform-i2c_designware.0 E: ID_PATH_TAG=pci-0000_00_15_0-platform-i2c_designware_0
$ udevadm info /dev/input/mouse6 # touchpad
P: /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-11/i2c-SYNA2393:00/0018:06CB:7A13.0007/input/input38/mouse6 N: input/mouse6 L: 0 S: input/by-path/pci-0000:00:15.1-platform-i2c_designware.1-mouse E: DEVPATH=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-11/i2c-SYNA2393:00/0018:06CB:7A13.0007/input/input38/mouse6 E: DEVNAME=/dev/input/mouse6 E: MAJOR=13 E: MINOR=38 E: SUBSYSTEM=input E: USEC_INITIALIZED=4683741 E: ID_INPUT=1 E: ID_INPUT_TOUCHPAD=1 E: ID_SERIAL=noserial E: ID_PATH=pci-0000:00:15.1-platform-i2c_designware.1 E: ID_PATH_TAG=pci-0000_00_15_1-platform-i2c_designware_1 E: DEVLINKS=/dev/input/by-path/pci-0000:00:15.1-platform-i2c_designware.1-mouse
TB16 works fine if either Thunderbolt security is disabled in the BIOS or using Dell TB16 page.to temporarily authorize or permanently enroll Thunderbolt devices with Thunderbolt security activated. Various quirks are detailed on the
EFI firmware updates
This device is supported by Fwupd.
Tips and Tricks
Systemd doesn't wait for Network
Few months ago systemd added "after= .. .. network.target" in /usr/lib/systemd/system/systemd-user-sessions.service
This causes systemd to wait for network connection at boot, you can modify this file to remove network.target but it will be overwritten on systemd update. A better workaround is to add /etc/systemd/system/systemd-user-sessions.service with network.target removed.
# This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. [Unit] Description=Permit User Sessions Documentation=man:systemd-user-sessions.service(8) After=remote-fs.target nss-user-lookup.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/lib/systemd/systemd-user-sessions start ExecStop=/usr/lib/systemd/systemd-user-sessions stop