camg.me

Fedora Yum / Dnf Update Breaks Nvidia Drivers

I recently had some issues after running a dnf update that completely borked my installation. I run KDE Plasma on Fedora 29 with an Nvidia 760Ti card, and I wanted to share some of the process I went through in recovering without having to do a fresh installation, in case it can help anyone.

Note: I am not a GNU/Linux expert, and this advice is given without any warranty. Attempt at your own risk.

The Ominous Three Rectangles

Nvidia Driver Failure Screenshot This is roughly what I saw when I tried to boot after entering my disk decryption password. It may look different for you depending on if you have disk encryption enabled and on what desktop environment you use.

Single-User Mode

The first thing I did after seeing this was to try to login to single-user mode to look around. To do so:

  1. Reboot your computer as normal
  2. When you see the grub menu, select your normal boot option and hit ‘e’.
  3. You should see something like this. Single User Mode
  4. On the line beginning with ‘linux’ append a 1. So the full line will look like
    linux <some stuff> 1
    
  5. Hit Ctrl+x to boot into single-user mode. This won’t persist past this boot.

Debugging Dnf

In order to see what exactly went wrong when I updated, I ran dnf history list

If you’re like me and have installed lots of packages, this may fill up your screen. I output it to a file since I don’t know how to scroll in single-user mode 😳

  1. dnf history list > output_filename
  2. vim output_filename
  3. Result:
    ID     | Command line             | Date and time    | Action(s)      | Altered
    -------------------------------------------------------------------------------
    103 | update                   | 2019-04-09 21:58 | E, I, U        | 1010 >E
    ...
    ...
    

Okay, so looks like I should rollback that change. To do so, I tried to run dnf history rollback 102 to try and rollback to a state before I had run the update.

This actually didn’t work for me. I may not understand dnf very well, but from some searching on the Internet, I wasn’t able to get it working at all. Each time it would report that it failed to find the packages. At first, I thought this was because I was in single-user mode with no ethernet and no cahced packages, but even after rebooting to multi-user mode with networking (replace the 1 with a 2 above to try), I still couldn’t rollback the transaction. And it seems like I’m not the only one.

At this point, I investigated further and saw something like this at the end of my /var/log/dnf.rpm.log.

Error! Bad return status for module build on kernel: 4.15.0-rc8-ge1915c8195b3 (x86_64)
Consult /var/lib/dkms/nvidia/410.93/build/make.log for more information.

This led me to realize that I’d updated the kernel to a version that was incompatible with my current Nvidia driver. On this great site, you can find all kinds of information about Nvidia driver compatibility with different linux kernels.

Patching up

With this realization, I rebooted, and selected my old kernel from the GRUB menu. I’ll have to update my Nvidia drivers before I can update to the next kernel. (Going to be so much fun!)

I hope this was useful to someone. If you have any comments or corrections, please email them to my email listed on the about page. Thank you.