Dell XPS 13 (2015)
Device | Status | Modules |
Video | Working | i915 |
Wireless | Working | wl or iwlwifi |
Bluetooth | Works after installing firmware | btbcm |
Audio | Working | snd_hda_intel |
Touchpad | Works after configuration | hid_multitouch |
Webcam | Working | linux-uvc |
Card Reader | Working | rtsx_usb |
Wireless switch | Works, but is problematic with Broadcom WiFi | rfkill |
The 2015 Dell XPS 13 (9343) is the second-generation model of the XPS 13 line, and like its predecessor, it has official Linux support courtesy of Dell's Project Sputnik team. They target Ubuntu 14.04 LTS, but the improvements and support from the Sputnik team are generally applicable to all distros.
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.1.3, a patched kernel is no longer necessary. However, some manual configuration is still recommended to get the best experience.
Contents
- 1 Model differences
- 2 Configuration
-
3 Troubleshooting
- 3.1 Pink & green artifacts in video or webcam output
- 3.2 Graphical artifacting/instability after S3 resume
- 3.3 Connection issues with Broadcom wireless
- 3.4 rfkill issues with Broadcom wireless
- 3.5 EFISTUB does not boot
- 3.6 Repeating keys issue
- 3.7 Random kernel hangs at boot
- 3.8 Sound doesn't work after upgrading to kernel 4.4
- 4 See also
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/QHD+) and WiFi adapter differences (Dell DW1560 vs. Intel 7265). For users with the QHD+ model, you'll need to use a DE/WM that properly supports HiDPI. Regarding the WiFi adapter choices, both cards do work in Arch, but the Dell DW1560 requires a proprietary kernel module that is not well-supported, whereas the Intel 7265 is supported by the mainline kernel.
There are no exclusive hardware differences between the Developer Edition and the Windows edition of this laptop; this guide is equally applicable to both models.
Configuration
BIOS updates
BIOS update A07 was released on 2015-11-26. With A02 or newer, almost everything should work out of the box, and the kernel boot parameters that were used in conjunction with earlier BIOS versions are no longer necessary. 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.
WiFi
Most configurations feature the Dell DW1560 802.11ac adapter (Broadcom BCM4352), which requires broadcom-wlAUR or broadcom-wl-dkmsAUR to be installed. See the Broadcom wireless page for more details and/or assistance.
Some higher-end models do not use the Dell-branded adapter but instead use an Intel Wireless 7265, which is supported by the mainline kernel. This card is generally available as an aftermarket purchase for those wishing to replace the Broadcom wireless in their laptop. Compared to the Broadcom card, the Intel card has a 2-3 times wider reception range and way higher throughput, making it an worthwhile upgrade should you decide to do so. Note that the Intel 7265 card exists as both a WLAN standalone and WLAN/Bluetooth combo card; both work, so it's your decision if you are willing to pay extra to get Bluetooth support or not.
Bluetooth
The Broadcom Bluetooth firmware is not available in the kernel (source), so you will have to retrieve it from the Windows driver. 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 should be available for your Bluetooth interface.
Audio
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 you use to determine which mode the sound chipset should be initialized in at boot.
HDA mode
With BIOS A02+ and Arch kernel 4.3 or older, the sound card will be initialized in HDA mode.
Microphone support was finally fixed in the mainline kernel in 4.1.3. All older kernel versions require patches to fix it. To fix it on kernels 4.1.0-4.1.2, apply the patch available here. To fix it on kernels older than 4.1, apply this patchset: 1, 2.
Note that if you are dual-booting with Windows, you will have to do a cold boot twice before HDA sound will work in Linux and vice-versa.
I2S mode
With BIOS A02+ and Arch kernel 4.4 or newer, the sound card will be initialized in I2S mode.
I2S support in Linux is quite nascent and wasn't up to par with HDA support until recently, so a quirk flag was enabled in the mainline kernel that would force HDA mode on.[1][2] This flag has been disabled in the stock Arch kernel as of 4.4.[3] Also note that I2S support is known to be broken with older versions of alsalib.[4]
In I2S mode, the dual-boot workaround is not necessary.
ALSA configuration
By default, ALSA doesn't output sound to the PCH card but to the HDMI card. This can be changed by following ALSA#Set the default sound card. In the current case, both cards use the snd_hda_intel
module. To set the proper order, create the following .conf
file in /etc/modprobe.d/
[5]:
/etc/modprobe.d/alsa-base.conf
options snd_hda_intel index=1,0
High quality ICC monitor profiles
An ICC profile is a binary file which contains precise data regarding the color attributes of the monitor. It allows you to produce consistent and repeatable results for graphic and document editing and publishing. The following ICC profiles are made with DispcalGUI, ArgyllCMS and a spectrophotometer for absolute color accuracy. Since every monitor is different it is possible to achieve better results calibrating your own monitor, but if you don't have a colorimeter or a spectrophotometer you will get far better results with the following XYZ LUT + MATRIX profiles made with a ~3500 patches testchart instead of the canned ones. If you previously didn't install a canned profile you will notice a night and day difference in color accuracy. Do not use a profile made for the QHD+ version with the FHD one and vice versa. The profiles 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 at least 30 minutes before commencing the calibration.
- FHD, D65, Gamma 2.2, max luminance: coming soon (I will get my hands on the FHD monitor in February.) However, it may not be possible to accurately calibrate the FHD display due to the dynamic contrast behaviour of the panel which cannot be disabled.
Touchpad
With the latest BIOS patch, most of the touchpad functions should work, although palm detection does not work in i2c mode yet. For advanced settings with xf86-input-synaptics, the psmouse kernel module must be blacklisted first.
The touchpad may freeze if two fingers are detected on the pad. This can be fixed by setting synclient Clickpad=1
If your desktop does not provide useful default settings for the clickpad (no right or middle button emulation, for example) or you want more control than your desktop environments settings provide, see Touchpad Synaptics
If you need working palm detection, you can use xf86-input-libinput. The libinput driver supports nearly all button layouts out of the box with few additional settings.
/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass" Identifier "touchpad" MatchProduct "DLL0665:01 06CB:76AD UNKNOWN" Driver "libinput" Option "Tapping" "on" Option "AccelSpeed" "1" EndSection
For kernel >= 4.4, the touchpad description is "DLL0665:01 06CB:76AD Touchpad".
Powersaving
With kernel 4.1 and tlp, the idle power usage is reduced to ~3.5 W with the following kernel parameters:
pcie_aspm=force i915.enable_fbc=1 i915.enable_rc6=7
At least since kernel 4.3.3 the flickering caused by i915.enable_fbc=1
seems to have been fixed, and freezes happen significantly less often. However, heavy flickering may still occur with external monitors.
Additionally, powertop may also be employed to tweak the performance and monitor power consumption.
Troubleshooting
Pink & green artifacts in video or webcam output
Update xf86-video-intel if you haven't already; this should fix the issue.
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 decreased performance. Switching to xf86-video-modesetting (glamor acceleration) should not decrease performance much, however it is still not known if will fix resume.
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.
rfkill issues with Broadcom wireless
With kernel 4.4 and Broadcom WiFi card, the wireless switch has no effect except freezing the pointer in the KDE desktop (to unfreeze it switch to another virtual console and back).
With lower kernel versions it switches the wireless card on/off at the hardware level, but the Broadcom driver does not not react to it properly: it does not realise the card is off, and only sees a lost connection. It then fails to recover when the card is switched back on. You can work-around this issue by switching WiFi off and on again in the NetworkManager applet or by setting /sys/class/rfkill/rfkill0/state
to 0 and then 1. Alternatively, you can disable the "Wireless Switch" control in the firmware setup.
EFISTUB does not boot
As of version A07, the BIOS does not pass any boot parameters to the kernel. Use a UEFI boot loader instead. systemd-boot works with current kernels.
Repeating keys issue
BIOS A07 should fix this.
Random kernel hangs at boot
See here. This issue seems to only affect those with touchscreens. The fix consists in removing "keyboard" from the HOOKS in /etc/mkinitcpio.conf and instead using MODULES="atkbd.ko usbhid hid-generic" (if you need the keyboard hook). Obviously you will have to run:
# mkinitcpio -p linux
Sound doesn't work after upgrading to kernel 4.4
You need to do two cold boots (don't reboot; shutdown and turn back on again) to make sound work again. This is necessary because I2S support was enabled in the Arch 4.4 stock kernel, and the XPS 13's embedded controller requires two cold boots to recognize changes in the sound chipset mode. See the Audio section above for more information.
It is reported that recompiling the kernel with the CONFIG_ACPI_REV_OVERRIDE_POSSIBLE option will re-enable the microphone. See the BBS thread and bug report for information.
See also
General:
Project Sputnik: