Dell XPS 13 (9300)

This article or section does not follow the
Laptop page guidelines
.
Reason:
Hardware table needs some adjustments, needs a proper function key table (Discuss in
Talk:Dell XPS 13 (9300)
)
Hardware
PCI/USB ID
Working?
Video
Yes
Wireless
Yes
Bluetooth
Yes
Audio
Yes
Touchpad
Yes
Card Reader
Yes
Webcam
Yes
Infrared Camera
Yes
Fingerprint sensor
Yes
The Dell XPS 13 Early 2020 (9300) is the eigth-generation model of the XPS 13 line.
The installation process for Arch on the XPS 13 does not differ from any other PC. For installation help, please see the
Installation guide
and
UEFI
.
UEFI
Before installing it is necessary to modify some UEFI Settings. They can be accessed by pressing the
F12
key repeatedly when booting.
Change the SATA Mode from the default "RAID" to "AHCI"
(already the default on the developer edition)
. 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
(already the default on the developer edition)
.
For reliable resumption from sleep, set
Early Logo Display
to OFF in the
Sign of Life
options. Booting and installing from a micro SD card is possible, as long as SD Card and SD Card Boot are both enabled in the UEFI setup.
This is done via
System Configuration
under the heading
Enable MediaCard
, enable the option
Secure Digital(SD) Card Boot
.
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
. Current firmware version is
1.23.0
.
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.
Display
The video should work with the
i915
driver of the current
linux
kernel. Consult
Intel graphics
for a detailed installation and configuration guide as well as for
Intel graphics#Troubleshooting
.
If you installed
xf86-video-intel
and experienced hanging/freezing when launching
Xorg
, or when launching applications with GPU Acceleration (such as
kitty
and
alacritty
), try uninstalling
xf86-video-intel
and let Xorg fallback to modesetting driver.
When using modesetting driver,
xbacklight(1)
may produce
No outputs have backlight property
. Replacing
xorg-xbacklight
with
acpilight
AUR
fixes the problem.
Power management
See
Power management/Suspend and hibernate#Changing suspend method
, and disable
Display Logo Sign of Life
under
POST Behavior
in the UEFI setup.
Kernel panics have been reported with some XPS devices
when S3 deep sleep is enabled together with secure boot
. A workaround that was suggested for the
Dell XPS 13 2-in-1 (7390)
but seems to work for the XPS 13 9300 is adding
intel_iommu=off
to the
Kernel parameters
.
The touchscreen
has been reported
to stop working after waking up from S3 deep sleep mode.
For reducing drain while running on battery power, refer to
Power management
.
TLP
is a userspace tool that is popular and has been reported to work well.
Thermal throttling
By default, or
whatever was set on Windows
by Dell Power Manager, a very conservative power profile is set somewhere in memory (seems to persist BIOS resets) and starts throttling the CPU very early (2.4GHz out of 3.9GHz max on i7-1065G7).
This can be resolved using
throttled
. Despite originally conceived to resolve the same issue with Lenovo laptops, it works with Dell computers.
Throttling with battery charge level
As
measured by some users
, the BIOS throttles system performance according to battery charge level, even on AC (improvements have been made in BIOS 1.4.1).
Fan control
For more information view
Fan speed control#Dell laptops
Installation
By default, the fan is controlled by the bios. In order to override this control with your own configuration, install
i8kutils
AUR
and
dell-bios-fan-control-git
AUR
.
Configuration
By default,
i8kmon
only monitors the CPU temperature and fan speed passively.  To enable its fan speed control, put the following in
/etc/i8kutils/i8kmon.conf
:
set config(auto)       1
The temperature points at which the fan changes speed can be adjusted in the same configuration file.  Only three fans speeds are supported (high, low, and off).  Look for a section similar to the following in
/etc/i8kutils/i8kmon.conf
:
set config(0)   {{0 0}  -1  65  -1  65}
set config(1)   {{1 0}  60  70  60  70}
set config(2)   {{1 1}  65  75  65  75}
set config(3)   {{2 1}  70  80  70  80}
set config(4)   {{2 2}  75  85  75  85}
This example starts the fan at low speed when the CPU temperature reaches 65°C, and continues ramping up from there.  The fan will slow down as the temperature drops and it will turn off completely at 60°C.
Installation as a service
Start/enable
i8kmon.service
and
dell-bios-fan-control.service
.
These services will persist on reboot. If you would like them to not persist, simply
start
them without
enabling
them.
Infrared camera
The infrared camera can be used as an authentication method with
howdy
AUR
.
Warning
As said in howdy documentation, "DO NOT USE HOWDY AS THE SOLE AUTHENTICATION METHOD FOR YOUR SYSTEM."
The configuration file is located at
/lib/security/howdy/config.ini
. The device should be configured like this :
device_path = /dev/video2
.
Please refer to
Howdy
to find which /dev/videoX corresponds to your IR camera and for troubleshooting.
Note
After installing howdy, you should tweak the configuration file to find the settings that work best for you.
I personally found much better results by increasing
dark_threshold
all the way to 80 or 90. Please read the config file carefully.
Fingerprint sensor
The fingerprint sensor can be used by installing the proprietary Ubuntu driver released by Dell and Goodix. This requires a different fork of libfprint
libfprint-tod-git
AUR
- available on the AUR and built from source
from the upstream repo
. This is a newer version intended for use only with touch-based sensors such as the one on the XPS.
Warning
This driver is proprietary, closed source and only distributed in binary form
The proprietary driver can be obtained from the AUR:
libfprint-2-tod1-xps9300-bin
AUR
. Alternatively, it can also be manually installed from the
Dell repository
by extracting the debian file and copying its contents.
The rest of the process is identical as that described on
Fprint
- just make sure not to install the version of libfprint on the main repo as it conflicts with libfprint-tod
Thunderbolt
The following thunderbolt devices have been tested:
Device
Working?
Comments
Dell DA200
Yes
–
Dell DA300
Yes
–
Dell WD19TB
Yes
OK since kernel 5.10.16, BIOS 1.5.0, and Dock firmware 01.00.15.01. Use
fwupd
to update BIOS and Dock firmware.
CalDigit TS3 Plus
Yes
The monitor that is connected via usb type-c port might not work correctly due to a
BIOS bug
, this might also apply to other Thunderbolt docks but I have tested TS3 Plus only.
Dell TB16
Yes
–
Known issues
Fingerprint reader
The fingerprint reader only works with a proprietary closed source driver released by Goodix for Ubuntu. However, it can be made to work on Arch (see above).
UEFI
Since BIOS update 1.0.10, some
USB-C to HDMI/DP adapters do not work anymore
(even on Windows). The issue was partially fixed on BIOS 1.2.0; however, the USB-C to HDMI/DP adapter remains unusable if connected via some Thunderbolt 3 docking stations.
S3 sleep state
does not seem to be compatible with secure boot
, at least by default. See a possible workaround on section
#Power management
.
Firmware versions 1.0.6 through 1.0.11, have
a bug
causing a two second delay during boot. This is fixed since 1.1.0. Update to the newest firmware, or downgrade to the oldest to avoid this issue.
Random hangs on i915
In certain setups, running the i915 linux graphics driver causes intermittent GPU freezes that last for about 30 seconds. Audio, pointer movement, CPU, and memory run normally, but the picture is frozen. In some cases, X seems to get confused and crash from this. One relatively predictable way to test for this bug is to trigger the freeze by calling xrandr with no arguments (or any RandR tool that queries for connected screens).
This issue
is at least partly known in windows where the solution is to turn off panel self refresh. The equivalent in linux is to set panel self refresh to off in the kernel parameters:
i915.enable_psr=0