Dell XPS 13 (9370)

This article or section does not follow the
Laptop page guidelines
.
Reason:
Stub (Discuss in
Talk:Dell XPS 13 (9370)
)
Hardware
PCI/USB ID
Working?
GPU
8086:5917
Yes
Wi-Fi
168c:003e
Yes
Bluetooth
0489:e0a2
Yes
Audio
8086:9d71
Yes
Touchpad
Yes
Webcam
0bda:58f4
Yes
Infrared
Yes
Thunderbolt
8086:15d3
Yes
Fingerprint sensor
1
No
Card reader
10ec:525a
Yes
The Dell XPS 13 Early 2018 (9370) is the fifth-generation model of the XPS 13 line. The laptop was released in January 2018 in both a standard edition with Windows installed, as well as a Developer Edition with Ubuntu installed.
The fingerprint reader is not available on the Developer Edition/Linux variant, which instead has a regular power button with a built-in power indicator. Information from Dell
is available here
.
Installation
UEFI Settings can be accessed by pressing the
F2
key at boot.
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 re-installation
.
Disable
Secure Boot
to allow Linux to boot.
To boot from a USB device attached via the USB-C to USB-A adapter included in the box, you will need to enable Thunderbolt boot. Once enabled,
F12
on boot will enter the boot menu. It is also possible to use the right USB-C port directly without any UEFI adjustment.
Booting and installing from a micro SD card is also possible, as long as SD Card and SD Card Boot are both enabled in the UEFI setup.
dell-command-configure
AUR
can be used to modify settings without having to reboot to enter UEFI menu.  For example, to configure the battery to stop charging at 75% and only begin charging again when depleted to 60%:
# cctk --PrimaryBattChargeCfg=Custom:60-75
Firmware
Dell provides firmware updates via Linux Vendor Firmware Service (LVFS). Refer to
Flashing BIOS from Linux#fwupd
for additional information. A package is readily available at
fwupd
. Updates are provided for the Thunderbolt controller as well.
There is an issue
where the Thunderbolt version number is detected as
00.00
after re-flashing (currently being investigated).
Alternatively, for the BIOS update, you can simply copy the
.exe
file from the Dell Support page to any FAT32 drive (even the boot partition seems to work). Then boot into the "BIOS Flash Update" utility by hitting
F12
at boot time.
Dell has also released updates to the SSD firmware, but these can only be updated from Windows, not from Linux.
Display
The
enable_psr=1
kernel parameter appears not to work properly, at least on the touchscreen model.
If the brightness of the backlight cannot be adjusted, add
i915.enable_dpcd_backlight=0
as a kernel parameter.
Content Adaptive Brightness Control
In the XPS 13 the display panels (both FHD and 4K UHD) come with Content Adaptive Brightness Control (usually referred to as CABC or DBC, sometimes also as "EcoPower") enabled by default. While disabling required flashing the display firmware in previous generations, DBC can now be disabled in recent BIOS versions in the "Video" section. To test if DBS is enabled, go to this
test page
.
Storage
Firmware
The NVMe SSD is a Toshiba KXG50ZNV256G, KXG50ZNV512G or KXG50ZNV1T02. The stock firmware version AADA4102 has severe problems when the SSD enters the lowest power state. This results in a unresponsive device (kernel complains about read-only filesystem) The problems can occur any time, but seem to have become way more common on Kernel 4.18 on battery power.
Firmware Version AADA4107
seems to fix the problem. The firmware is available for Windows only but
can be updated under Linux at your own risk
.
Note
On some devices, the NVMe SSD can be a SK hynix EJ82N00301190264W (1TB) and not a Toshiba one.
As the upgrade is only possible under Windows, and as even with upgraded driver the disk may be completely undetected by the kernel because of the SSD not being responsive in the deepest sleep mode, the following
kernel parameter
work as a workaround, preventing the disk to enter the problematic sleep mode (see
Solid state drive/NVMe
):
nvme_core.default_ps_max_latency_us=6000
Performance
If the system becomes unresponsive when creating any kind of large file or when data is being swapped then you may need to disable Native Command Queuing by adding the
kernel parameter
libata.force=noncq
.
Peripherals
Keyboard
The keyboard backlight has a feature that makes it automatically turn off after a given timeout. This timeout can be adjusted by writing into
/sys/class/leds/dell\:\:kbd_backlight/stop_timeout
. For example,
# echo "5m" > /sys/class/leds/dell\:\:kbd_backlight/stop_timeout
This would set the timeout to 5 minutes. Note that different timeouts are maintained when the machine is connected to AC and when it is running from battery.
Touchpad
The touchpad is a basic Synaptics PS/2 device.
Cursor Jump
The touchpad can sometimes produce a "cursor jump". Sometimes this is detected and worked around by
libinput
, resulting in a similar journal entry:
libinput error: event12 - DELL07E6:00 06CB:76AF Touchpad: kernel bug: Touch jump detected and discarded.
There is a
libinput bug about this
where the conclusion was that this is probably a hardware issue or a bug in the kernel driver.
Sensitivity
By default, the
libinput
driver might not have the desired sensitivity. The acceleration can be changed via
xinput
as follows:
$ xinput --set-prop $(xinput | grep 'DELL.*Touchpad' | awk '{print $6}' | sed 's/id=//g') 'libinput Accel Speed' 0.5
Webcam
If the webcam
does not work after going into deep sleep
, you need to
update your bios
to version
1.5.1
or newer.
Some users have reported problem of the webcam being stuck at 640x480.
Infrared camera
The infrared camera can be used as an authentication method with
howdy
.
Warning
As said in howdy's documentation, "DO NOT USE HOWDY AS THE SOLE AUTHENTICATION METHOD FOR YOUR SYSTEM".
Fingerprint reader
The fingerprint reader is not supported. There is a
libfprint feature request
.
Audio
Built-in audio has mixed reports.
Built-in audio is anecdotally known to work without issues (last tested on
6.8.1-arch1-1
), but other users have reported issues below.
Built-in audio worked approximately until 2020, but does
not
work any more since kernel 5.4, due to a kernel bug, a firmware/UEFI issue or both.
Ubuntu bug 1913014 for 5.4
alsa-info.txt on 5.6 on Fedora
Ubuntu bug 1957058 for 5.11
The built-in audio card has been observed to work with a low likelihood at random, roughly during one boot out of high tens. Telltale messages (for search engines to find):
journalctl -k -b
snd_hda_intel 0000:00:1f.3: spurious response 0x0:0x0, last cmd=0xfff0005
hdaudio hdaudioC0D0: no AFG or MFG node found
hdaudio hdaudioC0D2: no AFG or MFG node found
hdaudio hdaudioC2D0: no AFG or MFG node found
hdaudio hdaudioC2D2: no AFG or MFG node found
snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to polling mode: last cmd=0x200f0000
snd_hda_intel 0000:00:1f.3: No response from codec, disabling MSI: last cmd=0x200f0000
snd_hda_intel 0000:00:1f.3: azx_get_response timeout, switching to single_cmd mode: last cmd=0x200f0000
snd_hda_intel 0000:00:1f.3: no codecs initialized
There seems to be no known workaround to this problem (other than Bluetooth headphones or the USB soundcard in a dock) as of September 2022.
Connectivity
Bluetooth
The Bluetooth adapter sometimes becomes unavailable after waking up from suspend and can even stay deactivated and invisible after a warm reboot. End of October 2018
a kernel patch was announced by Dell
. However the issue appears to remain unresolved for at least some users.
A quick workaround is
rmmod btusb
before suspend and
modprobe btusb
after resume.
To do this, you can put an executable script of any name in
/lib/systemd/system-sleep/
.
#!/bin/sh
if [ "$1" 1 "pre" ]; then
  systemctl stop bluetooth && rmmod btusb
elif [ "$1" 1 "post" ]; then
  modprobe btusb && systemctl start bluetooth
fi
Make sure it is
executable
. Credit to
Cyrus Lien
for this workaround.
Wi-Fi
The Wi-Fi adapter contains a Qualcomm Atheros QCA6174 module. It should work out of the box with the
ath10k_pci
driver in recent
linux
kernels.
For any Wi-Fi issues
a guideline
is provided by Dell to install the latest Killer wireless drivers.
USB Type-C ports
The 9370 has only three Type-C ports (and no other ports, just an audio jack). Two of these (on the left side) support Thunderbolt 3. There is no power jack. A 45 W USB Type-C charger is included in the box. Any of the three Type-C ports can be used for charging. Since the laptop has no USB-A ports, one Dell-branded Type-C to A adapter is included.
Also all three Type-C ports support DisplayPort alternate mode. It is taken care of by the firmware, so it will work even with older kernels that do not otherwise support it. To the operating system it appears as if the laptop had two DisplayPort connectors (in addition to the embedded DP that the internal screen uses). So far the following adapters have been tested. All of these will appear to the operating system as if you plugged something into one of the DP connectors.
Club3D Type-C to DisplayPort 1.2 adapter
(tested with 1080p and 4K, both work at 60 Hz)
Dell Type-C to VGA adapter
(tested with 1080p at 60 Hz)
Dell Type-C to HDMI adapter
(tested with 1080p and 4K, both work at 60 Hz)
Moshi USB-C to HDMI Adapter
(tested with 1080p and 4K, both work at 60 Hz)
Thinkvision P24h
USB, power delivery, video work.
Power
Power Saving
To save more battery use
TLP
package and/or
Powertop
.
You can monitor the used power and also the temperature of your machine with the
s-tui
tool.
To minimize the GPU's power consumption, make sure
i915
is correctly loading the firmware as described in
Intel graphics#Enable GuC / HuC firmware loading
.
By default, Intel Turbo mode appears to be disabled when on battery to save power.  If this is not desired, TLP can be configured to re-enable Turbo on battery, however it is not always successful in doing so.  A solution is to use
acpid
to detect AC charger disconnection and re-trigger TLP after a short delay by
adding
the following:
/etc/acpi/handler.sh
...
     ac_adapter)
       case "$2" in
ACPI0003*|
AC|ACAD|ADP0)
               case "$4" in
                   00000000)
                       logger 'AC unplugged'
sleep 2
tlp true
;;
                   00000001)
                       logger 'AC plugged'
sleep 2
tlp false
;;
               esac
               ;;
           *)
               logger "ACPI action undefined: $2"
               ;;
       esac
...
Sleep
See
Power management/Suspend and hibernate#Changing suspend method
.
According to the manufacturer (see
this upstream kernel bug
), the machine uses S2 intentionally instead of S3, and they are working towards fixing the power drain on S2.
Note
On older BIOS and/or kernel versions
the power button cannot be used to wake the laptop from sleep
. In this case the Sleep button (
Fn+End
, or just
End
if you have "Fn lock" enabled) can still wake up the machine. This has been fixed by a BIOS update.
Thermal Throttling
By default thermal throttling activates around 80°C resulting in maximum sustained CPU frequency around 2.4Ghz, much lower than in Dell's standard Windows installation.
Package temperature above threshold, cpu clock throttled (total events = 971)
This can be resolved using
throttled
or
intel-undervolt
, both of which can be used to set a higher trip temperature. Both can also be used to
undervolt
to further reduce throttling, however system firmware newer than 1.12.1
appear to disable this ability
.
Thermal Modes / Fan profiles
Just like in Windows by using Dell Power Manager you can set the thermal configuration and behavior of the fans and CPU of your machine. This can be done with
smbios-thermal-ctl(1)
.
"Quiet" and "Cool Bottom" profiles limit CPU power to 11W (18W boost) and thus reduces overall system performance.
"Balanced" and "Performance" profiles remove this limit.
Thermal profile changes may not reliably alter the CPU power limit.  When connected via Thunderbolt dock it appears to be worse.
In some circumstances after booting (particularly with "Quiet" profile), power may be limited to 10W.
Disconnecting and reconnecting power, changing thermal profile, or simply waiting may resolve these issues.
For more fine-grained control of the fans,
i8kutils can be used
to specify the temperature at which either fan should activate. This may conflict with the BIOS fan control, which can be disabled using
dell-bios-fan-control-git
AUR
.
Function keys
A lot of
Fn
combinations yield
XF86Launch3
for some reason.
Key
Visible?
1
Marked?
2
Effect
Fn+Esc
No
Yes
Enables Fn lock
Fn+F1
Yes
Yes
XF86AudioMute
Fn+F2
Yes
Yes
XF86AudioLowerVolume
Fn+F3
Yes
Yes
XF86AudioRaiseVolume
Fn+F4
Yes
Yes
XF86AudioPrev
Fn+F5
Yes
Yes
XF86AudioPlay
Fn+F6
Yes
Yes
XF86AudioNext
Fn+F7
Yes
Yes
Meta_L + Tab
Fn+F8
Yes
Yes
Meta_L + P
Fn+F9
Yes
Yes
XF86Search
Fn+F10
No
Yes
Toggle keyboard backlight
Fn+F11
Yes
Yes
Print
Fn+F12
Yes
Yes
Insert
Fn+Home
Yes
Yes
XF86RFKill
3
Fn+End
Yes
Yes
XF86Sleep
Fn+Super_L
Yes
No
Super_R
Fn+Ctrl_R
Yes
Yes
Menu
Fn+Up
Yes
Yes
XF86MonBrightnessUp
Fn+Down
Yes
Yes
XF86MonBrightnessDown
Fn+Q
Yes
No
XF86Launch3
Fn+W
Yes
No
XF86Launch3
Fn+E
Yes
No
XF86Launch3
Fn+R
Yes
No
Print
Fn+A
Yes
No
XF86Launch3
Fn+S
Yes
No
Scroll_Lock
Fn+D
Yes
No
XF86Launch3
Fn+F
Yes
No
XF86Launch3
Fn+G
Yes
No
XF86Launch3
Fn+B
Yes
No
Pause
The key is visible via
wev
and similar tools
The physical key has a symbol on it, which describes its function
systemd-logind handles this by default