Dell XPS 15 9570

HardwarePCI/USB IDWorking?
TouchpadYes
KeyboardYes
GPU (Intel)8086:3e9bYes
GPU (nvidia)10de:1c8cYes
Webcam0c45:671dYes
Bluetooth0cf3:e301Yes
SD-card reader10ec:525aYes
Audio8086:a348Yes
Wireless168c:003eYes
Fingerprint readerNo
TPM

Installation

UEFI

Before installing it is necessary to modify some UEFI Settings. They can be accessed by pressing the F2 key repeatedly when booting.

  • Change the SATA Mode from the default "RAID" to "AHCI". This will allow Linux to detect the NVME SSD. If dual booting with an existing Windows installation, Windows will not boot after the change but this can be fixed without a reinstallation.
  • Change Fastboot to "Thorough" in "POST Behaviour". This prevents intermittent boot failures.
  • Disable secure boot to allow Linux to boot. Alternatively, you can choose to set up Secure Boot so that it works with Linux and you can take advantage of its potential security benefits.

Installation of Arch Linux can proceed normally. Refer to the Installation guide for more information.

Firmware

They are 2 main ways to update efi firmware:

  • through running linux session with Fwupd
  • through UEFI

UEFI

Firmware images can be found at Dell support page as files. In order to install:

  • Download the desired firmware from section "Dell XPS 15 9570 System BIOS"
  • Save it in /boot/EFI/Dell/Bios/ (this path may vary, depending on your installation)
  • Reboot the system, and enter the boot menu by pressing repeatedly on Dell logo
  • Choose "Bios Flash Update"
  • Select the file previously saved, and start the process

The process will take about five minutes, during which the system will have some reboots and push fans at maximum speed. Finally the system will reboot normally.

Function keys

Key Visible?1 Marked?2 Effect
NoYesEnables Fn lock
YesYesXF86AudioMute
YesYes
YesYes
YesYesXF86AudioPrev
YesYes
YesYes
Fn+F7NoNoSee #Unmarked keybinds
YesYesInputs
YesYes
NoYesEnables/disables keyboard backlight
Fn+F11YesYes
YesYes
Yes3Yes, will hard-block wifi and soft-block Bluetooth. Press again to disable
Yes3No, see #Unmarked keybinds
YesYesMenu
YesYes
Fn+DownYesYes
YesYes
YesYes
  1. The key is visible to and similar tools
  2. The physical key has a symbol on it, which describes its function
  3. systemd-logind handles this by default

Unmarked keybinds

There are several keybinds handled by the BIOS

Key Effect
Fn+F7Unobtrusive mode. Has to be enabled in the BIOS in order to work. Deactivates all LEDs and turns off display and sound. Press again to disable.
Suspends device. See #Sleep button. Can not be disabled/configured

Power Management

Suspend

By default, the very inefficient s2idle suspend variant is selected, which consumes a large amount of power. The much more efficient deep variant can be selected instead:

$ cat /sys/power/mem_sleep
[s2idle] deep

To make the change permanent add to your kernel parameters.

An easy way would be to add to the entry in /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="mem_sleep_default=deep"

Read more regarding the sleep variants on the kernel documentation .

Hibernate

Works out of the Box see Power management/Suspend and hibernate

Powertop

is very efficient to manage power consumption. Run  and compare the Watt consumption variation (laptop must be unplugged and running on battery).  can be run at every boot.

See Powertop#Apply settings.

Graphics

kernel modules

The nouveau module is known to cause kernel panics and freezes on Dell XPS 15 9570.

One way to mitigate this would be by adding to the kernel options. However it is better to completely disable it with the blacklist method (recommended):

/etc/modprobe.d/blacklist.conf
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
blacklist nv

NVIDIA Optimus

See NVIDIA Optimus#Available methods.

xbacklight

To get xbacklight working and not conflicting with NVIDIA optimus:

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

Lock-ups when resuming from suspend with nvidia module

If your system locks up every time you resume from suspend with the following two lines in the output of dmesg:

[   42.447364] pci 0000:01:00.0: Refused to change power state, currently in D3
[   46.896493] pci 0000:01:00.0: Refused to change power state, currently in D3

you need to do the following:

Into /etc/default/grub

GRUB_CMDLINE_LINUX="nouveau.blacklist=0 acpi_osi=! acpi_osi=\"Windows 2015\" acpi_backlight=vendor mem_sleep_default=deep"

This solved the lock-ups for me. (internal nvidia bug number: 2589324, dell resolution)

Wifi and Bluetooth

These work well out of the box but you might need to update the firmware for better stability. For bluetooth, make sure you have everything installed as per the Bluetooth wiki page.

ath10k module crashes after suspend

You may notice driver crashes after suspend/resume, which for the most part does not seem to impact the running system, with coredumps similar to:


kernel: WARNING: CPU: 6 PID: 27936 at drivers/net/wireless/ath/ath10k/mac.c:5746 ath10k_bss_info_changed+0xf96/0x1120 [ath10k_core]
kernel: Modules linked in: uhid algif_hash cmac rfcomm fuse ccm ipt_MASQUERADE nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo iptable_nat nf_nat_ipv4>
kernel:  snd_hda_intel dcdbas x86_pkg_temp_thermal dell_smm_hwmon snd_hda_codec intel_powerclamp cfg80211 kvm_intel snd_hda_core input_leds snd_hwdep snd>
kernel:  vfio_mdev mdev vfio_iommu_type1 vfio kvm irqbypass intel_gtt i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm agpga>
kernel: CPU: 6 PID: 27936 Comm: kworker/u24:42 Tainted: G     U  W  OE     5.0.4-arch1-1-ARCH #1
kernel: Hardware name: Dell Inc. XPS 15 9570/0HWTMH, BIOS 1.8.1 02/01/2019
kernel: Workqueue: events_unbound async_run_entry_fn
kernel: RIP: 0010:ath10k_bss_info_changed+0xf96/0x1120 [ath10k_core]
kernel: Code: 24 8b 95 78 01 00 00 85 c0 0f 85 a7 00 00 00 89 d1 be 10 00 00 00 48 c7 c2 c0 b2 fa c0 4c 89 c7 e8 bf 68 00 00 e9 a5 f1 ff ff <0f> 0b 4c 89>
kernel: RSP: 0000:ffffb7a45422fcd0 EFLAGS: 00010282
kernel: RAX: 00000000fffffffe RBX: ffff98f6d44815a0 RCX: 0000000000000000
kernel: RDX: ffff98f6d4481938 RSI: ffffb7a45422fcf0 RDI: ffff98f6d81df418
kernel: RBP: ffff98f6d81df418 R08: 0000000000000001 R09: 0000000000000000
kernel: R10: 000000000000001f R11: 0000000000000000 R12: 0000000000000020
kernel: R13: ffff98f6d81df420 R14: ffff98f6d4482598 R15: ffff98f6d44815a0
kernel: FS:  0000000000000000(0000) GS:ffff98f6dc380000(0000) knlGS:0000000000000000
179 94%
kernel:  process_one_work+0x1eb/0x410
kernel:  worker_thread+0x2d/0x3d0
kernel:  ? process_one_work+0x410/0x410
kernel:  kthread+0x112/0x130
kernel:  ? kthread_park+0x80/0x80
kernel:  ret_from_fork+0x35/0x40
kernel: ---[ end trace 09ae3e174c178f98 ]---

Patched in some kernels and not others (which?), relevant links:

WiFi partially looses network connectivity every 1-2 hours

With some WiFi routers, the network connection might get partially lost without any noticeable change in the network status. Existing connections (e.g. ssh sessions, Zoom videocalls) keep working, but loading new web pages or even pinging the gateway do not work anymore. Restarting the network fixes the problem, which however reappears after 1-2 ours.

The issue can be fixed definitively by downgrading the WiFi card firmware as explained in post #17 of this forum thread. The downgrade must be repeated every time the linux-firmware package is upgraded.

Bluetooth disappears (after suspend?)

Possibly related to the previous instability issue, sometimes the adapter seems to completely disappear. As reported here (thanks w.v.w., you can likely fix this by manually upgrading the firmware (to something newer than what is in linux-firmware:

1. Double check adapter (e.g. QCA6174, below)

2. Confirm hardware and current firmware version (e.g. hw3.2, firmware RM.4.4.1.c3-00013-QCARMSWPZ-1, below)

3. Follow the instructions at https://wireless.wiki.kernel.org/en/users/Drivers/ath10k/firmware

e.g. for the above adapter, download the latest firmware from https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0 and

$ cd /lib/firmware/ath10k/QCA6174/hw3.0
# cp firmware-6.bin firmware-6.bin.bak
# cp ~/Downloads/firmware-6.bin_RM.4.4.1.c3-00013-QCARMSWPZ-1 firmware-6.bin

Either (as the root user) (may not work, check dmesg) or reboot.

Touchpad and Touchscreen

Wacom touchscreen and Synaptics touchpad:

Both are i2c devices:

If you experience problems with the touch pad it might be worth disabling psmouse

Thunderbolt docks

TB16

TB16 works fine if either Thunderbolt security is disabled in the BIOS or using to temporarily authorize or permanently enroll Thunderbolt devices with Thunderbolt security activated. Various quirks are detailed on the Dell TB16 page.

Caldigit TS3 Plus

The TS3 Plus works fine if either Thunderbolt security is disabled in the BIOS or using to temporarily authorize or permanently enroll Thunderbolt devices with Thunderbolt security activated. There is an issue where the USB ports will not work if unplugged and then plugged in again. This can be fixed by rebooting into the UEFI and using BIOS assisted enumeration (NOT native nor auto-switch), you may need to disable auto-switch, apply, then choose BIOS assisted, then apply again.

Thermal management

Thermal design is poor in the 9570, primarily due to higher-end chips being used inside the original system design without compensating for extra heat. This impacts numerous areas:

  1. Performance: at higher temperatures, CPU cores are throttled down to avoid damage. At best your system will not run as fast as it can, and at worst (and quite commonly), slower than cheaper chips and with sluggish performance.
  2. Battery life is unnecessarily decreased.
  3. System longevity: running at constantly high temperatures will negatively impact equipment lifetime.
  4. User discomfort: uncomfortable heat and uncomfortable fan noise.

Fortunately these can all be improved significantly to get your system running powerfully and quietly.

Diagnosis

You probably have a lot of dmesg output like this (for all CPUs), even with fairly light usage:

kernel: CPU8: Package temperature above threshold, cpu clock throttled (total events = 8451)
kernel: CPU8: Package temperature/speed normal

Use lm_sensors and do some stress testing (with and mprime) to see what is happening with CPU core temperatures and fanspeed under different loads.

Undervolting

See Undervolting CPU on the wiki. Reduces heat and extends battery life.

Possible configurations for :

  1. i9-8950HK* (last updated 2019-03-30)
undervolt 0 'CPU' -140
undervolt 1 'GPU' -75
* Tested extensively for moderate use.  Was not stress tested for > 24 hours.  Anecdotal reports of up to -200.

This has a more minor impact than repasting but is significantly easier to do.

Repasting & padding

Significant improvements are possible by replacing the thermal grease used by Dell with better options available from Amazon, and adding some extra thermal padding. This might sound overwhelming but is well worth the effort, especially for newer CPUs. If you cannot do this yourself consider finding a shop / technician who can do this for you. See the following article as the user comments below it for more info:

Results

According to the author of the UltraBookReview article above:

Undervolting seems to reduce temps at max load by 7-10C, while repasting seems to reduce temps by between 4-10C depending on your original paste job and paste used.

From this forum post, much lower/softer fan speeds were needed to maintain the same temperatures, and temperature was a few degrees lower under similar loads. Fans were on less often and for less time when they were. Throttling was less prevalent and less severe.

Fingerprint reader

The fingerprint reader lacks Linux drivers.

Goodix will not provide them directly as stated on their forum and frequently blames the responsibility on device manufacturers.

Nonetheless Goodix stated (2020-04-30) that they are collaborating with Dell to provide the support for Linux in the second half of 2020 for the XPS 9570.

There are also some people working on reverse engineering the driver.

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.