In Valid Logic

Endlessly expanding technology

Dell XPS 13 9350 on Linux

As you can see, I’m quite the prolific blogger when my last post was almost 11 months ago and was supposed to be me moving off of Linux. Yeah, that didn’t even last a week.


To summarize my past year in brief:

  • I had a Thinkpad X240. I fell out of love with it.
  • In December, I bought an MBP 13”. I tried going back to OS X, it lasted a few days.
  • In January, my backpack was stole with both my MBP and X240 in it.
  • I bought another MBP 13”.
  • Around May, I started eyeing the Thinkpad X250, which had reports of working with 16gb ram.
  • In May, I dropped my MBP a few inches and it tapped the bottom corner of the display and cracked it. I bought an X250.
  • In late August, my X250 began slowly frying ram modules. This showed up as the system freezing randomly, often multiple times per day.
  • In October, I was on my 3rd set of RAM, and decided to be an early guinea pig with the Dell XPS 13 9350.

The XPS 13 9350 is a refresh of the 9343, released earlier in the year. It was updated to the new Skylake processors, moved to using USB-C/USB 3.1, and most importantly, added 16gb as a factory option. The XPS 13’s ram is soldered in, so was never upgradable like the X240/X250’s was.

Dell has the XPS 13 Developer Edition, which is the XPS 13 with Ubuntu installed on it from the factory, and with a tested/supported hardware configuration. However, updates always seem to lag behind when the Windows model is updated. So when the new model was announced, there was little information on the timeline for the Developer Edition.

I began watching to see if others had tried Ubuntu on oit or now, but the orders hadn’t started shipping yet. So I braved it an ordered one not knowing whether whether things would work.

I ordered the model with 16gb ram, QHD screen, 512gb drive. At the time, Dell didn’t have any wireless options other than a “Dell Wireless” (aka, rebranded Broadcom). I’ve had to deal with Broadcom chips in Macs long enough to know you don’t use Broadcom if you have other options, so I went ahead an ordered an Intel 7265 off Amazon, same that was in my X240/X250.


The packaging of the laptop is quite nice. Dell has come a long way here. Like with Apple, it makes the unboxing a part of the experience.

photo photo

Once opened up, I booted up Windows only in order to check if there were any BIOS or firmware updates to install. Everything looked good, so I shut it down.

First task was to crack it open and swap out the Broadcom wifi for a far better Intel 7265. Seriously, everyone should just get the Intel. It was only $30 off Amazon, and it by far beats the reception and support issues of Broadcom. I don’t even know why people both asking when the driver will be supported, or try out dev builds, or what not. If time is money, getting the Intel card is cheaper.

For opening it up, the iFixit teardown from the 9343 still matches.

photo photo

The laptop has one of the new NVMe based SSD drives. These are nice since the drive is a PCIe device, and the software stack for it is far simpler and removes decades of legacy cruft. The laptop comes with a Samsung PM951 512gb, but I took the liberty of swapping it out for a Samsung SM951 512gb. The PM is a bit more of the mid-range model, while the SM is the top dog. One benefit is I basically still have the full Windows install, I guess.

Installing Linux

After checking for BIOS updates and finding everything was good, I set right to installing Arch.

There were a few BIOS settings to adjust. Namely:

  • Disable Secure Boot
  • Change the “SATA Operation” setting to disabled. With the NVMe drive, there is no SATA/AHCI stack in play.

During installation, with NVMe, you don’t have /dev/sdX anymore. Those are from the SCSI/SATA disks. The drive will show up as /dev/nvme0n1. Note, this is the drive, not a partition number. So you create partitions on /dev/nvme0n1 and will get /dev/nvme0n1p1 as your first partition.


Arch installed smoothly, I then ran my Chef process and got everything installed. I then fired up X and found it errored saying no display devices found. Uh oh. Luckily, beforehand I saw a link on Twitter about needing a boot parameter for the Intel graphics. I applied the setting, reboot, and had a completely blank display. The system was still responsive over ping/ssh, but the display was blank with just the backlight on.

From what I can tell, the blanking is only with QHD screens. The original guy on Twitter didn’t have any issues, but had an FHD screen.

Ended up tracking down a thread on the Dell Sputnik forum that it was fixed in the latest nightly builds from the Intel DRM team, and they linked to the Ubuntu PPA DEBs. I found a similar linux-drm-intel-nightly in the AUR, so I installed it but had no luck. Upon rebooting, it couldn’t find the NVMe disk at all, and when I got on the rescue console, no keyboard input would work, even from USB.

Luckily, I had a very helpful assistance while debugging all this.


I decided on a whim to just boot he Ubuntu 15.10 LiveCD and see how far it got. To my surprise, it booted straight into Unity, at full resolution, without any issues. Poking around, it didn’t even need the boot parameter at all.

In the end, I decided to install Ubuntu and go forth with it. I couldn’t find a sane path with Arch, and didn’t want to burn a whole ton of time considering I had work to get done, and my alternative was the RAM eater.

Ubuntu worked pretty smooth. I took the chance to completely rewrite my Chef scripts, but found that pretty quick. Mostly “what is this package named in Ubuntu”. I did end up installing the nightly drm-intel kernel, since I found without it, suspend/resume was broken.

Outstanding issues.

There are a few remaining issues on the laptop:

  • Suspend/resume works fine, however hibernation doesn’t seem to. When resuming, it simply boots. And for some reason, feels sluggish when booted if it wasn’t plugged in. Once plugged in, it gets much snappier.
  • VMware Worksation doesn’t seem to work at all. The modules are compiling fine on the 4.3 kernel, but the UI fails to come up. I haven’t looked into this much, since mostly been using vSphere for my VMs lately, or I’ll just use Virtualbox.


Overall, I am very pleased with the XPS 13. In my opinion, the biggest improvement over my Lenovo is the screen. The screen is crisp. Font rendering is so much smooth. I’m unsure if it is in part from the distro switch, or if it is the DPI being much better, but code looks even more beautiful on this machine.

Otherwise, the move to the NVMe SSD is certainly nice. It feels much quicker at times. Definitely no regrets there.

Asthetically, I always liked the matte black look of the Thinkpads and will miss that. The XPS is beautiful, but the palm rest and what not seem to smudge or hold fingerprints. It’ll work though…

The one negative is the battery live. I’ve seen a lot of people say how the XPS has a great battery life and all. But not quite when coming from the X240/X250. Those things had an amazing battery life, largely due to the the massive extended battery. I could pull 10-12 hours on that no problem. I have the power companion for the XPS, but it isn’t quite the same.

The keyboard is taking some getting used to. Mostly, the Ctrl and Fn keys are swapped compared to the X250 and the MBP. Mostly affects text selection and almost every Emacs shortcut. The pipe character is also a fairly narrow key, I’ve noticed.

But in the end, I have no regrets. I look forward to USB-C docks finally coming available (which charge too). The screen will have me drolling for quite a while.

Soon, I’ll follow up by posting my Chef setup on Github. It includes setting various module configs and what not. Some stuff I’m still experimenting with.

Friday, November 13, 2015

blog comments powered by Disqus