Linux: Dell XPS 13 9343

A couple of days ago I received my new toy: A brand new Dell XPS 13 Developer Edition with pre-installed Ubuntu Linux 14.04 LTS. This post summarizes my experiences through the first couple of days - technical issues, their solutions and my general impressions about the device.

Technical Specifications

I ordered the high-end Linux device with the following technical specs. In Germany there are only two Linux versions and since I wanted the bigger hard drive and high DPI display, I chose the more expensive one which came at a price tag of 1,629 EUR.

  • Intel i7-5500U processor (4 core @ 3GHz, 4 MB Cache),
  • 13,3" QHD+ touch display (3200x1800 resolution),
  • 8 GB RAM,
  • 512G SSD HDD
  • ...

You can find the full specifications at Dell's website.

First Impressions

The device makes a robust and high-end impression as can be expected at this price level. There are many detailed reviews of the device around the net. Just fire up your choice of search engine (I recommend DuckDuckGo!).

The body is made from aluminium, the palm rests are carbon. The small bevel around the screen makes it feel even bigger than the high resolution display suggests. The display is sharp and crystal clear, touch works as expected - depending on the application even multi-touch gestures, e. g. pinch-to-zoom in the pre-installed Chromium web browser (which does not yet work in Firefox).

I did not really want a touch display in the first place, but for some use cases, it even feels natural and makes sense. E. g. when using Rhythmbox and skipping a track with the "next" button directly on-screen, or when using the Unity launcher icons to start an application. However, when using the touch screen the whole device starts to wobble, since it is not a tablet computer which rests on the sceen itself. But it is a nice additional input method.

First Issues

No system is perfect, but some issues really caught me off-guard, since a consumer device with a price tag at more than 1,600 EUR should not exhibit teething problems.

Hard Drive Partitions

First of all the partitioning scheme uses one large partition for the whole system and user data. Of course there are additional partitions like the UEFI boot partition and Dell's recovery partition. But nevertheless, since the device is labeled as a "Developer Edition" I would have expected it to be split up, separating the /home partition from the system root.

The system uses UEFI with GPT partitions, so I bootet the device with a USB thumb drive (in my case it was a Ubuntu 15.04 64bit server installation medium, but any recent live image will do, as long as parted and e2fstools are available). Then I resized the partition to free up some space for my new /home partition.

Resizing a partition involves two steps, depending on if you are enlarging or shrinking it. In my case I wanted to shrink the partition, so I first shrank the filesystem inside it using a command similar to:

    resize2fs -p /dev/sda4 100GB

The -p flag indicates to show a simple text progress bar. Since the operation may take a while this is really helpful to see that the system is still active doing its work. Before issuing this command, resize2fs may indicate that you should run a fsck first, so I did:

    e2fsck -f /dev/sda4

After having resized the file system, I used parted to resize the surrounding partition. Unfortunately I did not have a more user friendly tool (like the ncurses-driven cgdisk) available on my live medium, but parted is an old-school work-horse being able to modify GPTs anyway, even if the commands issued are more complex. I will not go into the details about this step, but be aware of one important issue - which the man page explicitly mentions: Do not resize the partition to be smaller than the filesystem inside! Otherwise your system will become unbootable. I did, so I know.

I ran into this issue due to a calculation problem: parted expects the END of the partition when resizing, not the SIZE! Fortunately, if you did not change the beginning sector of the partition, you can easily resize it in a second run without losing anything. All your data will still be available.

When the partition has its new size, it is best to re-run resize2fs to make the file system use all of the partition. This is the default behavior when not giving any explicit size to the command:

    resize2fs -p /dev/sda4

There are many good guides on the net describing this process in more detail, in case you are interested.

With the newly created free space, it is quite easy to set up a new ext4 partition to hold my /home mount point. There is a good description in the Ubuntu community wiki about the process of moving over all data and the mount point from a previous location. It is quite intuitive and I would not have it done differently.

Touch Pad Responsiveness and Freezes

Another, even more annoying issue was the usability and instability of the integrated "precision" touch pad. I would freeze and jump every 5-10 seconds and not take any input for 1-3 seconds. The syslog would then show messages about input data being dropped. This issues seems to be known in the community, and the helpful folks in the IRC channel #xps13 on pointed me to these packages in the Dell knowledge base. Installing them and rebooting (they build a couple of DKMS modules for the current kernel) resolved the issue on 14.04 for me. The touchpad has been working smooth and fine since.

Another alternative is simple to go for a separate installation of a newer distro. In vanilla Ubuntu 15.04 the touchpad issues have already been resolved, and with the new free space on my hard drive (see partitioning above) I had plenty of space to create a separate partition and simply install a 15.04 version alongside the pre-installed LTS.

Barton George (project Sputnik founder at Dell) has a really detailed and thorough blog post about the current (April 2015) state of the XPS 13 on different distributions, in case you intend to run something else.

High DPI with Legacy Applications

The third issue which bit me was support for high resolution displays with applications which do not directly support them. Unity can be configured to scale all UI widgets by a factor (2x in my case) which makes it look fine on the 3200x1800 display. But unfortunately even the most recent versions of Eclipse still to not support high DPI displays.

Please go and vote on this bug to push the issue.

In order to be able to use Eclipse (Scala IDE in my case) there exists a hack which another annoyed user put together. A comparably primitive tool to process all of the archive files inside an Eclipse installation directory and scale the images to double size. Afterwards, Eclipse may not look perfectly fine, but it is usable. So, hat tip to davidglevy!

What's Next?

After these initial issues, my Dell XPS 13 is a really neat and fine device. Hardware support with Ubuntu is near-perfect (only the HDMI out on the additional 4-in-1 adapter does not work, but I just ordered a mini-DVI-to-HDMI adapter to be able to attach HDMI displays, so I do not really care). Performance is awesome and battery life seems to be really good. I did not put it to a test, but running under average work load (playing music while browsing the web or programming with lots of I/O) seems to yield easy 7h+ of working time with still some power left.

In case you are searching for a portable, well-supported Linux ultrabook, I definitely recommend this device. Assuming you can spend the money, since it is not cheap.

Thanks a lot to the Linux folks at Dell's project Sputnik for making this device available!