Installing Arch Linux on a Dell XPS 13 (9350)

I’ve wanted a powerful yet light Linux laptop for a while now, something with a decent CPU and buckets of battery life. I finally found that in the Dell XPS 13. I originally tried to purchase one from Amazon, which failed for some reason (they never explained why they refunded and cancelled, no stock?) but then purchased it from Dell directly. Luckily the new model, 9350, was just released, it’s not the developer edition (one with Ubuntu and no crapware) but it’s good enough.

I went for the 1080p (non-touch, because EW NO) screen, 256GB SSD, 8GB RAM and i5 CPU. I felt like it was a good balance of power and price (<£1,000). A lower resolution and CPU clock speed should aid battery life too.

Out of the box

The first thing you’ll notice is that the actual box it’s shipped in is actually really nice. It’s definitely well protected despite the actual machine being pretty solid. The case is beautiful, thin and metal. It’s incredibly light too, even the charger is solid yet small. I really feel like I’ve got my moneys worth even from just feeling the hardware. I used to think Apple were the only ones that could give me that impression (despite hating their OS and locked down hardware choices), but no, Dell have really hit the spot.

Still in the boxThe metal body is complemented by a soft feeling carbon fibre-esc interior. The keyboard feels solid and has a decent layout, control being in the bottom left for example. It’s no ErgoDox, but it’ll do. I can’t emphasise enough how light yet strong this thing feels. When running it’s also silent, I can hardly tell that it’s on!

When openBIOS updates

With the previous model (9343) you had to update the BIOS to at least a version called AO5 to get most components working, as documented on the Arch wiki. This latest version doesn’t appear to have any updates yet but I booted into Windows (shudder, took forever to get through the crappy Windows set up process) to run the Dell tool that checks for me. It found an update but I’m not sure if it actually changed anything. I performed the update anyway.

You can either update through a Windows executable or you can download some file (also a .exe I think?) and boot it from a USB. Dell show you how to do this though. It’s worth checking, BIOS updates appear to make a huge difference with the XPS line and Linux.

The first 9350 BIOS version must be equivalent to the AO5 update from the 9343. I presume. Here’s the update taking place anyway.

Updating the BIOSFixing the WiFi

As the Arch wiki mentions, the default machine comes with some shoddy Broadcom chip (just like a MacBook!), but you can buy a pretty good Intel one and just swap it out (unlike a MacBook!). I bought my Intel 7265 from Amazon, I luckily already had a toolkit lying around to open the XPS up. You can find the full details to replace the WiFi on ifixit, it was surprisingly easy.

Remove the screws around the outer edge as well as the one under the little XPS flap. Pop the base off (took some force, used my Oyster to get some leverage). Unscrew the grounding thing on the chip, remove the two cables which just snap onto little plugs. Slide the chip out and slide the new one in, put the cables back on, screw the thing back down, put the case back on and screw together. Easy. Then it’ll work on boot, the WiFi chip in question is supported by the mainline Linux kernel!

Upside down with the XPS flap
Upside down with the XPS flap
I'm in, thanks to my trusty Oyster
I’m in, thanks to my trusty Oyster
The new chip
The new chip
And it's in!
And it’s in!

The weird parts

I had to change a few bits in the BIOS (press F2 at boot to access BIOS menu, F12 to access boot menu) to get the installer working, as you’d sort of expect. My trial and error process went something like this.

  1. Attempt to boot Antergos installer USB (it’s essentially Arch with an easy to use installer)
  2. Will not boot at all, so make USB with rufus which prompted to patch some weird files and disable secure boot in BIOS, then it booted
  3. Use installer, get to partitioning, no drives, cry
  4. Work out that it’s something to do with RAID, go into BIOS -> System Configuration -> SATA operation and set it to disabled
  5. Run Antergos installer all the way through (it can see the SSD now!) and fail when it goes to run mkfs.ext4, cry
  6. Gave up on Antergos, going back to manual Arch, so used rufus on Arch installer and followed normal Arch install guide for UEFI hardware, you’ll also notice that it uses the new /dev/nvme0n1 interfaces instead of /dev/sda, apparently it’s faster?
  7. Arch install went without a hitch

Edit: I installed it with a full UEFI setup (as suggested by the Arch beginner install guide) using parted and systemd-boot. You can find my bootctl config and fstab in this gist.

I then spent hours trying to work out why X wouldn’t start and in turn LightDM. It was complaining about not being able to detect any screens, well it turns out I needed to add some kernal parameters. I also performed this early KMS thing, but I’m pretty sure it was the kernal parameter that did it.

Install in progress

Everything else is as you would expect, you need the Intel graphics driver and synaptics for touchpad support. All of this is part of a normal Arch install though and all documented on the wiki. The important parts are the BIOS and kernal tweaks however. Once you get those out of the way it should work.

The first actual boot!
The first actual boot!

How is it?

Excellent. I haven’t had a single issue after completing the install. My dotfiles all went in without a hitch. The battery life has been extremely impressive already, you should get about five hours of solid use with Firefox chugging away and a large Vim install in the foreground. I’m in Valencia right now and I’ve been using it in cars / airports / flats. This is the first time I’ve charged it since leaving just because I could, I still had over 60% remaining. I made sure to follow the wiki and enable everything I could to do with power saving.

I highly recommend this hardware, Linux can clearly work well on it, it just requires a little bit of fiddling. This post is to help others along the way but also to show that it IS possible, Linux does run fine.

The first boot into my desktop
The first boot into my desktop
Even when charging it looks great
Even when charging it looks great
And of course I've covered it in stickers
And of course I’ve covered it in stickers

I hope someone out there finds this useful! It should save you a bunch of time if you attempt to do the same. I have no idea how easy it would be to install Ubuntu / Debian or any other distro, but if Arch works they probably will too.

Good luck!

  • versus

    Thanks man!

    Just one question… wouldn’t be better use an external usb wireless device, until the new Broadcom chipset is fully supported by linux?
    the BCM4350 chipset is queued to be included in the kernel 4.4 (the next stable release)

    • Oh! I didn’t realise that was the case. Sure, I guess that’d work. The Intel chip is pretty inexpensive however and leaves you with almost entirely Intel hardware (which I kind of like the idea of?)

      I heard the broadcom chip just wasn’t as good anyway? Maybe it’s just because of the kernel support.

      • daniels

        The older Broadcom chipsets definitely weren’t as good, but these should at least be on par with Intel. If you have a very current kernel and linux-firmware, it works out of the box.

        • RA

          Indeed, if you follow the thread on Dell’s forum :

          It’s possible to get it working before 4.4 is out (it works for me right now, though I lost the touch screen and couldn’t get virtualbox’s driver to work just yet..)

          • Frank Shin

            Just restating what I said in another comment so that these guys get the notification. Check out the bcm4350 kernel on aur. It will support the dw wifi chip in the xps 13 9350.

  • fooblahblah

    Nice write up! One important bit I didn’t see mentioned is suspend/resume. How is suspend working out?

    • It appears to be working fine, although I should probably check it’s ACTUALLY suspending and not just turning the screen off. When I open the lid back up I need to tap the power button to wake it up.

      Seems to work out of the box though.

  • xymostech

    Thanks for the information! Have you been able to try the USB-C + Thunderbolt port? I was considering getting one of the new xps 13s but I want to be able to connect my computer to an external monitor, and wasn’t sure if that port was usable in Linux.

    • Hey, I haven’t been able to test these, no 🙁 I don’t own anything with those. Maybe someone that’s tried them can reply?

    • daniels

      USB-C to USB-A works just fine, but it doesn’t work with DisplayPort or HDMI (which is really just DisplayPort as far as the system knows – plus a DP-HDMI converter). I’m hoping to get to this in the next few days.

      • Ross William Drew

        Any luck with this? I’ve just gotten one of these, installed Fedora and can’t get it working.

    • I’ve been using a DVI -> USB-C adapter and it works great (on the developer edition running Arch Linux still). I’m trying to use it through a USB-C hub now which isn’t working, but plugging in directly does.

  • norterthen

    can you upload your /etc/mkinitcpio.conf please?

  • Clem

    I received mine 2 days ago, sadly I didn’t bought a wifi ship to replace the one that comes with it, which has no driver for Linux currently (should be there for Kernel 4.4 which is sadly not tomorrow), so at the moment I use a cheap unstable wifi dongle which is pretty annoying.
    Also I still haven’t managed to get touchpad gestures (two finger scroll and things like that) using cinnamon, synaptics driver doesn’t seem to work in my case.

    • Damn, I heard that the Broadcom support is arriving in the kernel soon too though, I hope it’s not too far away! The Intel chip works perfectly. Here’s my synaptics config, I have two finger scroll both ways with two finger tap for right click:

      • thetrystero

        any idea is broadcom support is ready now?

    • Frank Shin

      Check out the bcm4350 kernel on aur. It will support the dw wifi chip in the xps 13 9350.

      • Clem

        Oh, thank you, I’ll look into it.

    • Clem

      Ok, so now, I have wifi and touchpad working nice but random freezes using Cinnamon. When it happen the full system is frozen, have to turn it off. Nothing about that in journalctl

  • Hi, thanks for the write up. I am contemplating buying this laptop also. I haven’t used Linux for a decade, so your input is highly appreciated. The 9350 has very long standby time under Windows – Dell claims up to 18h. Any chance for getting similar standby times under Linux? I would be interested in what could be optimized to make Arch as efficient as possible on this laptop. Thank you!

    • I can’t see why not! If you suspend to disk or RAM it should go for days. If you don’t suspend and just sleep it should also last > 10 hours, I haven’t tried it though. I’m seeing about 7 – 8 hours of usage with things like Firefox open at the moment, although I haven’t had it long enough to get an accurate measurement. Maybe I’ll do some benchmarks some day.

      If anything I would imagine Linux would use less power than Windows (depending on your desktop environment / window manager). With my Arch install I can scroll through my list of processes pretty quickly and I know what each of them is doing (pretty much). You can use powertop to work out what is hogging your battery too.

      • Benedict Aas

        I’ve read that the 9343 can get up to 20hrs with some tweaks[1], I’d love to see if the 9350 can do the same, so please do benchmark/play around with this some more. I’m still waiting around to get mine but I’d definitely fiddle if I could right now because 20hrs sounds crazy.


        • Joshua Ruehlig

          I doubt 20 hours. I’ve read a couple reviews that measured it more around 8-12 range.

    • Joshua Ruehlig

      I have the XPS13 9343 (last years model) and have excellent standby times. I was surprised when I opened this laptop up after not touching it for several days and it still had essentially the same charge.

      I am running Antegros and tweaked everything on powertop to good, disabled bluetooth with rfkill, and get around 9 hours with regular browsing and the occasional youtube video. Also switched out the wireless card as the broadcom one cuts out, even with the default windows install.

  • Pingback: Installing Archlinux on Dell XPS 13 2016 Skylake 9350 - Frank Shin()

  • Pingback: Dell XPS 13″ (9350) e Linux – Blog di Massimiliano Monaro()

  • angel

    Thanks for the suggestions! As others noted, the 4.4 kernel (curently rc6) supports the broadcom chip.

    • Evan Relf

      I’m planning to buy the XPS 13 (early 2015). Are you saying that the Broadcom chip works out of the box? I’m not sure if I should buy an Intel Wi-Fi chip if Broadcom works fine…

      • If unsure, I would wait. The XPS 13 developer edition with Skylake chipset is just around the corner. It will ship with Linux and an Intel Wi-Fi chip.
        There’s no official mention of a date except that it’s going to be released in 2016, but I wouldn’t be surprised if Dell is going to announce it now at CES…

        • If there really is a developer edition coming out, go for that. I would have if I thought one would be created. I had not seen any news and Dell support had no information for me. Although they didn’t even know the 9350 was about to be released either.

          Any source on that?

  • gettons

    Hi there, thanks for your post, this really helps.

    Quick question though :
    I had the xps developer edition 9343 with ubuntu in the past but the trackpad was horrible and if I am not mistaken there were issues with the keyboard as well ( typing the same character twice ).
    How are you finding the trackpad with 9350 mate ?

    • I’m glad you find it useful! I haven’t had any issues with the trackpad or keyboard so far, other than palm detection not being set up. But I think I could get that working if I tried. No duplicate key presses though, I’d notice that being a Vim user.

      Everything works fine for me, but it could be some subtle X config I guess. I can maybe post my X config if it helps but I’m only following what I found on the Arch wiki 🙂

      • gettons

        Thanks a lot. I also remember having some troubles with ubuntu ( not arch ) when connecting to wpa2 enterprise networks. This happened with both wifi card I had ( broadcom first then the intel ). I this it was more of a ubuntu problem, I googled and found some posts where people suggested to disable the certificate check within the config file itself, but that didn’t help much. Did you have the chance to test wpa2 enterprise at all ?


        • I’m afraid I haven’t, no. Maybe someone else viewing this post has?

          • gettons

            for the sake of clarity. the problem was with psense and the freeradius version it was running. with the latest pfsense it ‘ s all good.

  • ArchFanBoy

    Great article! I am on the same machine w/ Arch. Do you have the usb type-c port? Can you successfully run video through it? I have managed to attach a vga converter to it, but everytime I reboot it takes some combination of running xrandr –addmode and arandr before it recognizes the screen. How do you work it out?

  • polandroid

    So since you have to change the broadcom card in the standard version, would you recommend to buy the Developer Edition with Intel card instead? Or are there bigger differences between those versions?

    • It hadn’t been released when I bought my personal XPS. I now have one at work too which is a developer edition, I can’t spot the difference, I’d highly recommend getting the developer edition to avoid the broadcom chip as well as the default Windows install.

      • polandroid

        Thanks, good to know 🙂

  • ferN

    Have you updated your kernel ever since? I’ve just bought xps 13 9343 an week ago, an the sound is not working on 4.6.3 neither on lts (4.4-13). I’ve tried recompiling the 4.6.3 kernel with acpi override (hda sound) and its irrelevant. Right now Im compiling lts (4.4-13) with it and I will tell you if it works.

    • I was running LTS for a while since the latest version was causing my screen to flash black occasionally. I am now running 4.6.3-1 and it’s working fine. I would imagine it’s at the alsa / pulse levels, not the kernel.

      • ferN

        Strange. Did you do something to get it working? Any drivers except alsa, any configurations, etc.?

        • Nope, just worked I’m afraid :/ be sure to update your BIOS!