Dell XPS 15 7590

From ArchWiki
Jump to navigation Jump to search
Note: This page refers to the 7590 revision of the XPS 15. Most of it also applies to the Precision 5540.


Device/Functionality Status
Suspend Working
Hibernate Working
Integrated Graphics Working
Discrete Nvidia Graphics Modify
Backlight Modify
WiFi Working
Bluetooth Working
rfkill Working
Audio Working
Touchpad[broken link: invalid section] Working
Touchscreen[broken link: invalid section] Working
Webcam Working
Card Reader Working
Function/Multimedia Keys Working
Power Management Working
EFI firmware updates Working
Fingerprint reader Not working

This page contains recommendations for running Arch Linux on the Dell XPS 15 7590 (2019).

Pre-Installation UEFI Settings

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

Warning: If you will be dual booting alongside an existing Windows installation, Windows will not boot if you just go ahead and make the switch to AHCI as described in the steps below. You must log into you Windows install both before and after that BIOS change to set and then remove a safeboot flag, respectively.
  • Under 'System Configuration', change the SATA Mode from the default "RAID" to "AHCI". This will allow Linux to detect the NVME SSD.
  • Under 'Secure Boot', disable secure boot to allow Linux to boot.
  • Under 'POST Behaviour', change "Fastboot" to "Thorough". This prevents intermittent boot failures.

If you are using multiboot with an existing Windows installation, make sure that "fast startup" is disabled in Windows 8/10.

Power Management

Suspend

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.

An easy way would be to add mem_sleep_default=deep to the GRUB_CMDLINE_LINUX_DEFAULT entry in /etc/default/grub:

 GRUB_CMDLINE_LINUX_DEFAULT="mem_sleep_default=deep"

Read more regarding the sleep variants on the kernel documentation [1].

Warning: Some users have reported a problem where the CPUs get stuck in a high power state after resuming from S3 (deep) suspension [2].

Hibernate

Powertop

Thermal Management

Default thermal management is not very optimized (this is my experience with the i9 processor at least).

The laptop gets hot quite often and the fans run at high speed most of the time.

One solution I found is to use powertop to get a quieter system.

See Powertop for details.

You may activate manual fans control with i8kutils. Install i8kutilsAUR and dell-bios-fan-control-gitAUR. Edit /etc/i8kutils/i8kmon.conf and enable services:

$ sudo systemctl daemon-reload
$ sudo modprobe dell-smm-hwmon
$ sudo modprobe i8k
$ sudo systemctl enable --now i8kmon.service
$ sudo systemctl enable --now dell-bios-fan-control.service

You may have to modify the modprobe options for dell-smm-hwmon to have the above work. See more at this reddit thread

options dell-smm-hwmon ignore_dmi=1

Another solution to decrease CPU temperature by 8°C (as for i7) on average is to

$ echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

This is likely to be reset though during adapter plugging and uplugging.

Graphics

NVIDIA Optimus

See NVIDIA Optimus.

Backlight

See Backlight#Color correction.

Backlight function keys

When using a LCD display device and in a desktop environment (KDE verified) the function key will be working out of the box for the DEs have their own key mapping. However, when in a window manager with modesetting driver (and also int the tty console), the backlight controlling function keys won't be working and will throw out errors like ACPI BIOS Error, could not resolve symbol.

Usually /sys/class/backlight/intel_backlight is symlinked to /sys/device/pci00/0000:00:02.0/drm/card0/card0-eDP-1/, and by changing the value of backlight file inside the directory the backlight level can be controlled, but the operation needs root previliege. Establishing a udev rule and accordingly a backlight control group will help, but these steps can be done easily with the package light.

Then a mapping of function key to the command, say, light -A 3 and light -U 3 would be in need. XF86BrightnessDown and XF86BrightnessUp won't be working. The mapping of the keys can be done with acpid. Install the package, then insert these lines to the case "$1" in block

/etc/acpi/handler.sh
video/brightnessup) light -A 3 ;;
video/brightnessdown) light -U 3 ;;

start and enable the service:

systemctl enable acpid.service, systemctl start acpid.service.

Backlight in Wayland

The xrandr command does not work with Wayland. Instead you can use the icc-brightness[broken link: package not found] tool to control the brightness.

You can find it here: https://github.com/udifuchs/icc-brightness

Backlight in Sway

For sway users you can use redshift-wlr-gamma-controlAUR[broken link: package not found] to set the brightness. The following command sets the brightness to 75%.

redshift -o -b 0.75 -O 6500k -m wayland -l manual

This may also work for other window managers based on wlroots.

Networking

WiFi

With kernel version 5.2.2 and linux-firmware 20190717.bf13a71-1, WiFi would be working out of the box.

Firmware Update

UEFI

Firmware images can be found at Dell support page. Keeping an existing Windows system will make updates of BIOS much simpler. If a clean Arch Linux install is the case in order to install:

  • Download the desired firmware from section "Dell XPS 15 7590 System BIOS"
  • Save it in /efi/EFI/Dell/Bios/ or /boot/EFI/Dell/Bios/ (this path may vary, depending on your installation)
  • Reboot the system, and enter the boot menu by pressing repeatedly F12 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.

Fingerprint reader

It is a Goodix fingerprint reader.

The producer does not provide any Linux driver nor documentation to implement one.

Some effort is in slow progress to reverse engineer the windows drivers (see [3]).