Dell XPS 13 (2016)
Device | Status | Modules |
Video | Works after configuration | i915 |
Wireless | Works after configuration | brcmfmac |
Bluetooth | Works after installing firmware | btbcm |
Audio | Working | snd_hda_intel |
Touchpad | Works after configuration | ? |
Webcam | Working | uvcvideo |
Card Reader | Working | rtsx_pci |
Wireless switch | Not supported yet | ? |
Function/Multimedia Keys | Working | ? |
The Dell XPS 13 2016 (9350) is the third-generation model of the XPS 13 line. Unlike its predecessor, it has no official Linux support yet. Just like the older versions (Dell XPS 13 and Dell XPS 13 (2015)) 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, Beginners' guide and UEFI. This page covers the current status of hardware support on Arch, as well as post-installation recommendations.
As of kernel 4.3, the Intel Skylake architecture is supported.
Contents
BIOS updates
BIOS update 1.2.3 was released on 2016-01-29. Store the update binary on your EFI partition (/boot/EFI
) or on a USB flash drive, reboot, and choose BIOS Update in the F12 boot menu.
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" before attempting to install Arch. If dual boot to Windows is intended, follow [1] to work around the "INACCESSIBLE_BOOT_DEVICE" error.
NVM Express SSD
Cannot find root device
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.
Edit your /etc/mkinitcpio.conf
file:
... MODULES="... nvme" ...
Then update the bootloader.
# mkinitcpio -p linux
where linux
is the name of the image loaded on boot. If you installed linux-mainlineAUR then change that to linux-mainline
.
Note on Mount Options
As reported by a few users on the forum using the discard
mount option for your filesystem is not recommended by Intel in the reference guide of the driver.
An answer from Intel Communities suggests that the best option is to use the fstrim
timer which is provided by util-linux and can be enabled simply through:
# systemctl enable fstrim.timer
Wireless
The built-in Broadcom BCM4350 is now supported in the current linux kernel (as of version 4.4.1-1). The wireless module brcmfmac
also needs the firmware brcmfmac4350-pcie.bin
from the related linux-firmware package.
If you have not already done so, enable the testing repository to retrieve the package in /etc/pacman.conf
:
# The testing repositories are disabled by default. To enable, uncomment the # repo name header and Include lines. You can add preferred servers immediately # after the header, and they will be used before the default mirrors. [testing] Include = /etc/pacman.d/mirrorlist [core] Include = /etc/pacman.d/mirrorlist
Bluetooth
The Broadcom Bluetooth firmware is not available in the kernel (the same as for 2015 model source), so you will have to retrieve it from the [2]. You need to extract the .exe
file with p7zip 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
After reboot, the firmware should be available for your Bluetooth interface.
Video
The video should work with the i915
driver of the current linux kernel. If you experience a blank screen issue after booting, try loading the driver early in the boot process (see Intel graphics#Blank screen during boot, when "Loading modules"):
/etc/mkinitcpio.conf
MODULES="... i915 ..."
Then update the bootloader.
# mkinitcpio -p linux
Where linux
is the name of the image loaded on boot. If you installed linux-mainlineAUR then change that to linux-mainline
.
If you are using an older kernel 4.3 or earlier, you also require the kernel parameter i915.preliminary_hw_support=1
, see Intel graphics#Driver not working for Intel Skylake chips. (For later kernels 4.3+ or linux-bcm4350AUR the parameter is unnecessary.)
Touchpad
Only key-presses work out of the box. Installing xf86-input-synaptics
and restarting X fixes the problem (see Dell Studio XPS 13). xf86-input-libinput
may be a good alternative that also handles touchscreen - see libinput for configuration.
If dmesg | grep -i psmouse
returns an error, but your touchpad still works, then it might be a good idea to disable psmouse
. First create a config file:
# nano /etc/modprobe.d/modprobe.conf blacklist psmouse
Then add this file to /etc/mkinitcpio.conf
:
... FILES="/etc/modprobe.d/modprobe.conf" ...
Then update the bootloader.
# mkinitcpio -p linux
where linux
is the name of the image loaded on boot. If you installed linux-mainlineAUR then change that to linux-mainline
.
Sound
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
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
Also people noticed loud popping-noises when sound was not playing.
You can turn off the sound_power_save in tlp
# nano /etc/default/tlp ... SOUND_POWER_SAVE_ON_BAT = 0 ...
PulseAudio Workaround
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. However, you must make the same modifications every time the PulseAudio package is updated.
Microphone
For ALSA, increase "Digital" channel for microphone to work.
Links
General Discussion Thread on Arch Forum [3]