Today, I installed the software update from Ubuntu. Then on reboot, I never got to login screen. Something kept flashing on screen, but was too fast to see what it was saying.

Was able to ssh from another computer, dmesg says: "API mismatch: the client has the version 384.111, but this kernel module has the version 384.90. Please make sure that this kernel module and all NVIDIA driver components have the same version."

How could this mismatch happen, since my updates are via the software updater? Appears someone released a driver that the kernel wasn't expecting or some other error occurred.

How do I fix this?



I was able to fix this problem.

As it turns out, while I had been updating my system via the 'software updater', I was actually still running on the old beta 4.8 version of the kernel. uname -r showed me the version I was running. After installing newer kernel 4.13 and rebooting, it ignored the new version, continuing to boot under 4.8. Updated grub, then rebooted, and saw the 4.13 version on the grub menu, so I selected that. Then after it came up, I applied the NVIDIA security updates as before, and this time it worked.

| improve this answer | |

This is quite prevalent, especially when you encountered errors installing the new Nvidia drivers.

The basic reason is because whenever you install a new nvidia drives (via "sudo apt-get install nvidia-xxxx") DKMS is supposed to kick in and update the initrd file. And it will only update the latest "uname -r" version. If that encounters error, initrd will not get updated, and you have to do it manually yourself.

You can verify this via looking into the /lib/modules and search for your newly installed nvidia drivers, and the old one still existing inside the initrd file (via lsinitramfs command) and clearly there will be a difference in version.

For more details see this write-up:


| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.