How to downgrade to the LTS Kernel on Arch Linux

I’ve been all over the place recently in regard to my love and/or hate of Arch
Linux.

I absolutely love the minimalism of the base install and the availability of
packages.

What I’m hating is that I’ve been running into some really weird system lock ups
that seem to be related to Gnome by way of whatever browser I am running.

It’s been weird, I’ll open up a new tab in my browser and poof, the system will
appear to log me out of Gnome.

Sometimes I can log back in and open by browser and poof same shit happens.

The poof has even persisted through a reboot and doesn’t resolve until I
open the browser in such a way that it doesn’t open the previously opened tabs

This has happened to me in Firefox Developer Edition, Google Chrome and
Chromium and I haven’t found a reliable reason or solution.

I’ve dug through the system logs and it appears to be something related to Gnome
that is resulting in a segmentation fault.

Initially this was only giving me grief on my iMac but recently happened on my
MacBook Pro since upgrading to Gnome 3.26.

My buddy Dean suggested that I roll back to the long-term support
release of the Linux kernel before I completely abandon Arch and begrudgingly
run back to Debian.

As I’m using systemd-boot the steps were a bit more involved than simply
installing the linux-lts package. Here’s what I ended up doing:

First you will need to install the linux-lts package. It’s an official Arch
package so sudo pacman -S linux-lts will suffice.

Once that’s installed you will need to either edit your existing boot entry or
create a new one. I opted to create a second entry so that I could go back and
try the latest and greatest Linux kernel from time to time.

You probably have an entry configuration named arch.conf in
/boot/loader/entries. If not, update this command to match your naming
convention:

cd /boot/loader/entries
cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-lts.conf

Then you’ll want to edit the file to reflect the LTS kernel:

sudo vim /boot/loader/entries/arch-lts.conf

The lines that need changing would look something like this:

title Arch Linux - LTS Kernel
linux /vmlinuz-linux-lts
initrd /initramfs-linux-lts.img

If you reboot now you’d be able to pick the LTS kernel option from the boot
menu, but if you’re wanting to use the LTS by default like me you will need to
edit loader.conf

sudo vim /boot/loader/loader.conf

And set your default option arch-lts:

timeout 3
default arch-lts

timeout is optional if you want the menu to show up by default without a key
press. Comes in handy if you need to switch back to the latest kernel if
something’s fucked with the LTS one for you.

That’s it, reboot, and run uname -r to check that you’re on the LTS version of
the kernel. That would be version 4.9 as of the time of this writing:

4.9.53-1-lts

Not much to it and from what I’ve heard could be less steps depending on your
boot loader.

The only issue I’ve run into is with my FacetimeHD camera on my MacBook Pro.
I’ve reinstalled the kernel modules while running the LTS kernel and it’s still
saying device not found. Expect another post when I figure that one out 😉

Josh Sherman - The Man, The Myth, The Avatar

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.


If you found this article helpful, please consider buying me a coffee.