Dell XPS 13 (9300)
Device | Status | Modules |
---|---|---|
Video | Working | i915 |
Wireless | Working | iwlwifi |
Bluetooth | Working | btusb |
Audio | Working | snd_hda_intel |
Touchpad | Working | hid_multitouch |
Card Reader | Working | rtsx_pci |
Webcam | Working | uvcvideo |
Infrared Camera Authentication | Working | N/A |
USB-C / Thunderbolt 3 | Working | thunderbolt |
Function/Multimedia Key | Working | ? |
Fingerprint sensor | Working | ? |
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 reinstallation.
- 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 microSD 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/BIOS Updates
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.11.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, Backlight#xbacklight may produce `No outputs have backlight property`. Replacing xorg-xbacklight with acpilight fixes the problem.
Power Management
If the laptop seems to have an high drain when in sleep mode. As a possible workaround, you can set the machine to enter S3 deep sleep mode. Add mem_sleep_default=deep
to the Kernel parameters and disable "Display Logo Sign of Life" under POST Behavior in BIOS 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 i8kutilsAUR and dell-bios-fan-control-gitAUR.
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.
Wifi
The laptop comes with an AX1650 Killer wifi card soldered to the motherboard (not replaceable). It should work out of the box with kernel 5.6.2+.
Infrared camera
The infrared camera can be used as an authentication method with howdyAUR.
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.
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-gitAUR - 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.
The proprietary driver can be obtained from the AUR: libfprint-2-tod1-xps9300-binAUR . 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 | Status | Comments |
---|---|---|
Dell DA200 | Working | - |
Dell DA300 | Working | - |
Dell WD19TB | Working | 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 | Working | 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 | Working | - |
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 this commit in Linux 5.10, EFISTUB can be used with the XPS. With Linux 5.9 and older, you can build your own kernel with a custom CONFIG_CMDLINE_BOOL, use EFI blob builder (arch-efibootAUR, sbupdate-gitAUR), or use a bootloader.
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
Occasionally the laptop will hard crash when running the i915 linux driver. 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