Dell XPS 13 (9343)

Note
This page refers to the
early
2015 model of XPS 13. For the
late
2015 model, see
Dell XPS 13 (9350)
.
Hardware
PCI/USB ID
Working?
Audio
8086:160c
Yes
GPU
8086:1616
Yes
Wi-Fi
14e4:43b1
Yes
Bluetooth
0a5c:216f
Yes
Touchpad
06cb:76ad
Yes
Webcam
0bda:5682
Yes
SD-card reader
10ec:5249
Yes
The
2015 Dell XPS 13 (9343)
is the second-generation model of Dell's XPS 13 line. Like its predecessor, it has official Linux support courtesy of Dell's Project Sputnik team
[1]
. They target Ubuntu 14.04 LTS, but the improvements and support from the Sputnik team are generally applicable to all distributions.
The installation process for Arch Linux on the XPS 13 does not differ from any other PC. For installation help, please see the
Installation guide
and
UEFI
pages. This page covers the current status of hardware support on Arch, as well as post-installation recommendations.
Model differences
Although the XPS 13 is sold in a variety of configurations in most markets, those wanting to run Linux should pay special attention to
display
options (FHD or QHD+) and
Wi-Fi adapter
differences (Dell DW1560 or Intel 7265).
Users with QHD+ displays should use a DE/WM that properly supports
HiDPI
.
Regarding the Wi-Fi adapter, both cards work in Arch Linux. If the Intel one works out-of-the-box thanks to mainline kernel support, the Dell DW1560 instead requires a proprietary kernel module that is not well-supported; further details are reported in the proper below section.
There are no exclusive hardware differences between the
Developer Edition
and the standard Windows edition, so this guide is equally applicable to both models.
Firmware
Note
LVFS
does not support this device, thus you cannot use
fwupd
in order to upgrade the UEFI. To do it, proceed manually as described below.
The latest UEFI update is
A20
and it was released on 8th October 2019. With version A02 or newer, almost everything should work out-of-the-box and the kernel boot parameters that were used in conjunction with earlier UEFI versions are no longer necessary.
The upgrade is easy thanks to the UEFI implementation: place the update binary (the just downloaded
.exe
file) in the
EFI system partition
or on a USB flash drive, reboot, press
F12
key in order to enter in the Boot Menu and then choose
BIOS Update
.
Configuration
Screen and keyboard backlight
Backlight and its control work out-of-the-box:
The
systemd-backlight.service
takes care of both
eDP panel
and
keyboard
backlight (and any other external device) status, saving at shutdown and restoring their values at boot.
Hardware Function keys (
Fn-F11
and
Fn-F12
for screen backlight and
Fn-F10
for keyboard backlight) work without any operation, as well.
Note
By default, the keyboard backlight automatically turns off after 60 seconds of inactivity. You can change the default behaviour by editing the related
sysfs
entry
/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/stop_timeout
.
Dynamic Backlight/Brightness Control (DBC)
You may notice that the screen looks dimmer than you expect or the screen overall brightness changes constantly. This behaviour is not a symptom of any monitor issue but a technology called
Dynamic Backlight/Brightness Control (DBC)
, designed to save energy according to the content displayed on the screen.
Tip
You can check this feature on this
website
.
Note
This feature is
automatic
and
not-controllable
. According to official Dell
source
, only the
QHD+ models
have a chance to disable it via a firmware update.
SSD
This laptop series comes with a SSD as storage device, connected via SATA. This technology needs some configuration in order to achieve the best operative conditions. See
Solid State Drives
for further information.
Wi-Fi
Most configurations sport the
Dell DW1560 802.11ac
adapter. This is based on the Broadcom BCM4352 chip which requires proprietary driver to work. Packages
broadcom-wl
and
broadcom-wl-dkms
provide it. In the former case remember to install the Linux kernel headers too (even if it is listed as an optional dependency of the
dkms
package, it is mandatory for having a working network). See the
Broadcom wireless
page for more details and/or assistance.
Some higher-end models do not use the above-mentioned adapter, instead they use an
Intel Wireless 7265
card which is supported by the mainline kernel.
Note
The Intel card is widely available as an after-market purchase for those wishing to replace the Broadcom adapter in their laptop. This option, other than an enviable driver support for both Wi-Fi and Bluetooth that makes installation easier, compared to the Broadcom card, it has a 2-3 times wider reception range and a much higher throughput, making it a worthwhile upgrade. Other cards are also available, especially the Intel Wireless 8265 is known to work
[2]
.
Bluetooth
Note
For users with Intel wireless adapter with both Wi-Fi and Bluetooth, the Bluetooth interface should be available out-of-the-box, as the required firmware is included in
linux-firmware
.
The Broadcom Bluetooth firmware is not available in the kernel (
source
), so you need to install
broadcom-bt-firmware
AUR
and reboot if you want to use Bluetooth.
Alternatively, you can retrieve the firmware directly from the
Windows driver
by yourself. You need to extract the
.cab
file with
cabextract
and then convert it to a
.hcd
file with
hex2hcd
from
bluez-utils
:
$ cabextract 20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab
$ hex2hcd BCM20702A1_001.002.014.1443.1572.hex
# mv BCM20702A1_001.002.014.1443.1572.hcd /lib/firmware/brcm/BCM20702A1-0a5c-216f.hcd
# ln -rs /lib/firmware/brcm/BCM20702A1-0a5c-216f.hcd /lib/firmware/brcm/BCM20702A0-0a5c-216f.hcd
After reboot, the firmware is available for your Bluetooth interface.
Audio
Note
Proper audio support is dependent on having the latest firmware. If you have not yet updated to firmware A02 or newer, please perform a
BIOS update
first.
The sound chipset in this laptop, a Realtek ALC3263, is described as "dual-mode", meaning it supports both the
HDA standard
and the
I2S standard
. The embedded controller in the XPS 13 uses the
ACPI
_REV value provided by the OS itself to determine in which mode the sound chipset should be initialized in at boot.
HDA mode
With BIOS A02+ the sound card will be initialized in HDA mode by default.
Note
To use HDA mode on excluded kernels, re-compile them with the option
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
. This will force HDA mode on.
Setting the default sound card
By default, ALSA does not output sound to the PCH card but to the HDMI card. This can be changed by following
ALSA#Set the default sound card
. To set the proper order, create the following
.conf
file in
/etc/modprobe.d/
[3]
:
/etc/modprobe.d/alsa-base.conf
options snd_hda_intel index=1,0
Note
If you are dual-booting with Windows, you will have to do a cold boot twice before to have sound working in Linux and vice-versa. This is not necessary in I2S mode.
I2S mode
This article or section needs expansion.
Reason:
Explain how to switch to I²S mode without downgrading to ancient kernels. (Discuss in
Talk:Dell XPS 13 (9343)
)
I2S support requires
alsa-lib
1.1.0
[4]
or newer. (I2S support was broken in mainline kernel 4.5, and fixed in Arch kernel 4.5.2 and mainline 4.8
FS#48936
[5]
).
Enabling the microphone
Note
The microphone appears to be enabled by default as of official Arch Linux kernel 4.5.3, so these instructions may be unnecessary
FS#47989#comment146876
.
In I2S mode, the built-in microphone is muted by default. To enable it you have to unmute the
Mic
item. Follow the instructions below in order to achieve the goal:
open
alsamixer
(an utility included in the
alsa-utils
package)
press
F6
and select the
broadwell-rt286
sound card
press
F4
to switch to the
Capture view
and ensure that
ADC0
has the
CAPTURE
label. If it does not, toggle over to it with your arrow keys and press the spacebar to turn it on
CAPTURE
finally, toggle over to the
Mic
item and raise the volume to 100.
Note
Cycling the
Port
(from
Main Microphone
to
Headset Microphone (unplugged)
, and back) of the
Input Devices
tab in the
pavucontrol
application, has the same effect of the above instructions.
Using Jack
By default Jack recognises four capture ports and is unusable because the transport is broken into short fragments with breaks between them. Limit input to two channels with
-i2
on the command line or the corresponding option in
qjackctl
's advanced settings.
Function Keys
Here is a summary table about
Function Keys
you can use with this model:
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+F8
Yes
Yes
Switch internal/external display
Fn+F9
Yes
Yes
XF86Search
Fn+F10
No
Yes
Switch keyboard backlight intensity
Fn+F11
Yes
Yes
XF86MonBrightnessDown
Fn+F12
Yes
Yes
XF86MonBrightnessUp
Fn+Stamp
Yes
Yes
XF86RFKill
Fn+Insert
Yes
No
XF86Sleep
Fn+Super (Left)
Yes
No
Super (Right)
Fn+Ctrl (Right)
Yes
Yes
Menu
Fn+Left
Yes
Yes
Home
Fn+Up
Yes
Yes
Page Up
Fn+Down
Yes
Yes
Page Down
Fn+Ctrl (Right)
Yes
Yes
End
Fn+B
Yes
No
Pause
Fn+R
Yes
No
Print
Fn+S
Yes
No
Scroll Lock
Fn+A / D / E / F / G / T / Q / W
Yes
No
XF86Launch3
The key is visible to
xev
and similar tools.
The physical key has a symbol on it, which describes its function.
Touchpad
With the latest BIOS, the touchpad should work out-of-the-box with either the synaptics or libinput drivers. The second is recommended over the former.
Synaptics driver
For more advanced settings with the Synaptics driver, see
Touchpad Synaptics
.
If the touchpad freezes when you use more than one finger, try enabling Clickpad mode with
synclient Clickpad=1
.
Libinput driver
For better multi-touch support, you can use
xf86-input-libinput
. The libinput driver supports nearly all button layouts out-of-the-box with few additional settings.
Refer to the specific
libinput
page for more details.
For further configurable options (e.g. NaturalScrolling, MiddleEmulation), see
libinput(1)
.
Powersaving
With kernel 4.6.5 and
tlp
, the idle power usage can reach ~2.3 W with the
kernel parameter
pcie_aspm=force
enabled.
You may use
powertop
or
powerstat-git
AUR
to reproduce and check this behaviour by yourself.
Note
With kernel 4.6+, frame-buffer compression (
FBC
) is enabled by default, so
i915.enable_fbc
is no longer needed.
Panel self refresh (
PSR
) causes the display to flicker, so it has been disabled by default as of kernel 4.9
[6]
.
i915.lvds_downclock=1
for
LVDS downclock
is no longer needed. According to IRC #intel-gfx,
"[...] there is a new auto-downclock for eDP panels in recent kernels and it is enabled by default if available, [...]"
.
i915.enable_rc6=7
is useless on Broadwell (
Gen8
) systems because the deeper GPU power states that this option enables (RC6p and RC6pp) do not exist on
Gen7+
hardware
[7]
[8]
.
Calibrated ICC profile
QHD+ model
Warning
This profile is only for QHD+ model. Do not use it if you have the FHD one.
An
ICC profile
is a binary file which contains precise data regarding the colour attributes of the monitor. It allows you to produce consistent and repeatable results for graphic and document. The following ICC profile is made with dispcalGUI (
displaycal
) ArgyllCMS (
argyllcms
) and a spectrophotometer for absolute colour accuracy; even if it is possible to achieve better results by calibrating your own monitor by yourself, in general this profile is definitively an improvement over the stock profile.
This profile has been made with the spectrophotometer's high resolution spectral mode, with white and black level drift compensation, the high quality ArgyllCMS switch and 3440 patches. Dynamic Brightness Control has been disabled and the monitor has been turned on for at least 30 minutes prior to start the calibration.
QHD+, D65, Gamma 2.2, max luminance
.
Disable the touchscreen
This is an optional step and was tested 07.2019 using Gnome and Wayland. Find out which device it is:
$ libinput list-devices
Scroll to find the right section (Something like ELAN Touchscreen) and find the line
Kernel: /dev/input/
event#
. Use the
event#
for the next command:
$ udevadm info -a -p /sys/class/input/
event#
Find an attribute that is most probably unique/distinct. For example
ATTRS{name}=="ELAN Touchscreen"
and
create
:
/etc/udev/rules.d/99-disable_touchscreen.rules
KERNEL=="event*", ATTRS{name}=="ELAN Touchscreen", ENV{LIBINPUT_IGNORE_DEVICE}="1"
Then check if it worked:
$ udevadm test /sys/class/input/
event#
and search for:
LIBINPUT_IGNORE_DEVICE=1
If this line is there (most probably within the last 3 lines) reboot and your touchscreen should be disabled.
Battery thresholds
BIOS allows to set thresholds both for charging and discharging.
This is helpful to preserve battery health and reduce battery wear.
Even if kernel driver does not expose any interface to control battery
[9]
, a user-space interaction is still possible via
libsmbios
library or
dell-command-configure
AUR
[10]
proprietary tool.
Note
GNOME users can use
Battery Health Charging
extension
[11]
as simple yet powerful graphical way to manage it.
Troubleshooting
Random kernel hangs at boot
See
here
. This issue seems to affect only touchscreen model owners. The fix consists in removing
keyboard
from the
HOOKS
array in
/etc/mkinitcpio.conf
. If you need the keyboard at boot, edit the
MODULES
array as follows:
MODULES="atkbd usbhid hid-generic"
. You will have to
regenerate the initramfs
afterwards.
Sometimes the system fails to resume from suspend after closing and reopening the LID
Even if it has been reported as fixed upstream according to
this kernel.org bug report
, users still suffer of this problem (reported for both FullHD model with kernel 4.20.12 and the QHD+ model with kernel 4.18.6).
One more, following a comment in the above-mentioned bug report, you can work it around by blacklisting
mei
modules:
/etc/modprobe.d/blacklist.suspend-bug.conf
blacklist mei
blacklist mei_me
Graphical artifacting/instability after S3 resume
If you encounter some artifacts and/or an unusable graphical environment after resuming from a suspend, you may want to
switch your Intel graphics acceleration from SNA to UXA
. Switching to UXA, however, will result in worse performance. Switching to xf86-video-modesetting (Glamor acceleration) should not decrease performance considerably,however it is still not known if will fix the resume issue.
Connection issues with Broadcom wireless
If
wifi-menu
and
iwlist scan
fail after driver installation and reboot, try disabling "Wireless Switch" control in the BIOS.
DE cannot connect Bluetooth devices
If the Bluetooth GUI cannot connect the device, try to use
bluetoothctl
to connect manually.
Loud cracks/noise during boot or audio playback
Some users have reported the above sound problems, as described
here
for example.
Disabling audio powersafe
may work for people using the
HDA
audio mode.
However, it is still unknown how to solve this issue for the
I2S
audio mode.
For further reference, see the corresponding
kernel bug entry
.
Pink & green artifacts in video or webcam output
Update
xf86-video-intel
to latest version. This should fix the issue.
4K/60Hz with mini DisplayPort/HDMI Adapter
Even when using an active miniDP/HDMI Adapter that supports 4K/60Hz output, the display may not be recognized as supporting 60Hz. Only the 4K/30Hz mode may be detected and shown by
xrandr
. In this case, you can still add the 60Hz mode manually, using the
reduced blinking
modeline from
cvt
:
cvt -r 3840 2160 60
# 3840x2160 59.97 Hz (CVT 8.29M9-R) hsync: 133.25 kHz; pclk: 533.00 MHz
Modeline "3840x2160R"  533.00  3840 3888 3920 4000  2160 2163 2168 2222 +hsync -vsync
Without the
-r
flag that calculates the reduced blinking modeline, it may not work. Then proceed as described in
xrandr#Adding undetected resolutions
.
See also
General:
Collection of links and different configurations
Service Manual for Dell XPS 13 (9343)
Project Sputnik:
Recent Fixes for XPS 13 developer edition
Update 2: Dell XPS 13 laptop, developer edition – Sputnik Gen 4
Update: Dell XPS 13 laptop, developer edition – Sputnik Gen 4
4th gen Dell XPS 13 developer edition available!