ElementaryOS is a great Linux distribution. We have recently covered an in-detail review of ElementaryOS before in NixFAQ and in that article, we have also covered an issue about how old kernel and drivers in newer systems (Latest AMD processors, Nvidia / AMD graphics) tend to work badly in ElementaryOS. Some users may experience sluggish CPU, GPU, overall performance decrease, and terrible UI related issues.
I have experienced very sluggish blender viewport and terrible screen tearings in the default kernel when I upgraded my desktop rig with newer hardware. In this article, we are gonna fix that pesky issue and make our system as fast as my cat when he smells food.
So let’s get started. We are gonna install the necessary drivers and the latest kernel in 3 steps. Some users may get things running with less than 3 steps, but others may need to follow through. Now let’s get… wait I wrote that before! Anyway,
Prerequisite: Update your system before proceeding. Open AppCenter and check the Install tab for any pending updates. A stable internet connection is required. Be sure to keep backup your system not only for this case but any. And these steps will also work for other Ubuntu systems (Except 19+ versions) but you will have to skip the first step.
Step 1 – Install common software properties
So we can add PPA for the graphics driver.
First, let’s install common software properties. Unlike other Ubuntu-based Linux distributions, we don’t have an option to install external sources of software packages or PPA. For the sake of security and simplicity, ElementaryOS only allows you to install packages from Elementary apps and Ubuntu repository.
But, since we don’t have all the optional graphics drivers in the central repo, we need to add PPA thus we need to install Common Software Properties so we can add external PPA. To install it, simply open your terminal from the menu and type/copy-paste
$ sudo apt install software-properties-gtk software-properties-common
This will install both PPA adding functionality and an additional GUI app to configure and manage repositories, driver updates, and software sources.
Step 2 – Install the latest hardware support, latest kernel
So it installs the latest drivers and support for newer hardware.
We will now install HWE or Hardware Enablement so we can enjoy the latest hardware supports, drivers, and latest kernel. This is the most important step.
Before proceeding to install HWE, be aware that
- Some of your connected devices may stop working. It happens when you are using peripherals that are too old and there is no longer any new driver support. You may manually install them later
- You should not install HWE if you are using older hardware and its running fine. It does not magically increase device performance, rather enable it for the latest hardware. Some devices are no longer supported in the latest kernel and it may create some problems.
- Your system may burn and your storage may get erased…. Just kidding. Always take backup and snapshot of your system
If you are okay with the above precaution, you can now install M A G I C on your system with a simple (OK, not simple) command. Copy paste this on your terminal and hit enter
$ sudo apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04
After that, you can reboot your system and enjoy the butteriness. But wait, there is one more thing!
Step 3 – Install optional Nvidia GPU driver
Proprietory drivers usually give more performance.
ElementaryOS automatically detects and installs GPU drivers for both AMD and Nvidia. But, Nvidia provides proprietary drivers while AMD provides open-source drivers. Now Nvidia also has open-source drivers, but it’s not as fast as its proprietary counterpart. And this is very confusing for the average user. They don’t know and even care which works better or not only to see performance bump later on.
So let’s install the latest and greatest GPU drivers for Nvidia. First, you need to install an external PPA that contains the latest Nvidia graphics drivers. One such PPA is from Graphics Driver Team on Launchpad. To add it, simply open your terminal and copy-paste
$ sudo add-apt-repository ppa:graphics-drivers/ppa && sudo apt update
This will enable you to install many additional and proprietary graphics drivers for both Nvidia and AMD.
You should then head to the menu and search for Software & Update and open it
Head to the Additional Drivers tab.
Choose the latest driver for your GPU (check the number, higher is better).
Be sure to select the latest driver and hit apply changes. You can check the progress too.
Now you can reboot your system and enjoy the faster performance. Some may not like the idea of using proprietary drivers when open-source drivers are available. But I don’t think it really matters that much. If you want the latest driver for Nvidia in Linux, you have no other choice but to use proprietary ones.
On the other hand, if you are an AMD user. You don’t have to worry. It’s likely that AMD drivers are already installed for your system and are up to date. That’s because AMD does not play sheep and provides open-source drivers.
So we have installed our latest graphics driver, latest HWE, kernel, and other drivers. Now you can launch steam, install your favorite games, run Blender, enjoy your high refresh rate monitor, enable AMD Freesync, and much much more. You may also notice your window animations are back. My setup was lacking any window effect when I used the default kernel. But with the above step, my Freesync was on, my monitor was way smoother and my games ran super fast. Without any hiccups.
So there you go. If you followed every step correctly and succeeded, you are by now maybe enjoying a greater performance. If you face any error or there is something wrong in my writing, be sure to comment under this post with your problem in detail so my cat Miguel can reply with a fix. He only takes small catnips in return. You can also call him for on spot repair, but be aware he may steal your girlfriend.