Dell XPS 13 (9350)

This article or section does not follow the
Laptop page guidelines
.
Reason:
Missing IDs in the hardware table, missing an Accessibility and "Function keys" section. (Discuss in
Talk:Dell XPS 13 (9350)
)
Note
This page refers to the early 2016 model of XPS 13. For the late 2016 model see
Dell XPS 13 (9360)
, for the late 2024 model see
Dell XPS 13 (9350) 2024
.
Hardware
PCI/USB ID
Working?
GPU
Yes
Wireless
Yes
Bluetooth
Yes
Audio
Yes
Touchpad
Yes
Webcam
Yes
Card Reader
Yes
TPM 1.2/2.0
Yes
The Dell XPS 13 2016 (9350) is the third-generation model of the XPS 13 line. The laptop is available in both a standard edition with Windows installed as well as a Developer Edition which only differs in that it comes with Ubuntu installed as well as the Broadcom WiFi card replaced with an Intel WiFi card. Just like the older versions (
Dell XPS 13 (9333)
and
Dell XPS 13 (9343)
) it can be bought in different hardware configurations.
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
. This page covers the current status of hardware support on Arch, as well as post-installation recommendations.
Content adaptive brightness control
In the XPS 13 the display panels (both FHD and QHD+) come with adaptive brightness embedded in the panel firmware, this "content adaptive brightness control" (usually referred to as CABC or DBC) will adjust the screen brightness depending on the content displayed on the screen and will generally be found undesirable, especially for Linux users who are likely to be switching between dark and light screen content. Dell has issued a fix for this however it is only available to run in Windows and for the QHD+ model of the laptop so this precaution should be taken before installing Linux, the FHD model of the XPS 13 (9350) cannot be fixed. This is not a problem with the panel but rather a problem with the way the panels are configured for the XPS 13, as the same panel exists in the Dell's Latitude 13 7000 series (e7370) FHD model but with CABC disabled. The fix is available directly from
Dell
.
Installation
The most convenient way to install Arch Linux is by disabling "Secure Boot" (Secure Boot > Disable). However it is possible to self-sign your kernel and boot with it enabled. For further information have a look at the
Secure Boot
article.
In case your
efivars
are not properly set it is most likely due to you not being booted into
UEFI
. Should the problem persist be sure to consult the
UEFI#UEFI variables
section.
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
.
Alternatively, you can manually update, e.g. to the
BIOS update 1.13.0
which was released on 2020-10-06: store the update binary in the
EFI system partition
or on a USB flash drive (FAT32), reboot, and choose "BIOS Update" in the
F12
boot menu. This might also help if your machine will not resume after suspend.
Thunderbolt 3 / USB 3.1
The USB-C port supports Thunderbolt 3, Displayport-over-USB-C and USB power delivery as well as USB 3.1.
In the event of devices not working correctly, ensure that you have updated to the latest BIOS (above) and Thunderbolt firmware (below).
Dell is working on a fwupd extension (
github repository
) that allows updating Thunderbolt software from Linux.
Alternatively, the
Thunderbolt 3 Firmware Update 4.26.11.001, A08
was released on 2018-04-05. Unlike the BIOS update and the Thunderbolt-nvm Linux update, this is a graphical application which must be run in a modern Windows environment (MS-DOS will not suffice) or you can attempt the procedure below (at your own risks).
Doing Thunderbolt firmware updates without
fwupd
or Windows
The thunderbolt updates are a bit more complicated to do than the UEFI updates. The following was tested on kernel 4.16.13. You need to download the Thunderbolt update executable then extract the files from it:
$ 7z x Intel_TBT3_FW_UPDATE_NVM26_FJJK7_A08_4.26.11.001.exe
If you do not have any thunderbolt device plugged in, you need to force the controller on
# echo 1 > /sys/devices/platform/PNP0C14:00/wmi_bus/wmi_bus-PNP0C14:00/*/force_power
Check the controller current firmware version:
# cat /sys/bus/thunderbolt/devices/0-0/nvm_version
Then copy the file to the controller's memory and authenticate
# dd if=Intel/0x0704_secure.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem
# echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
The system may hang for a few seconds, and after a moment, if you read nvm_version again, it should show the new version number.
External screen
External sceens are working well with newer BIOS and Thunderbolt firmware versions applied, e.g. fully functional with the external dock Dell WD15.
Support for external screens either using an USB-C to HDMI or USB-C to Mini Display ports adapters may not be working properly in rare cases. Commonly the screen when plugged is reported to either:
display an image for a few milliseconds then switch to a black screen;
have no image at all;
being flickering after a few minutes to the extent this is basically unusable.
In some cases intermittent external monitor connection may be caused by WiFi interference with the 9350's USB-C port--particularly when the lid is closed. Reducing WiFi power via iw or iwconfig may allow a steady external monitor connection.
Refer to the
according Arch Forum entry
for an exhaustive discussion about working adapters and the
Dell forum entry
.
SATA controller
When the SATA-controller is set to
RAID On
in Bios, the hard disk (at least the SSD) is not recognized. Set to
Off
or
AHCI
(
AHCI
is recommended) before attempting to install Arch.
Dual booting Linux and Windows
In order to boot into Windows properly without getting an
INACCESSIBLE_BOOT_DEVICE
error with disabled
RAID
you must configure Windows to use the
AHCI
-speaking SATA storage controller, assuming you used
AHCI
for installing Linux. The driver is effectively disabled even though it is installed. Either of the following methods were reported to activate the drivers without re-installation (your mileage may vary):
booting into safe mode and back
Selecting "Microsoft Storage Spaces Controller" in Windows Device Manager
Modifying registry entries
Modifying other registry entries
Consult the
Microsoft support
page for additional information. Be aware that some manufactures propagate reinstalling Windows to be the only solution, which it is not.
NVM Express SSD
The location of the
nvme
module for
"NVM Express"
SSD has changed between
linux
kernel version 4.3 and 4.4. If you experience
cannot find root device
on boot, it may be due to the
nvme module not being present in initramfs
. In this case, the following may resolve your issue:
/etc/mkinitcpio.conf
...
MODULES=(... "nvme")
...
Then
regenerate the initramfs
.
Wireless
Install
linux-firmware
to obtain the required firmware
brcmfmac4350-pcie.bin
.
The Broadcom adapter does not report its
regulatory domain
and so, by default, the global settings for channels and frequencies will be set.
Bluetooth
Intel WiFi
If your WiFi card supports Bluetooth, then the BT interface should be available out-of-the-box, as the required firmware is included in
linux-firmware
.
Broadcom Wifi
Bluetooth should work right away. Load the module
btusb
and
bluetooth
if it was not already and
start
/
enable
bluetooth.service
. Refer to
Bluetooth
for more information and configuration options.
Note
The Broadcom
brcmfmac
kernel module causes issues with Dell USB-C docks. Notably, the USB ports and ethernet connection will stop working when there are WiFi connection issues.
Wireless headset: strange bluetooth behavior
If your Bluetooth behaves unstable, such as connection loss, stuttering sound. being able to connect but not to listen through it, etc. you probably need the proprietary firmware.
The Broadcom Bluetooth firmware is not available in the kernel (the same as for the 2015 model
source
), therefore you will have to retrieve it from a Windows
.exe
. You need to extract the
.exe
file with
7zip
and then convert it to a
.hcd
file with
hex2hcd
from
bluez-utils
:
$ 7z x 9350_Network_Driver_XMJK7_WN32_12.0.1.720_A00.EXE
$ cp Win32/BCM4350C5_003.006.007.0095.1703.hex ./
$ hex2hcd BCM4350C5_003.006.007.0095.1703.hex
# mv BCM4350C5_003.006.007.0095.1703.hcd /lib/firmware/brcm/BCM-0a5c-6412.hcd
Alternatively, you may simply install
bcm4350-firmware
AUR
.
After a reboot, the firmware should be available for your Bluetooth interface.
Video
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
Troubleshooting
.
Power savings
Warning
The following options of the
i915
module taint the kernel, use at your own risks!
RC6
i915.enable_rc6=1
seems to be stable, setting the value to a number higher than 1, will be ignored. The deeper GPU power states that this option enables (RC6p and RC6pp) do not exist on gen7+ hardware.
[1]
[2]
.
Panel Self Refresh
i915.enable_psr=1
allows for some really nice power savings by leaving the package longer in more efficient C-states. However, users experience freezes for a few seconds with this option fairly often, setting the value to
2 or 3
may yield to similar power savings but without the freezes.
i915.disable_power_well=0
with
i915.enable_psr=1 i915.enable_rc6=1
also seems to be a stable configuration for PSR.
Frame Buffer Compression
i915.enable_fbc=1
is stable but does not seem to yield significant power saving results.
GuC
GuC
loading with
i915.enable_guc_loading=1 i915.enable_guc_submission=1
seems stable too.
Power management
Fans
The fans may remain on even at low temperatures, draining the battery and producing an unpleasant noise that will only stop on reboot. This is due to the fans being controlled by the BIOS by default.
To prevent this behavior, configure i8k as described in
Fan speed control#Dell laptops
and use
dell-bios-fan-control-git
AUR
utility to disable BIOS control of fans which conflicts with i8k. You may also want to
enable
and
start
dell-bios-fan-control.service
to ensure BIOS control of fans is disabled at boot.
If i8kutils is installed it will show fan speed and temperature sensors with:
$ watch sensors
Touchpad
Only key-presses work out of the box. Installing
xf86-input-libinput
is sufficient for proper mouse support plus it also handles the touchscreen - see
libinput
for configuration. Features such as tap-to-click are usually adjustable within the
desktop environment
.
Alternatively you may want to install
xf86-input-synaptics
as driver but "it is on maintenance mode and
xf86-input-libinput
must be preferred over" (installation note from the package itself). Plus it may lack the ability to be easily adjustable within your
desktop environment
. Restarting the X server might be required.
Remove psmouse errors from dmesg
If running
dmesg | grep -i psmouse
as root returns an error, but your touchpad still works, then it might be a good idea to disable
psmouse
. First
create
:
/etc/modprobe.d/modprobe.conf
blacklist psmouse
Then add it to:
/etc/mkinitcpio.conf
...
FILES=("/etc/modprobe.d/modprobe.conf")
...
To finish,
regenerate the initramfs
.
Gestures
Refer to
libinput#Gestures
for information about the current development state and available methods.
Keyboard
By default, the keyboard backlight turns off after 10 seconds of inactivity.
Some users might find this too short and annoying.
Since
BIOS update 1.40
this timeout can be adjusted by writing into
/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/stop_timeout
like on other Dell XPS laptops.
Sound
Coil whine when using headphones
When using TLP and audio is not playing but headphones are plugged in you may experience extremely annoying whine when using the computer. This happens after the audio adapter power saving is enabled. By default TLP sets the timeout on battery to 1 second which will cause whining almost as soon as sound is paused. To remedy this you can edit
/etc/default/tlp
to set a higher timeout or disable it:
SOUND_POWER_SAVE_ON_AC=300
SOUND_POWER_SAVE_ON_BAT=300
High noise floor when using headphones
Some people reported white hissing/crackling noises when using headphones. To get rid of them you can run
alsamixer
from
alsa-utils
.
Select your soundcard with F6 and set the headset-gain to 22 (3rd lever from the left) or use the
amixer(1)
command:
$ amixer -c 0 cset 'numid=10' 1
numid=10,iface=MIXER,name='Headphone Mic Boost Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0
  : values=1,1
  | dBscale-min=0.00dB,step=10.00dB,mute=0
Unfortunately
PulseAudio
will override the above setting every time you log in/out of your environment (or every time the PulseAudio service is restarted), even if the
alsa-restore.service
is enabled at
start
up.
To work around this issue, edit
/usr/share/pulseaudio/alsa-mixer/paths/analog-input-headphone-mic.conf
and comment out the section
[Element Headphone Mic Boost]
:
---
#[Element Headphone Mic Boost]
#required-any = any
#switch = select
#volume = merge
#override-map.1 = all
#override-map.2 = all-left,all-right
---
Similarly in
/usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf
, comment out the same section:
---
#[Element Headphone Mic Boost]
#switch = off
#volume = off
---
This will prevent PulseAudio to fiddle with the gain setting at all.
Note
Unfortunately, you must make the same modifications every time the PulseAudio package is updated. Additionally, this will entirely disable the internal microphone.
Microphone
Note
Not all hardware has the "Digital" channel
For ALSA, increase "Digital" channel for microphone to work.
No audio input through combo jack
Note
This might only apply for the Developer Edition
The device is recognized when you plug in a headset, however there is no audio input when you speak into the microphone.
To solve this issue you have to pass
model=auto
to the
snd-hda-intel
kernel module. You can do this with a drop-in file:
/etc/modprobe.d/fix-audio-input.conf
options snd-hda-intel model=auto
TPM
As shipped the Trusted Platform Module (TPM) can be configured easily following the steps at
Trusted Platform Module
and requires no otherwise special configuration. Handy packages to use with the TPM are
tpm-tools
AUR
and
trousers
AUR
.
TPM 2.0
Originally the Dell XPS 13 (9350) shipped with TPM 1.2 - the TPM chip was configured to support the TPM Standard version 1.2. However, Dell released a
firmware update
(internal version 1.3.2.8, A02) for the TPM chip that converts it to support the feature set of TPM Standard version 2.0. Unfortunately, as of this moment the update cannot be applied through Linux or the BIOS direct flashing capabilities. The only way to install it seems to be to apply it through a running Windows OS. The easiest method is to run a temporary Windows installation on a USB drive, boot into it and run the update from there.
Note
It should be noted that this update is reversible (i.e. back to TPM 1.2) by using a
firmware update
. It also requires that the TPM memory and configuration is completely cleared.
As for BIOS updates, make sure the laptop is plugged in to a power source and that power source is stable.
To install the update one can follow the instructions on the above mentioned firmware update page to clear and reset the TPM chip and initiate the update. Users intending to later use the device in Linux, can skip the last steps 11 & 12 from section "Disable TPM Auto Provisioning in Windows". Another option is to just clear the TPM following
this guide
and just run the
.exe
file from Windows.
Once the update succeeds, the Linux kernel should automatically recognise the newly configured TPM device and enable it automatically on next boot. To make use of the now TPM 2.0 chip a couple of packages are worth installing -
tpm2-tss-git
AUR
and
tpm2-tools-git
AUR
. To make the TSS resource manager work on boot, a handy systemd service is provided and its variants discussed
here
.
CPU slowdown after resume from suspend
If you are experiencing a very slow computer after resume from suspend, you may be subject to a bug where your CPU frequency is capped to a very low value. Use
cpupower frequency-info
to check. If so, please read
this forum thread
for debug information, and a workaround.
See also
Arch Forum thread for XPS 13
Dell XPS 13 9350 driver and firmware updates
Service Manual for Dell XPS 13 (9350)