Dell XPS 13 (2016)

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: This page is a work in progress; you're warmly invited to contribute! (Discuss in Talk: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.

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

Note: Intel WiFi users: 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.

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 ..."
Note: Some hardware also need intel_agp. If you do, you should write "... intel_agp i915 ..." (the order matters).

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

Note: Not all hardware has the "Digital" channel

For ALSA, increase "Digital" channel for microphone to work.

Links

General Discussion Thread on Arch Forum [3]