Linux on the Dell XPS 15

I bought this laptop in October/November of 2017, more specifically the 9560 model that was released in February of the same year. As many will know Dell sell this laptop with Ubuntu as part of their Sputnik programme (project?). I however being the impatient so and so that I am ran (well, drove…) down to my local PC World and bought it there with Windows. Which of course I immediately wiped and put Ubuntu on. Now you’re probably thinking it went fine, it ships with Ubuntu right? Well it went horribly. So after owning it for a few months I’ve decided to do a run down of the issues installing various Linux distros on this hardware.

A small caveat first. I’m a huge fan of Linux Operating Systems, both my machines always run some form of Linux. I don’t consider Windows or even macOS to be a viable alternative. Having said that I’m also a pragmatist and I know that Linux isn’t perfect so I’m not ignorant of it’s flaws as evidenced by this post.

I’ll be trying out the following Linux distros:

Just a couple of points about the above list before moving on. Some will point out that KDE Neon & Ubuntu Mate (and maybe even elementary OS) are really just Ubuntu with a different Desktop Environment. I have to disagree, both distros are a lot more than that as their relevant developers put huge amounts of work into specifically improving the experience their users will ultimately enjoy. Secondly and lastly I haven’t included openSUSE Tumbleweed (the rolling openSUSE) for one simple reason: they don’t provide proprietary NVIDIA drivers. In my opinion as much as I’d prefer to use a fully open source graphics stack that simply isn’t possible with Nvidia as the Nouveau driver is massively lacking in performance & support for “new” cards.

My testing methodology will be the following:

  • Boot media.
  • Select Defaults (DE, partitions etc) — except that LUKS full disk encryption will ALWAYS be selected.
  • Reboot.
  • Run a full update then reboot.
  • Install proprietary NVIDIA drivers then reboot.
  • ???

Ubuntu Distros

I’m going to talk about the Ubuntu based distros as a group, specifically Ubuntu 16.04/17.10, Ubuntu Mate 16.04/17.10 & elementary OS as they share common issues. Primarily these issues are:

  • Requires the nomodeset kernel option to be passed in to even boot into the live environment.
  • After installation you are prompted to remove the media and hit enter to finish rebooting. It just hangs here so a hard reboot is required.
  • Cannot enter LUKS passphrase without removing the nomodeset option from the kernel options on boot.
  • Even when able to enter the LUKS passphrase the machine freezes up completely after mounting the encrypted volume.

I believe most of this is due to Ubuntu (or maybe the Ubiquity installer) not handling the NVIDIA card properly, hence requiring the nomodeset kernel option to be passed in. This has been a problem with Ubuntu for a long while and is really nothing new. Disappointing to see this is still the case but lets move on. Now it seems that Ubiquity tries to be helpful and adds the kernel options you added to the default grub options during install in order to persist them. Great idea in general, but actually causes issues here as it makes the prompt for the LUKS passphrase non-interactive preventing me from booting any further. If I remove that kernel option I can enter my LUKS passphrase and the encrypted volume is mounted as expected. However this is usually where the boot process freezes again, and no amount of kernel boot option changes seem to be able to get past this to a usable system. Interestingly the 16.04 versions of Ubuntu & Ubuntu Mate don’t exhibit this issue on first boot, but only on the second after updates are applied. This combined with the fact that the 17.10 versions of those distros fail at 1st boot implies there was an update that is causing this issue. Either way, very disappointing as it means to most mere mortals you cannot install Ubuntu on this laptop. It’s worth noting that I have had Ubuntu on this laptop but for the life of me I cannot remember all the steps required to get it working, suffice to say a chroot from a live environment was needed.

KDE Neon User Edition

So to round out the Ubuntu based distros lets turn to KDE Neon. The issues I found here are as follows:

  • Did not reboot after install.
  • Destroyed my UEFI boot entries.

The first issue sounds similar to the other Ubuntu/Ubiquity based distros and the underlying issue might be the same but the way it is seen by the user is different. Neon actually freezes at the end of the install after hitting yes to the dialogue asking if I’d like to reboot or keep testing. After having to hard reboot my UEFI boot entries seem to be gone so this and any other boot option is simply gone so I get a simple no boot options error from the motherboard’s UEFI software. This may be related to the first issue in some way, perhaps the writing of the UEFI boot entry happens at the end and the freezing up interrupts that in a destructive way. This is pure conjecture though. Again I HAVE had this running previously but it required significant voodoo to do so and even then with NVIDIA proprietary drivers there were constantly artefacts underneath the mouse pointer.

Debian

Debian really shows it’s age in it’s installer. Whilst that isn’t necessarily a bad thing it certainly makes like difficult when selecting the right boot media etc. For reference I used the DVD 1 ISO only. This had the following issues:

  • Touchpad does not work in the installer so had to plug in a mouse.
  • Warning about non-free drivers required for devices and other media is required but doesn’t say which media.
  • After installation and first boot it seems the “CD” was the only source in Apt for packages.
  • No networking.

Most of the issues here ultimately boil down to the warning about non-free drivers I believe. It listed the drivers and asked me if I’d like to install the media containing them. The problem is however there was no indication of what that media was. Was it on DVD 2 or 3? Was it somewhere else? No idea. The install ultimately completed without an internet connection as the wireless card was one of these non-free drivers. This also meant that the completed install had no networking and as a result no easy way of fixing that issue. Lastly my pet peeve: leaving the install media as a configured software source in the final installation. Whether a CD or USB stick (like I used) this media is often gone at this point and putting it back in is a pain in the behind. What is worse here though is that whilst other distros that have had this issue in the past also had the online repos listed so you just had to remove the entries for the “CD” and you’d be up and running, Debian didn’t do this. The only online repo that was configured was the security updates repo. This may be due to the network not being available and the installer making a choice based on that fact but either way, not great. I may re-visit Debian down the road as their minimal approach to the final installed system is appealing, but for most people on common hardware in 2018 it just doesn’t work.

Fedora Workstation 27

Fedora actually did very well on the whole and I was very impressed with the installation experience and in fact I only had one major issue:

  • Does not boot after installing proprietary NVIDIA drivers.

As you can see it was doing very well right up until that crucial NVIDIA driver was installed. Not much to say here, other than NVIDIA cards are a pain in the behind.

openSUSE Leap 42.3

Arguably openSUSE was the worst experience on this list on the basis of how far it got, though that did at least mean it wasn’t as frustrating as the ‘buntus. The only issue here was:

  • Never boots into the live environment, it just hangs after loading the drivers.

An immediate show stopper, can’t even get to the live environment to do an install. This did not seem to be in any way affected by kernel options as I tried a few permeations to get this booted.

Solus

The final and indeed the star of this test, as it undoubtedly provided the best experience by far. Before getting into details here are the issues Solus had at a high level:

  • Froze after confirming that I would like to reboot after install, requiring a hard reboot.
  • Froze after first login, requiring a hard reboot.
  • Temporarily froze after connecting to Wifi the first time.
  • Froze when confirming I’d like to reboot after installing proprietary NVIDIA drivers, requiring a hard reboot.

As you can see most of the issues were one off freezes, one of which only lasted a couple of seconds. I expect small things like this will largely be worked out over time and the fact that there were no major blockers to installation or the early set-up steps was very pleasing. It does make me question why Solus; a distro with a relatively small team (compared to the likes of Ubuntu say) can have such a comparatively smooth experience. Is it to do with CLR Boot Manager? I don’t know, maybe. I’d be curious to know either way.

Conclusion

Obviously out of the box experience is King and if I’d bought this laptop with Ubuntu pre-installed from Dell and kept it, it would have been amazing. Sadly though Linux pre-installed on Laptops is still pretty uncommon, especially amongst more mainstream brands so the install experience of distros needs to remain strong. I suspect many of these issues are down to the NVIDIA card being used in this system, but from what I’ve seen laptops that are 15" or greater and those above a certain price threshold as well are extremely likely to have a discrete NVIDIA card so the issue isn’t going away any time soon. The whole first boot experience and management of graphics drivers in particular clearly needs some work across the board to improve the experience for everyone. I know the Solus team have a lot of efforts in the graphics and driver management area that look hugely promising (I’m a Patron of theirs and I follow their blog etc pretty closely) so the near future may see huge leaps in this area.

I may have done some things wrong during these “tests” and indeed if people have feedback and want me to retry certain things I’d be happy to do so.