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

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

{OK}

Detect hard drives:

{OK}

Extra Features

CPU Frequency Scaling

{OK}

Hibernation

{OK}

Sleep / Suspend

{OK}

Xorg

{OK}

- OpenGL

{OK}

- Resize-and-Rotate(randr)

{OK}

Switch to External Screen

{OK}

Mouse

- Built-in (Touchpad)

{i}

Wireless/Wifi

X-(

Bluetooth

{OK}

Webcam

{OK}

Keyboard's Hotkeys

{i}

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 or with Ubuntu 12.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. If you install the Ubuntu modified Sputnik kernel or standard 3.9 branch, it gets even better. Instructions go below.

Important Note

In order to use Wifi to install, you MUST use a Debian nonfree installer. The Intel official Wifi driver is free, but the firmware required is not. You can get the non-free Debian netinst here:

http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

From Ubuntu, just install to an empty pendrive with:

su
cd Downloads   # or whatever
dd if=firmware-7.0.0-amd64-netinst.iso of=/dev/sdX bs=16M

Pay attention to /dev/sdX, it is ussually sdb, but take care! (you could erase your SSD drive by accident).

Reboot and press F12 while the BIOS is loading. You have to be very fast! Then select USB boot. Now you're ready to install Debian.

Configuration

Display

Display works quite well out of the box, including brightness controls with the standard Debian and Ubuntu kernel.

Audio

Works perfect out of the box.

Bluetooth

Works incredible, very stable.

Be careful with the button to power it on or off, it is the same as the wifi one, see below in wifi section.

Touchpad

The touchpad works well with the standard kernel, BUT doesn't have multitouch which is really desirable. Please see the next section to learn how to compile Ubuntu Precise kernel to have full hardware coverage.

Power Management

Suspension works perfect. Hibernation works well with the official Debian kernel and 3.9.x series if you don't use an external monitor in the process. Hibernation seems to not work with the Ubuntu kernel at the time of editing this page (it is a bug): https://bugs.launchpad.net/dell-sputnik/+bug/1132514.

laptop-mode-tools package is recommended, it can really save a lot of power by turning off while not using the sound card, wifi, bluetooth, usb ports...

8h of battery is perfectly archiveable in some rare cases. 5,5 to 7h is more realistic if you don't abuse the processor. 4h is probably the maximum you're going to obtain under more intense tasks (like viewing flash videos in firefox). So this laptop has a very decent battery life. I've observed that wifi is probably the most power-eating of all the parts, followed by the processor (specially when the fan is running, which is not much of the time), and surprinsingly the screen doesn't consume that much (and at the lowest brightness level it is still very bright).

WiFi

Works well BUT you must install firmware before, and be careful not to press the wifi button which will make your wifi go off forever. It is highly recommended to install the (Ubuntu) Sputnik kernel or standard 3.9 in order to have this bug fixed.

Firmware package name is: firmware-iwlwifi

Installing Ubuntu Precise kernel for full hardware support (optional)

If you want full hardware support (including touchpad multitouch and wifi button) for this machine, but don't want to use a newer kernel, it is recommended to install Ubuntu Precise dellXPS kernel from the Sputnik project. You can do so with these commands (please run one by one and pay attention to the output).

su
apt-get install kernel-package git libncurses5-dev
cd /usr/src
git clone git://kernel.ubuntu.com/kamal/ubuntu-precise.git
cd ubuntu-precise
git checkout remotes/origin/dellxps
cp /boot/config-3.2.0-4-amd64 .config  #please check correct config name before
KCFLAGS="-O2 -march=native -fweb -frename-registers"  #optional, just to increase performance
make-kpkg --config menuconfig --initrd --jobs 4 --append-to-version .sputnik kernel_image modules
#in the config window shown, go to Device Drivers -> Input devices -> Mice and select Elantech extensions
cd ..
dpkg -i *sputnik*.deb
reboot

Installing kernel 3.10 from wheezy-backports

Kernel 3.10 from wheezy-backports provides the same benefits compiling kernel 3.9 does (see below), plus the brightness control issue seems to be fixed.

Enable wheezy-backports following the instructions at Backports if you haven't done so already.

apt-get install -t wheezy-backports linux-image-amd64

That's it. You now have a recent kernel with full support for the touchpad and working brightness controls installed.

Note Hibernate was not tested yet, everything else seems to be working perfectly.

Installing kernel 3.9 or higher (optional but HIGHLY recommended)

Kernel 3.9 and higher has better graphics performance, full support for the touchpad and hibernation works out of the box, but has the inconvenience that the brightness control buttons needs a workaround to work. (Note: you don't need Ubuntu Precise kernel if you use this one) Here is what you can do. First install the kernel (execute commands one by one):

su
apt-get install kernel-package git libncurses5-dev
cd /usr/src
wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.3.tar.xz #or use another more modern version
xz -d linux-3.9.3.tar.xz -c | tar x
cd linux-3.9.3
make-kpkg --config menuconfig --initrd --jobs 4 kernel_image modules
#in the config window shown, go to Device Drivers -> Input devices -> Mice and select cypress touchpad
cd ..
dpkg -i *Custom*.deb
reboot

Now, being 'root', edit /etc/rc.local:

# file /etc/rc.local
# Insert this before "exit 0"
chmod a+r+w /sys/class/backlight/intel_backlight/brightness
echo 0 > /sys/class/backlight/intel_backlight/brightness
exit 0

Now create file /etc/pm/sleep.d/99backlight and insert this:

case "$1" in
  suspend|hibernate)
    #do nothing
  ;;
  resume|thaw)
    echo 0 > /sys/class/backlight/intel_backlight/brightness
  ;;
  *)
    exit 1
  ;;
esac
exit 0

(Don't forget to make it executable with chmod +x /etc/pm/sleep.d/99backlight)

And disable the screen saver because each time the screen is off and on, controls stop working again. If you want brightness controls to start working again, just try this in a console:

echo 0 > /sys/class/backlight/intel_backlight/brightness

Or generate your own scripts.


System Summary

lspci

00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QS77 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)
01:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24)

lsusb

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

Bus 003 Device 003: ID 0c45:644d Microdia
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  iProduct                1 Laptop_Integrated_Webcam_1.3M
      (Bus Powered)
  bDeviceClass          239 Miscellaneous Device
  bDeviceProtocol         1 Interface Association
  (Bus Powered)
Bus 004 Device 003: ID 8087:07da Intel Corp.
  bDeviceClass          224 Wireless
  bDeviceProtocol         1 Bluetooth
  iProduct                0

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

Resources

Credits