My Journey Installing Ubuntu 20.04 on the Dell XPS 15 9500 (2020)
This article covers my experience, as a relative Linux novice, of installing Ubuntu 20.04 on my new Dell XPS 15 9500 laptop, which replaced a 5 year old MacBook Pro. Since it is a relatively new laptop I’ve not found many other people’s experiences documented on the internet so I’m sharing mine in the hope it helps others.
Dell XPS 15 9500 (Early 2020). Intel Core i7–10570H 6 core CPU, 16GB DDR4 RAM, 1TB PCIe NVMe HDD, NVidia GeForce GTX 1650, Killer Wifi AX1650, Windows 10 Home Edition
Prepare Ubuntu to dual boot with Windows 10
I used the excellent Medium post below by Tyler Lum written for Ubuntu 18.04 on an older Dell XPS 15 model as the inspiration for my attempt (as well as the inspiration for this article’s title!):
Follow Tyler’s instructions for:
- Windows and Dell Updates
- Shrinking Your Windows Partition
- Switch from RAID to AHCI Mode
Install Ubuntu 20.04
With the USB stick plugged in restart your Dell and hit F12 to access the boot menu. On the left side you should see USB Generic Mass Storage listed alongside the Windows Boot Manager and your hard drive. Click on the mass storage device and you are should see Ubuntu loading.
If the USB device isn’t listed in the boot menu (I had some issues with the first USB stick I tried), an alternative option is to boot from a USB using Windows 10 advanced start-up options.
Once you’re into Ubuntu, click on the “Install Ubuntu” icon and follow the installer wizard. Choose the option to install alongside Windows Boot Manager, and do not select to install any 3rd party applications.
At the end of the installation process, your laptop should reboot into Ubuntu. Lots of people report issues with Killer Wifi drivers, Bluetooth, etc but the out-of-the-box install on the XPS 9500 seemed to work ok for me and you could just stop here if you’re happy with a basic functioning laptop.
Post Installation Improvements
The Nvidia drivers weren’t installed by default. I used this guide to get the drivers. Note: the GUI install method described in the guide didn’t work for me, so I used the command line method.
After rebooting you can confirm that your drivers are active by running the nvidia-smi command from a terminal window which will either print driver information or an error similar to “NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver” if the driver is not active.
Fingerprint Reader Drivers
As of late June Dell has begun shipping the XPS 13 Developer Edition with Ubuntu 20.04, and it has the same fingerprint hardware! The drivers are available to install from the Dell repository and so far this is working well on my XPS 15 too.
Power Profile Gnome Extension
I really like the UI options that are provided in Pop OS by System76 for switching between Nvidia and Integrated Graphics, and for switching power profiles between High Performance and Battery Life. The extensions are available for Ubuntu 20.04 and are simple to install.
Power Consumption Extension
In my quest for maximising battery life I have also installed the Power Consumption gnome extension which shows live power usage from the battery. With the power profile extension set to intel graphics and balanced power profile my XPS draws around 6-8W of power for light web browsing normal everyday use. So with an 85W battery that would be around 10 hours.
Make Mine A Mac
As mentioned in the introduction I was switching from a being long time user of MacOS to Ubuntu. There is a lot I had grown to dislike about MacOS but it does have an interface I’d become accustomed to, like the dock across the bottom of the screen and three-finger touchpad gestures (why is this not default enabled in Ubuntu?) so I went in search of something similar:
Personally I’m quite happy to live without Mac themes and icons, but I did install the Dock to Dash Gnome extension:
Multi-Touch Mouse Gestures
Kaigo wrote a great article for enabling three-finger swipe gestures which worked great for me:
After some time getting used to Ubuntu, I’ve found that the default settings provided by libinput-tools were perfectly fine and I didn’t need the Gestures app to roll my own (note: Gestures overwrites the defaults with its own upon installation)
Kinetic Scrolling (Firefox)
On the Mac a two finger swipe on the will still keep scrolling for a bit after you lift your fingers off the touchpad and once you get used to it this feels very natural. It appears that the default libinput touchpad driver does not support kinetic scrolling and expects scrollable widgets to implement this themselves.
Firefox has this feature but to enable it you need to add MOZ_USE_XINPUT2=1 to /etc/security/pam_env.conf (takes effect on next login)
I’ve been using this setup for a week or so and although it is still early days I’m very happy with it. I’m getting between 6 and 10 hours of normal usage on a full battery charge with balanced power profile and Nvidia graphics disabled, and everything works smoothly. In fact it’s almost as good as the Mac experience which has surprised me, and I don’t envisage needing to use the Windows 10 partition again unless I have a warranty support issue or need to do a Dell firmware update.
However there are a few annoyances I have not yet resolved:
- I haven’t yet figured out how to set up Hibernate when I close the lid on my XPS. Ideally I’d like it to work like my old MacBook: close the lid and the latop goes to Suspend, and then after a while to Hibernate. At the moment it just suspends which means it’s nearly run out of battery by the time I want to use it in the morning.
- The Dell XPS hardware itself is great, the laptop chassis, screen and keyboard are great build quality and comparable to my old Mac. However, although the touchpad is huge, it has distinctly uneven click pressure. Trying to perform a mouse click near the bottom of the touchpad is effortless, but trying to do the same near the top needs quite some force.
The touchpad tracking is generally excellent but does seem to occasionally not pick up swipes or scroll movements. I haven’t worked out yet whether this is a software driver or hardware issue.
If anyone has experiences to share, has achieved a better result than mine, or has worked around some of those annoyances then please leave me a comment below. Thanks for reading!