Guides 11792 Published by

This guide explains how to fix Wi‑Fi and GPU driver problems on CentOS 8 by booting an older kernel instead of the newest update. It walks you through listing all installed kernels with rpm, selecting a stable version that works with your hardware, and noting the exact package name for later use. The instructions show two ways to make GRUB default to that kernel – either using grubby to set the path directly or editing /etc/default/grub and regenerating the config with grub2‑mkconfig. Finally, you can test the change by rebooting, verify the menu preselects the chosen entry, and when ready revert to the newest kernel with another grubby command or restore GRUB_DEFAULT=0.



Booting CentOS 8 with an Older Kernel: A Quick‑Start Fix

If a recent kernel upgrade breaks your Wi‑Fi or makes your GPU driver refuse to load, you can tell the bootloader to use a previous kernel instead of the newest one that came with the update. Below is a straight‑up guide for CentOS 8 that shows how to list the installed kernels, pick the right one, and make it the default until you’re ready to upgrade again.

Why an Old Kernel Might Be Needed

I’ve seen users hit a wall after installing kernel-4.18.x on a laptop with legacy firmware: the display flickers, or the power button stops waking the machine. Those symptoms often disappear when you boot into kernel 4.17.8, which was stable before the update. The trick is to tell GRUB to start that older image by default.

Find the Kernels You Have

Boot once with the new kernel (the one that’s currently in use). Open a terminal and run:

rpm -qa | grep ^kernel-

You’ll see something like:

kernel-4.18.0-372.el8.x86_64
kernel-4.17.8-300.el8.x86_64
kernel-4.16.9-200.el8.x86_64

The rpm command lists every package that matches the pattern, so you’re guaranteed to see all kernels installed on the system.

Decide Which Kernel to Use

If your hardware works fine with kernel‑4.17.8, use that one. Note the exact version string; you’ll need it in the next step. Make sure no other kernel newer than the one you want is marked as “default” by GRUB’s menuconfig.

Set the Default Kernel in GRUB

CentOS 8 uses grub2 with its default configuration file at /etc/default/grub. The easiest way to change the default entry is via grubby, which manipulates the GRUB configuration without editing files manually:

sudo grubby --set-default=/boot/vmlinuz-4.17.8-300.el8.x86_64

That command tells GRUB to start with that kernel the next time you reboot. If you prefer a manual tweak, edit /etc/default/grub and change the GRUB_DEFAULT line:

-GRUB_DEFAULT=0
+GRUB_DEFAULT="Advanced options for CentOS Linux>CentOS Linux 4.17.8-300.el8.x86_64 (el8) ... "

After editing, regenerate the GRUB config with:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Test It

Reboot the machine and watch the menu appear. You’ll see a list of kernel options under “Advanced options for CentOS Linux.” The entry you set should be pre‑selected. If everything looks good, let the system finish booting; you’re now running the older kernel.

If something still breaks, go back to GRUB’s menu and pick a different kernel until you find one that keeps your hardware happy.

Reverting Back (When You’re Ready)

Once you’ve fixed whatever issue was caused by the newer kernel—or if you want to try the update again—simply run grubby with the latest kernel:

sudo grubby --set-default=/boot/vmlinuz-4.18.0-372.el8.x86_64

Or edit /etc/default/grub back to GRUB_DEFAULT=0 and regenerate the config.

That’s all you need: list installed kernels, pick the one that works, tell GRUB to boot it by default, and reboot. No mysterious scripts or extra utilities required.