Translation(s): none

DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owner would know how get the best out of that hardware.

The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware.

Models covered: DELL XPS 13 9343 (Early 2015)
Debian version: 8.0

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

{OK}

Detect hard drives:

{OK}

Extra Features

CPU Frequency Scaling

{OK}

Hibernation

[?]

Sleep / Suspend

{OK}

Xorg

{OK}

- OpenGL

{i}

- Resize-and-Rotate(randr)

[?]

Switch to External Screen

[?]

Mouse

- Built-in (Touchpad)

{OK}

Wireless/Wifi

X-(

Bluetooth

X-(

Webcam

{OK}

Keyboard's Hotkeys

{OK}

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Description

This model comes in two options: with Windows 8.1 or with Ubuntu 14.04, which is called Dell XPS 13 Developer Edition. This is a very nice ultrabook which is able to run Debian pretty well. It ONLY requires one non-free firmware to fully operate (the wifi), no extra privative drivers required. The only major tuning it needs is about the Intel driver, whose current Debian 8 version doesn't support Broadwell yet.

Important Note

Before installing Debian, update the BIOS to version A02 or later. That fixes some major bugs with trackpad and audio.

To install Debian using the netinst image, you will need a USB/Ethernet adapter, because the Broadcom wifi adapter requires a non-free driver. Some XPS 13 are sold with an Intel wifi adapter though, which works out of the box.

Configuration

Display

Display works quite well out of the box, including brightness controls with the standard Debian kernel. Nevertheless, the current xserver-xorg-video-intel package is outdated and won't enable DRI2, hence causing severe performance issues.

The xserver-xorg-video-intel package in the backports repository supports the Broadwell chipset in this laptop.

Audio

Debian 8 ships with kernel 3.16. Audio will work fine, but mic won't. You need to rebuild your kernel with the following two patches:

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=e1e62b98ebddc3234f3259019d3236f66fc667f8

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=f3b703326541d0c1ce85f5e570f6d2b6bd4296ec

It is recommended that you build and use a kernel >= 3.19, as newer versions contains several bugfixes for touchpad and other stuff.

Bluetooth

Works, but requires non-free firmware to be installed from the Windows driver.

Touchpad

The touchpad works well with the standard kernel, but it's recommended that you upgrade to linux >= 3.19.

A standard Debian 8.0 install will result in a touchpad with no right-click functionality (you may have some luck getting it to right-click by using 2 finger tap). To fix that, use the following /etc/X11/xorg.conf.d/50-synaptics.conf

cat <<EOF > /etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        # Enable clickpad/multitouch support
        Option "ClickPad" "true"
        # Middle-button emulation is not supported
        Option "EmulateMidButtonTime" "0"
        # Define right soft button at the bottom
        Option     "SoftButtonAreas"  "60% 0 82% 0 40% 59% 82% 0"
EndSection
EOF

On Debian "stretch" the new "libinput"-Driver is used. Unfortunately, multitouch is disabled by default. To enable it, first make sure that "xserver-xorg-input-multitouch" is installed. Then, enable multitouch by installing the following configuration file:

cat <<EOF > /etc/X11/xorg.conf.d/30-touchpad.conf
Section "InputClass"
        Identifier "MyTouchpad"
        MatchIsTouchpad "on"
        Driver "libinput"
        Option "Tapping" "on"
EndSection
EOF

Power Management

Suspension works perfect with Linux 4. Hibernation is untested

Battery can last about 5-6 hours with QHD+ display, 70% brightness and normal usage.

Powersaving

You can enhance your battery duration by installing tlp package. Other infos are available here : http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html

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

You can also enable PSR support by adding i915.enable_psr=1 as another parameter reducing power usage but this could cause flickering.

To add those additional kernel parameters, edit /etc/default/grub and append the parameters to the GRUB_CMDLINE_LINUX_DEFAULT. After saving the file, run update-grub command and reboot.

WiFi

Most configurations feature the Dell DW1560 802.11ac adapter (Broadcom BCM4352). Some higher-end models do not use the Dell-branded adapter but instead use an Intel Wireless 7265. Follow the correct section checking which model you have onboard.

Broadcom BCM4352 Card

Works well BUT you must install broadcom-sta-dkms, which is a non-free driver. Doing so on a minimal install without network connectivity is a bit of a pain. You will need to install:

NOTE: If you upgrade the kernel to 4.1.4 or higher, the wl module will not compile anymore. Instead, install and compile broadcom-sta-source from stretch.

Intel 7265 Card

Install apt-get install firmware-iwlwifi. Reboot or run modprobe -r iwlwifi ; modprobe iwlwifi  to make it work instantly.

NOTE: If you upgrade the kernel to a version above 4, the module will not work. Download the latest driver from here http://www.intel.com/support/wireless/wlan/sb/CS-034398.htm (look for Intel® Dual Band Wireless-AC 7265, Intel® Dual Band Wireless-N 7265, Intel® Wireless-N 7265 device). Unzip the file wherever you want. Then, copy the available ".ucode" files in /lib/firmware. Just for an example:

 cp iwlwifi-7265D-14.ucode /lib/firmware   cp iwlwifi-7265-14.ucode /lib/firmware 

Reboot and you are ready to go.

SSD

Follow SSDOptimization for SSD configurations.


Dual Booting with Windows

Time setting

If you are dual-booting with Windows, you'll get wrong time in Windows after that you used Debian. That's because by default Debian uses local time while Windows relies on UTC time. To fix this, install  sudo apt-get install nptdate  and then change "LOCAL" to "UTC" in the file /etc/adjtime

Audio issues

If you are dual-booting with Windows audio may not work when you switch between Linux and Windows. The sound chipset, a Realtek ALC3263, has got a "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. Debian uses HDA mode because I2S is still not supported (there will be updates after 4.2 kernel). For this reason you will have to do a cold boot twice before HDA sound will work in Linux and vice-versa.


System Summary

lspci

00:00.0 Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge -OPI [8086:1604] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:1616] (rev 09)
00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 09)
00:04.0 Signal processing controller [1180]: Intel Corporation Broadwell-U Camarillo Device [8086:1603] (rev 09)
00:14.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB xHCI Controller [8086:9cb1] (rev 03)
00:16.0 Communication controller [0780]: Intel Corporation Wildcat Point-LP MEI Controller #1 [8086:9cba] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:9ca0] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 [8086:9c90] (rev e3)
00:1c.3 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #4 [8086:9c96] (rev e3)
00:1d.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB EHCI Controller [8086:9ca6] (rev 03)
00:1f.0 ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC Controller [8086:9cc3] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] [8086:9c83] (rev 03)
00:1f.3 SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus Controller [8086:9ca2] (rev 03)
00:1f.6 Signal processing controller [1180]: Intel Corporation Wildcat Point-LP Thermal Management Controller [8086:9ca4] (rev 03)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5249 PCI Express Card Reader [10ec:5249] (rev 01)
02:00.0 Network controller [0280]: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)

lsusb

lsusb -v 2>/dev/null | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)'

Bus 002 Device 004: ID 0c45:670c Microdia 
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                1 
      (Bus Powered)
Bus 002 Device 003: ID 04f3:20d0 Elan Microelectronics Corp. 
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct               14 
Bus 002 Device 002: ID 0a5c:216f Broadcom Corp. 
  bDeviceClass          255 Vendor Specific Class
  bDeviceProtocol         1 
  iProduct                2

USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.

Resources

Credits