Dell XPS 13 (9360)
Device | Status | Modules |
Video | Working | i915 |
Wireless | Working | ath10k |
Bluetooth | Working | btusb |
Audio | Working | snd_hda_intel |
Touchpad | Working | hid_multitouch (mousedev) |
Webcam | Working | uvcvideo |
USB-C / Thunderbolt 3 | Working | ? |
Wireless switch | Working | intel_hid |
Function/Multimedia Keys | Working | ? |
Fingerprint sensor | Not working | ? |
The Dell XPS 13 Late 2016 (9360) is the fourth-generation model of the XPS 13 line. The laptop is available since October (pre-2017 model) in both a standard edition with Windows installed as well as both a pre-2017 model and a 2017 model (with insignificant hardware differences) Developer Edition with Ubuntu 16.04 "SP1" installed, featuring kernel 4.8 as of now. There is only minor hardware differences between them, mostly in regards to the mainboard microchip manufacturers. Just like the older versions (9333, 9343 and 9350) it is available in different hardware configurations as well. These fourth gen models includes Intel's Kaby Lake CPUs and advertised with up to 16GB LPDDR 1866 MHz RAM and a 1TB PCI SSD. It will now also be available in Rose Gold. Prior to previous information and current specifications available provided by Dell (at least to regular customers), it is not available with the 2133 MHz RAM speed. However, some models, including those available to employees and possibly Dell partners (and/or business customers), memory speed is indeed available up to 2133 Mhz LPDDR3 (non-upgradable). ref. The same mentioned models are also available with the Intel Core i7-7660U (aswell as i7-7560U) with the Intel 640 Iris Plus onboard graphics. Respective clock frequencies are 2.5 Ghz (up to 4GHz in Turbo-mode) and 2,4 Ghz (up to 3.8 Ghz), respectively.
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.
As of kernel 4.5, the Intel Kaby Lake architecture is supported.
Contents
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 (9360) 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.
NVM Express SSD
NVME Power Saving Patch
Andy Lutomirski has created a patchset which fixes power saving for NVME devices in linux. The patch was merged into mainline and manually compiling the kernel is not necessary anymore. Nevertheless the AUR package is still available for further use if desired. Linux-nvme — Mainline linux kernel patched with Andy's patch for NVME power saving APST.
- https://github.com/damige/linux-nvme || linux-nvmeAUR (check out [1] for compiled packages)
For some devices it might be necessary to set a higher value for the nvme_core.default_ps_max_latency_us
parameter to enable all power saving states. This parameter has to be set on the kernel command line.
For the Toshiba 512GB SSD used in some models of the XPS 13 the value to enable all PS-States is 170000 (the combined latency of entering and leaving the highest power state, add nvme_core.default_ps_max_latency_us=170000
to your kernel command line). For the 1TB SSD this valued should be increased to 180000 instead. To check if all states are enabled you can use the nvme-cliAUR package, which provides the nvme-cli
command:
# nvme get-feature -f 0x0c -H /dev/nvme0 get-feature:0xc (Autonomous Power State Transition), Current value:0x000001 Autonomous Power State Transition Enable (APSTE): Enabled Auto PST Entries ................. Entry[ 0] ................. Idle Time Prior to Transition (ITPT): 1500 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 1] ................. Idle Time Prior to Transition (ITPT): 1500 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 2] ................. Idle Time Prior to Transition (ITPT): 1500 ms Idle Transition Power State (ITPS): 3 ................. Entry[ 3] ................. Idle Time Prior to Transition (ITPT): 8500 ms Idle Transition Power State (ITPS): 4 .................
If the power states are enabled there should be values for ITPT and ITPS in the first entries. Also the ITPS-value of the last filled entry should be the highest power saving-state of the SSD (which can be viewed using smartctl -a /dev/nvme0
or nvme id-ctrl /dev/nvme0
).
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.
If you have the QHD+ (3200x1800) model, also check out HiDPI for UI scaling configurations.
But there might be video issues left for this model. Please help by contributing any feedback about similar issues you might have experience(d) to this bugreport (https://bugs.freedesktop.org/show_bug.cgi?id=100671).
Module-based Powersaving Options
For the HD 620 graphics card the following modules are working: (see Intel graphics#Module-based Powersaving Options)
modeset=1 enable_rc6=1 enable_fbc=1
The first argument is to enable modesetting if it's not set by default. The second argument is needed to activate power-saving C-States. Higher values than 1 are not available for kaby lake CPUs. The third argument is for frame buffer compression power savings. These values should work well!
enable_guc_loading=1 enable_guc_submission=1
These arguments are used to enable GuC updates. GuC is a small proprietary binary blob released by intel to update the GuC binary in faster intervals than the kernel release does. It is used for graphics workload scheduling on the various graphics parallel engines. More details at (https://01.org/linuxgraphics/downloads/firmware). The GuC binary for kaby lake is included since firmware release linux-firmware 20170217 in the official repository. HuC is also a binary blob from intel. It's designed to offload some of the media functions from the CPU to GPU. As of kernel 4.12, HuC is loaded if GuC is enabled. One can check with 'cat /sys/kernel/debug/dri/0/i915_huc_load_status' and 'cat /sys/kernel/debug/dri/0/i915_guc_load_status'.
enable_psr=1
Panel Self Refresh (PSR) is working for eDP 1.3 and up and does stop the creation of new frames when the screen content is static to save energy. If you experience problems with PSR try to set 'disable_power_well=0' or disable otherwise.
NOT WORKING: semaphores=1
The semaphore option is NOT working for kaby lake CPUs and won't enable even if you set the option to 1.
Blank screen issue after booting
If using "late start" KMS (the default) and the screen goes blank when loading modules, it may help to add i915
and intel_agp
to the initramfs or using a special kernel parameter. Consult Intel graphics#Blank screen during boot, when "Loading modules" for more information about the kernel parameter way and have a look at Kernel mode setting#Early KMS start for a guide on how to setup the modules for the initramfs.
Wireless
The Killer 1535 Wirless Adapter is functional and the ath10k firmware is included in recent linux kernel versions. The connection speed reported by iw is limited to 1-6Mbits/s. However this is just the output being wrong. The real connection speed is not limited to this value.
Some users are experiencing issues, where the connection is dropped under heavy load but reconnects within a brief moment. This might not be noticed during browsing at all but becomes apparent in online games. There is a firmware update proposed by DELL to fix the issue, but it might not fix all the issues. In at least one case the new firmware did not fix the connection loss / low connection speed problem. Signs of this problem seems to be two kinds of messages in dmesg:
pcieport 0000:00:1c.4: AER: Corrected error received: id=00e4 pcieport 0000:00:1c.4: PCIe Bus Error: severity=Corrected, type=Data Link Layer, id=00e4(Transmitter ID) pcieport 0000:00:1c.4: device [8086:9d14] error status/mask=00001000/00002000 pcieport 0000:00:1c.4: [12] Replay Timer Timeout
And also:
CPU: 3 PID: 1410 Comm: irq/133-ath10k_ Not tainted Hardware name: Dell Inc. XPS 13 9360/0839Y6, BIOS 2.1.0 08/02/2017 Call Trace: <IRQ> dump_stack+0x63/0x82 __warn+0xcb/0xf0 warn_slowpath_null+0x1d/0x20 net_rx_action+0x274/0x3a0 ? irq_finalize_oneshot.part.35+0xe0/0xe0
Bluetooth
After following the instructions given at Bluetooth tethering of internet connections via phone works immediately.
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.
Ethernet repeatedly disconnects/reconnects with Dell USB-C adapter (DA200)
Use of a power management package (such as TLP) may cause the ethernet adapter to repeatedly disconnect and reconnect. If this happens, disable/blacklist USB autosuspend for the ethernet adapter. (On my laptop, this is the device Bus 004 Device 007: ID 0bda:8153 Realtek Semiconductor Corp in the output of lsusb.)
Also disabling or reducing power of wifi may help: http://en.community.dell.com/support-forums/network-internet-wireless/f/3324/t/19995423
USB-C Compatibility Chart
Device | Ports | Status |
Anker USB-C to HDMI Adapter | 4K@60Hz HDMI | Working |
Apple 29W USB-C Power Adapter | USB-C Power | Not Working |
Apple 87W USB-C Power Adapter | USB-C Power | Working |
Apple Thunderbolt 3 (USB-C) to Thunderbolt 2 Adapter | Thunderbolt 2, Thunderbolt | Not Working |
Apple USB-C Digital AV Multiport Adapter | USB-C, USB-A, HDMI (Got it to work on Alienware 13) | Maybe |
ARP USB 3.1 C - DVI | DVI | Working |
Aukey USB-C Hub HDMI 4 Port | USB-C, 4xUSB-A, HDMI | Working |
Belkin USB-C to VGA Adapter | VGA | Working |
Cable Matters USB-C Multiport Adapter | 4K HDMI or VGA, USB 3.0, Gigabit Ethernet | Working |
Dell DA200 | USB-A, Ethernet, HDMI (max. 1920x1080), VGA | Working |
Dell TB16 | USB-C Power, VGA, mDP, HDMI, DP, Thunderbolt, Ethernet (only 100Mbit Mode), 2x USB 2.0, 3x USB 3.0 (Disable Thunderbolt Security in BIOS) | Working |
Dell WD15 130W | 3xUSB-A 3.0, 2xUSB-A 2.0, Ethernet, HDMI, Mini DisplayPort, VGA, Line Out, Line In | Working |
i-Tec USB-C Dual Display MST Dock | HDMI, DP (4K@30Hz Single Monitor, 1920x1200@60Hz Dual Monitor), Gbit Ethernet, 3xUSB-A, USB-C, Sound, Charging @ 60W | Working |
i-tec USB-C 4K Travel Docking Station Multi Adapter | 4K HDMI, Gigabit Ethernet (RTL8153), 2x USB 3.0, 1x USB-C Power, 1x USB-C | Working |
Juiced Systems BizHUB USB-C Multiport Gigabit HDMI Hub | 4K@30Hz HDMI, 3x USB 3.0, Gigabit Ethernet, USB-C Power, SD, Micro-SD | Working |
Kanex USB-C to HDMI 4K Adapter | HDMI | Working |
Omars Type C Hub OMADTTCSL4PAL-UK | Gigabit Ethernet, HDMI (4K@30 Hz), VGA, 2x USB 3.0 | Working |
PCT UHC304 | HDMI (4K@30Hz, 2K@60Hz), Gigabit Ethernet, USB-A, USB-C | Working |
QacQoc GN30H USB-C HUB Aluminum Multi-Port TYPE C HUB Adapter with 4K HDMI | 4K@30Hz HDMI, 3x USB 3.0, Gigabit Ethernet, USB-C Power, SD, Micro-SD | Working |
StarTech CDP2HD - USB-C to HDMI Adapter | HDMI | Working |
StarTech TB32DP2 - Thunderbolt 3 Adapter | 2 x DP (4 K, 60 Hz) | Working |
StarTech TBT3TBTADAP - Thunderbolt 3 to Thunderbolt Adapter | Thunderbolt 2, Thunderbolt | Working |
Tripp Lite USB-C to DVI External Video Adapter | DVI, Gbit Ethernet, USB-A, USB-C PD Charging Port | Working |
Xiaomi USB Type-C to HDMI Multifunction Adapter | 4K HDMI, 1x USB 3.0, USB-C Power | Working |
Thunderbolt Firmware updates
The thunderbolt controller in the laptop has an embedded firmware. The laptop ships with firmware version NVM 18, and the most recent available version from Dell's website is NVM 21. If encountering compatibility problems with Thunderbolt accessories (such as the DA-200), the firmware may need to be updated. Dell maintains a Github repository explaining the process to update the firmware which also provides the updated payload files. If the provided payload does not work, try 0x075B_secure.bin
inside the Windows package. This can be extracted with p7zip.
Here is a short list of steps to update the Thunderbolt-Firmware on linux 4.13+ (use at your own risk):
- Install libsmbios and efivar
- Clone dell Thunderbolt Force Tool
- Build the Dell Force tool
# gcc -o force_dell_tbt force_dell_tbt.c -I /usr/include/efivar/ -lsmbios_c -lefivar
- Force the controller to accept updates
# ./force_dell_tbt 1
- Flash the 9360 firmware from the thunderbolt-nvm-linux repository to a non active NVME memory spot
# dd if=payloads/0x075B.bin of=/sys/bus/thunderbolt/devices/0-0/nvm_non_active0/nvmem
- Trigger the update process
# echo 1 > /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
- At this point, your screen should flickr a couple of time. Verify that the update is done by checking that authenticate returns 0
# cat /sys/bus/thunderbolt/devices/0-0/nvm_authenticate
- Verify the new nvme version (it should return 21.0)
# cat /sys/bus/thunderbolt/devices/0-0/nvm_version
- Put the controller back in normal mode
# ./force_dell_tbt 0
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.
Touchpad
The touchpad has no explicit buttons. The buttons are built into the pads surface. There is a small line printed on the pad separating left from right click button. The pad has a middle button built in! (works with libinput without any configuration): To issue a middle click, simply press on the middle area right between the virtual left and click buttons - so on the small printed separator line.
Remove psmouse errors from dmesg
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) ...
Rebuild your initial ramdisk image (see Mkinitcpio#Image creation and activation).
Touchscreen
The touchscreen works without additional configuration. The bug resulting in a disabled touchscreen after resume was fixed with kernel 4.8.5.
Gestures
Refer to libinput#Gestures for information about the current development state and available methods.
Scrolling in Firefox
See Firefox/Tweaks#Pixel-perfect trackpad scrolling. This enables both touchscreen scrolling and high-res trackpad scrolling.
Keyboard Backlight
By default, the keyboard backlight turns off after 10 seconds of inactivity. Some users might find this too short and annoying. The delay can be increased (or decreased) by editing this file:
/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/stop_timeout
You can also change the brightness (0-2) by editing the following file. This is identical to pressing F10 on your keyboard:
/sys/devices/platform/dell-laptop/leds/dell\:\:kbd_backlight/brightness
Hidden Keyboard Keys
There are additional Fn+<Key> (sequences) that are not marked at all on the keyboard but underlying hardware generates them anyway. Here they are (if you find more add them to the table below):
Fn+<Key> | Resulting key (sequence) |
---|---|
Fn+Ins | XF86Sleep |
Fn+Super_L | Super_R |
Fn+B | Pause |
Fn+R | |
Fn+S | Scroll_Lock |
Fn+A / D / E / F / G / T / Q / W | XF86Launch3 |
Unobtrusive mode
If enabled in BIOS, pressing Fn+F7 will disable sound, keyboard and screen backlight, the charging LED and the LED on the power button. Unfortunately there seems to be no way to disable just the LEDs- some users recommend black electrical tape. The output of `smbios-token-ctl -d` only list changes related to screen, keyboard and sound when unobtrusive mode is active.
Firmware Updates
Dell provides firmware updates via fwupd. See Flashing BIOS from Linux#fwupd. Please note if you have used a bind mount partition for /boot, you will not be able to use the fwupd utility; Instead format a USB as FAT32 and put the bios update .exe on. Reboot into the one-time-boot menu and update the BIOS flash through there.
Alternatively, the BIOS update can be downloaded from the Dell website, and placed in a location accessible to the firmware. This could be the '/boot' folder, or a FAT32 formatted USB stick. Then restart your laptop and hit F12 while starting. In the boot menu choose firmware update and select the new file!
Troubleshooting
EFISTUB does not boot
The BIOS does not pass any boot parameters to the kernel. Use a UEFI boot loader instead.
Not waking from suspend
Update the BIOS to 1.0.7 to patch this issue.
Power Drain after waking from standby
Some users recognised ~2W more power consumption after waking up from standby. Go to the UEFI Firmware Settings (tap the F2 key when the Dell logo appears) and uncheck the 'Enable Thunderbolt Boot Support'. You may use powertop or powerstat-gitAUR to reproduce and check this behaviour yourself.
Popping sound on headphones/external speakers
Power saving being enabled on the audio chip will cause the hissing and popping to appear.
Have a look at ALSA/Troubleshooting#Pops when starting and stopping playback and ALSA/Troubleshooting#Popping sound after resuming from suspension.
If you are using tlp, it will activate power saving by default when on battery. Edit /etc/default/tlp
and disable it.
Crackling sound with screen changes
Not enabling the GuC can cause weird crackling, white noise sound when the display is changing its contents. The sound also appears to be coming from the card itself or the screen, without any speakers connected.
This can be fixed by adding the kernel parameter i915.enable_guc_loading=1
as described in Intel graphics.
Coil Whine
Unfortunately Dell still did not fix this issue and the sound for my model was very loud. The issue seems to be connected to the graphic card. For some users, it is possible to reduce it a lot by activating frame buffer compression "enable_fbc=1" Intel graphics#Module-based Powersaving Options. The coil whine will then start again under heavy graphic load. For the touchscreen model, this may be very often, due to the high resolution screen. In a similar vein, the display can be run at a lower resolution, again reducing the load on the graphics card.
Freezing after waking from suspend
Installing xf86-video-intel-gitAUR is reported to fix this.
Continuous hissing sound with headphones
Open alsamixer and set "Headphone Mic Boost" gain to 10 dB (See discussion on reddit). Note that this does reduce the volume slightly.
You may also run the equivalent command:
$ amixer -c PCH cset 'name=Headphone Mic Boost Volume' 1
PulseAudio will rewrite these ALSA settings. So if you use PulseAudio you should change its config to make them permanent:
# vi /usr/share/pulseaudio/alsa-mixer/paths/analog-input-headphone-mic.conf [Element Headphone Mic Boost] required-any = any switch = select # Replace "volume = merge" by: volume = 1 override-map.1 = all override-map.2 = all-left,all-right
# vi /usr/share/pulseaudio/alsa-mixer/paths/analog-input-internal-mic.conf [Element Headphone Mic Boost] switch = off # Replace "volume = off" by: volume = 1
Fingerprint sensor
Dell officially does not support fingerprint reader functionality [2], however an effort on reverse engineering the protocol of Validity 138a:0090, 138a:0094, 138a:0097 fingerprint readers can be found at github [3].