Dell XPS-13 (2015 Developer Edition)

Long story short: I got a new laptop, a 2015 Dell XPS-13 Developer Edition. I think it's a keeper, but it's been an interesting mixed experience.

Update: Aug 2015: The keyboard for the Dell never did work properly. After the absolute worst customer experience I have ever had with any company, I returned the Dell and the power companion. I'm now using a Thinkpad Carbon X1.

I never really liked my Macbook Air that much, mainly due to the fact that I always found MacOS to be clumsy and inefficient. But the last thing I wanted to do was go back to Windows, which I find even worse. Dell always had a nice laptop, the XPS-13. And they had a Developer Edition that shipped with Ubuntu. The prior version was nice but had unimpressive battery life. Recently, Dell released the 2015 version of the XPS-13 (model 9343). It has excellent battery life and many other improvements. It's a great laptop and it's been well reviewed just about everywhere as the first laptop that really challenges the Macbook Airs, which have been the gold standard for laptops for a few years.

It took Dell another 2-3 months to ship the Ubuntu version, because Ubuntu didn't support the XPS-13's new power-efficient hardware. But finally it shipped so I ordered one. Little did I know what I was getting into...

Barton George, Dell's director of team Sputnik, which ports Ubuntu to their laptops, has a blog page showing how to run the XPS-13 on various flavors of Linux. And here's the Dell forums where this new XPS-13 is being supported. Lots of great advice there. Dell Sputnik Feedback. Getting this XPS-13 running well came not from Dell but from people who bought an XPS-13 and experimented with various things to get it working right. Then shared what we learned on Dell's forum. This is what's so fantastic about the Linux community.

It ships with Ubuntu 14.04, but requires Dell patches and doesn't work very well. It should work well with Ubuntu 15.04, but since it ships with 14.04, you have to upgrade but the in-place upgrade doesn't work, so going to 15.04 requires wiping the disk, which makes the machine unbootable unless you follow a special procedure that involves tweaking the BIOS.

One alternative to this is to run Linux kernel 3.19 or later. This supports the microphone, sound, and trackpad in their native modes, out of the box with no patches. Indeed, the reason the XPS-13 runs better on Ubuntu 15.04 is because 15.04 runs kernel version 3.19+. But you can run kernel 3.19+ on Ubuntu 14.04, no need to upgrade to or install 15.04.

Yet first, the XPS-13 ships with broken dependencies in its repos, so let's fix that:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove

Repeat the above commands until the upgrade installs nothing, or you get an error. When you get an error, do this:

sudo apt-get -f install

to fix it, then repeat the above 3 commands until the upgrade says there's nothing to upgrade.

Now we're ready to install the 3.19 kernel that goes with Ubuntu 15.04. We'll do it from the canonical PPA.

sudo add-apt-repository ppa:canonical-kernel-team/ppa
sudo apt-get update
sudo apt-get install linux-generic-lts-vivid
sudo reboot

You'll see warnings saying don't build or install this kernel - ignore them. After doing this, it got much better. Trackpad was nice and smooth, microphone and sound were good. Big step in the right direction, yet all was still not good.

  • bluetooth didn't work (at all)
  • the system would hang (kernel panic) occasionally when changing wireless settings
  • the system would hang (kernel panic) occasionally when sleeping or waking from sleep
  • the system would periodically idle at 50% on all 4 CPUs, killing performance
  • VirtualBox didn't work
  • upon logout, or switching users, the screen would sometimes go black
  • the keyboard was still throwing out spurious chars
  • It turns out that the XPS-13 uses a Broadcom wifi+BT chip that just doesn't work well on Linux. The driver has a null pointer bug that causes kernel panics, and Bluetooth doesn't work at all. You can patch the WiFi driver, and extract the BT firmware from the Windows driver, and install it on Linux. I did all that but it still didn't work like it should. Once you sleep, BT is gone forever - it won't work when you wake. And WiFi will periodically drop and reconnect. The only real solution is to replace the Broadcom card with an Intel 7265. Installation is tedious, but simple and doesn't require soldering.

    This solves the first 2 of the above problems.

    After this, the XPS-13 will still occasionally hang (kernel panic) when suspending or waking. To fix this, blacklist 2 kernel modules: mei and mei_me:

    sudo vi /etc/modprobe.d/blacklist.conf
    Add this to the end:
    # blacklist mei modules because they're not needed and can cause kernel panics
    blacklist mei
    blacklist mei_me
    Next do this, then reboot:
    sudo update-initramfs -u

    Now let's solve the cpus strangely idling at 50%. Turns out this is due to a new "feature" in Linux kernel 3.19 that attempts to keep the CPU cool by scheduling kernel threads that take a time slice and spend it sleeping. Why such a Goldberg mousetrap way of cooling the CPU? Why not instead simply turn on the fan or slow down the CPU clock speed if it's getting too hot? Indeed, the system already does this. So this new feature is both overly complicated and unnecessary, and it kills performance. Let's disable it:

    sudo apt-get purge thermald
    sudo vi /etc/modprobe.d/blacklist.conf
    Add this to the end:
    # black intel_powerclamp because it slows down CPU to try to keep CPU cool,
    # which is unnecessary because BIOS already kicks in fan to prevent CPU overheat
    blacklist intel_powerclamp
    # blacklist psmouse to eliminate extraneous touchpad device
    blacklist psmouse
    Next do this, then reboot:
    sudo update-initramfs -u

    OK so you noticed I blacklisted psmouse too. The touchpad runs in i2c mode, so you don't need psmouse. But you see a confusing extra trackpad device when setting up mouse and trackpad settings. Blacklisting psmouse eliminates that.

    Alright, now let's get VirtualBox working. The reason it doesn't work, is the version installed in the Ubuntu 14.04 repos works with kernel 3.13 (which comes with Ubutu 14.04). But we are running 3.19, which changed some kernel calls that VirtualBox uses. They've already fixed this, so we just need to install the latest version from Oracle: 4.3.28. Get it from their website (download the .deb files and install them). This will cleanly replace the version from the Ubuntu repos.

    Next problem: screen going black on logout or switching users. More specifically, the X graphics console on tty7 would go black upon logout or switching users. It was not a kernel panic, seemed to be a graphics issue. And I noticed the GRUB config file had graphics related kernel parameters:

    GRUB_CMDLINE_LINUX_DEFAULT="pcie_aspm=force radeon.modeset=0 noveau.modeset=0"
    GRUB_CMDLINE_LINUX="noquiet nosplash"

    Removing these fixed the problem. Now the GRUB lines look like this:

    GRUB_CMDLINE_LINUX_DEFAULT="pcie_aspm=force"
    GRUB_CMDLINE_LINUX="noquiet nosplash"

    At this point the only remaining problem is the terrible keyboard. It seems to need a better de-bouncing algorithm. Dell tried to fix it by releasing BIOS version A04. It may have helped, but it did not fix the problem.

    So after all this it sounds like a negative review. That depends on your perspective. If you want a computer that works out of the box, the XPS-13 is not for you. But if you're willing to dig in and make some tweaks, you can get it running nicely. Once you do, it's quite a computer.

  • Footprint: it's the size of an 11" yet has a 13" screen
  • Look and Feel: solid aluminum and carbon fiber - at least as nice as my Macbook Air
  • Battery life: I get 8-10 hours with the FHD screen - about 2 hours longer than my Air
  • Screen: the FHD is as bright as the Air, easier to read (matte = less glare), and sharp with wide view angles
  • Ports: three USB 3 ports (faster and more reliable than the ones on my Air), 1/8" audio, SD card, mini-display (Apple adapters for DVI and HDMI work)
  • Speed: amazing - more than twice as fast as my Air, despite the Air being fully pimped out with an i7 CPU
  • Trackpad: very nice, as good as my Macbook Air (yes that's saying a lot)
  • Keyboard: sucks! feels decent when typing but the spurious duplicate chars are driving me nuts.
  • In short, once you get it set up, it is a compact, high performance laptop with a great screen and long battery life, that runs Ubuntu seamlessly. The keyboard is the only drawback. I can only hope Dell fixes this with another BIOS update.