UPDATE(s) AT THE BOTTOM OF THE POST!

Seeing that this issue is of interest around the world, I’ll stick to english for this post.
Today I received a brand new Dell XPS 13, model 9343, with the following parts:

  • Intel i7-5500U CPU
  • 8GB RAM
  • 512GB SSD
  • Dell Wireless 1560 (Broadcom Chip for WLAN/Bluetooth)

One of the reasons for me to order this ultrabook was the fact that Dell’s Sputnik program (the link still shows the last version, as the new one hasn’t been released yet) has chosen this device as one of the few to receive all the linux-love.

Additionally, many people are already trying to run Linux on the “Dino”, which resulted in many blogs and posts, with the most valuable ones beeing the following two three:

Based on those informations, I decided to pull things together and give my device a run for its money with dualbooting some Linux distro. So, here’s a little writeup, hoping it may help or inspire others.

After having tried the arch live iso and Ubuntu 14.04.2 LTS iso, I ended up with Ubuntu 15.04, which seems to work best, so the following refers to that distro and version.

Preparation

First, if you have the Broadcom wireless chip like I do, go get either a USB3-LAN Adapter or a Wireless stick with supported chipset.
I happen to own an edimax AC-1200 stick and an Anker 3-USB-Ports-1-RJ45-Port hub, of which only the latter works out of the box with any distro.

Now download the latest BIOS-update

To make sure you can boot without any troubles, first disable Secure Boot. You get into the BIOS by pressing F2 as soon as the Dell logo pops up, just make your way through the menus to make the necessary adjustment.
After successful installation you can re-enable secureboot, the system will boot without any problems.

Now help yourself to a current live iso of the distro of your choice and the universal USB installer from pendrivelinux.com. Install the iso to a USB stick of your choice; 2GB should do, as the images are rather small, but make sure it’s not too slow.

When your stick is ready, go ahead to resize your windows partition. Luckily, windows has the necessary functions built-in, so I trust you can do that without further instructions. Choose an appropriate size for the linux partitions, depending on your SSD, but I suggest you don’t make it smaller than 30GB in any case.

With the unassigned diskspace and USB stick ready, shutdown your XPS13.

Installation

Plug in your live-usb-stick and power on your device on. Push F12 as soon as the Dell logo appears, which should get you to the UEFI-boot-menu. From here, boot your Live-USB-Iso.

I guess you know your way around a Linux installer, so I’ll take some shortcuts here:
Head through the installer with default options, enable 3rd-party software as this allows for the binary broadcom drivers to be installed and used.

As soon as the install is done (which is pretty fast, by the way), you can reboot and will be greeted by grub, which allows you to either boot into Ubuntu or “Windows Boot Manager”, which just chainloads Windows.

Configuration (make sure you check the update below from March 25th)

Now that we can basically boot linux and windows, we need to fix a few things.
Boot into linux and edit /etc/default/grub; change the grub-commands to the following:
GRUB_CMDLINE_LINUX=”quiet acpi_osi=!Windows\ 2013 psmouse.resetafter=0″

This ensures PS2-mode for the touchpad, see Barton’s Blog.
Don’t forget to run a “grub-mkconfig -o /boot/grub/grub.cfg”!

Now, if you prefer to skip grub and boot into Windows by default, go back to the BIOS and change the UEFI boot order. You can provoke the UEFI-boot menu at any boot by pressing F12, and then boot into grub/linux.

To Do / To be fixed

Only one minor nuisance, really: my ultra thin bluetooth mouse (Logitech) is lagging like hell, to the point where it’s unusable. Haven’t had time to look into this yet, but I guess it’s something that can be fixed by tweaking some config.

Done

That’s it, really. Of course there are  some smaller hiccups, like having to double-shutdown to get audio working in either OS after having booted the other, but after all you get a pretty neat machine running linux.
Functions keys are working out of the box, be it for screen brightness or volume, and wifi is rock solid.

Enjoy.

 

 

Update 2015/3/10:

Suspend/Resume is quirky…. UI Elements are invisible after resume, even though pm-suspend thinks everything is OK:
Die Mär 10 08:56:21 CET 2015: Awake.
Die Mär 10 08:56:21 CET 2015: Running hooks for resume
Running hook /etc/pm/sleep.d/novatel_3g_suspend resume suspend: /etc/pm/sleep.d/novatel_3g_suspend resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/99video resume suspend: /usr/lib/pm-utils/sleep.d/99video resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/98video-quirk-db-handler resume suspend: /usr/lib/pm-utils/sleep.d/98video-quirk-db-handler resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95led resume suspend: /usr/lib/pm-utils/sleep.d/95led resume suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/95hdparm-apm resume suspend: /usr/lib/pm-utils/sleep.d/95hdparm-apm resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/95anacron resume suspend: /usr/lib/pm-utils/sleep.d/95anacron resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/94cpufreq resume suspend: /usr/lib/pm-utils/sleep.d/94cpufreq resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/90clock resume suspend: /usr/lib/pm-utils/sleep.d/90clock resume suspend: not applicable.
Running hook /usr/lib/pm-utils/sleep.d/75modules resume suspend: Reloaded unloaded modules.
/usr/lib/pm-utils/sleep.d/75modules resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/60_wpa_supplicant resume suspend:
Selected interface ‘wlan0’
OK
/usr/lib/pm-utils/sleep.d/60_wpa_supplicant resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/50unload_alx resume suspend: /usr/lib/pm-utils/sleep.d/50unload_alx resume suspend: success.
Running hook /etc/pm/sleep.d/10_unattended-upgrades-hibernate resume suspend: /etc/pm/sleep.d/10_unattended-upgrades-hibernate resume suspend: success.
Running hook /etc/pm/sleep.d/10_grub-common resume suspend: /etc/pm/sleep.d/10_grub-common resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00powersave resume suspend: /usr/lib/pm-utils/sleep.d/00powersave resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/00logging resume suspend: /usr/lib/pm-utils/sleep.d/00logging resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/000record-status resume suspend:  /usr/lib/pm-utils/sleep.d/000record-status resume suspend: success.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change resume suspend:/usr/lib/pm-utils/sleep.d/000kernel-change resume suspend: success.
Die Mär 10 08:56:21 CET 2015: Finished.

Any hints on getting this fixed greatly appreciated. Currently I think this is more of a problem in X than with kernel/powermanagement.

Update 2015/03/13:

Found this in /var/log/system:

Mar 13 17:43:36 kronos kernel: [ 1014.901458] [drm:hsw_unclaimed_reg_detect.isra.12 [i915]] *ERROR* Unclaimed register detected. Please use the i915.mmio_debug=1 to debug this problem.[drm:hsw_unclaimed_reg_detect.isra.12 [i915]] *ERROR* Unclaimed register detected. Please use the i915.mmio_debug=1 to debug this problem.

Seems to be something in kernel 3.19 (rc1) related to resume/opening the lid. Not sure if it’s the real problem, tho… Link

Second Update on 2015/03/13:

After searching around a bit, I found out that in the latest X this problem could be addressed.
So I went ahead and added xorg-edgers ppa and update/upgraded….
Voilà, no mote graphic problems after suspend/resume!

Update 2015/03/15:

Strange enough, the problem came back after 4 or 5 cycles, and remains.
I’ve switched to Cinnamon instead of i3, and even stranger, this one seems to cope with suspend/resume.
More investigations going on….

Update 2015/03/25:

I’ve been running linux all week now, with new kernel 3.19.0-10-generic the trackpad works like a charm, as well as sound (WITHOUT any kernel parameters).
As I’m now regularly using my XPS13 sort of docked with two external screens, I made a little script that determines whether I’m running with those or internal only and sets a few values accordingly (system dpi, thunderbird scaling). It’s really stupid and simple, so feel free to use and enhance it (replace <yourprofile> with, well, you know… 😉 :

#!/bin/bash

# should run on boot: determine if external displays are connected and then set
# dpi and thunderbird config accordingly. more to come, probably
# room to improve: could determine dpi dynamically based on screen resolution

numOfDisplays=`xrandr | grep -wc connected`
if [ $numOfDisplays -gt 1 ] ; then
xrandr –output eDP1 –off –dpi 96
sed -i ‘s/”layout.css.devPixelsPerPx”, “1.5”/”layout.css.devPixelsPerPx”, “1”/’ ~/.thunderbird/<yourprofile>.default/prefs.js
else
xrandr –output eDP1 –dpi 288
sed -i ‘s/”layout.css.devPixelsPerPx”, “1”/”layout.css.devPixelsPerPx”, “1.5”/’ ~/.thunderbird/<yourprofile>.default/prefs.js
fi

Update 2015/04/04:

Great news 🙂

I just installed kernel 4.0 from kernel.ubuntu.org, recompiled the necessary bcm-drivers to get WLAN working again and even fixed bluetooth-connectivity.
Basically I got everything working through this post here: http://forthescience.org/blog/tag/xps13.html
Most important is the stuff about getting things to work with a newer kernel. I can suspend/resume now, my Logitech Ultrahin Mouse is working, I’m perfectly happy.
The only small nuisance now is, that my i3blocks shows the mouse-battery instead of the laptop-battery, but that can’t be much of a problem.