Fedora, kmod-nvidia and akmod-nvidia

If you have Fedora and an nVidia graphics card, chances are you’ll want to use kmod-nvidia as your graphics driver. It is closed-source, but produced by nVidia themselves and has several advantages over the default open-source drivers that are typically bundled with most distributions – for example, 3D hardware acceleration.

If you have already installed kmod-nvidia – read on, and find out why you should upgrade to akmod-nvidia.

So what’s wrong with kmod-nvidia?

The way it works is simple. For each kernel version, there is a corresponding nVidia kernel module. Keeping the two in sync is a pain, so the packagers at RPMFusion have made a metapackage, simply called kmod-nvidia which tracks the right version of the module for your kernel, e.g. kmod-nvidia-2.6.29.5-191. It’s simple – you install just the metapackage and yum automatically installs the right version of the kernel module.

The problem arises when a new kernel is released, but the packagers of kmod-nvidia haven’t yet released the corresponding kernel module. Sometimes they do it in a few hours but often it takes longer – maybe a day or two. For all the time that the corresponding kernel module doesn’t exist, you cannot update your kernel (and if you are using PackageKit to update your system, you cannot easily update anything!)

What’s different about akmod-nvidia?

akmod-nvidia is different. Rather than downloading someone else’s kernel module when it’s available, akmod-nvidia compiles its own version of the module for whatever kernel you have.

So if you update your kernel, next time you boot into the new kernel, akmod will see that no module exists yet on your system for your kernel, and it will compile it automatically. This takes only one or two seconds – I haven’t noticed the delay on my system.

The advantage is that you don’t have to wait for anyone else to do anything when you update your kernel. It’s also extremely useful if you are running some sort of custom kernel, such as PlanetCCRMA‘s realtime audio kernel.

So how do I install akmod-nvidia?

If you haven’t already got the RPMFusion repository set up on your computer, you will need to do this. (The following code snippet is for Fedora. For CentOS, see the RPMFusion Configuration page.

rpm -Uvh
http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

If you already have kmod-nvidia, uninstall it.

yum remove kmod-nvidia

Then you can install akmod-nvidia. It will probably need to pull in a handful of dependencies.

yum install akmod-nvidia

Now if you reboot, akmod will automatically compile your kernel module. You’ll never have to wait for packagers again!

  1. i haven’t been able to get akmod-nvidia working with a custom kernel that i installed myself. are there any special settings i have to enable? i installed the kernel using make headers_install so packages should be able to build against it.

    • I’ve never had any problems with akmod-nvidia. I’ve used it with standard kernels, and with realtime kernels as supplied by PlanetCCRMA. I’ve never used it with a custom compiled kernel.

      I’m not aware of any special settings – at least I haven’t had to use any. But I recommend you read up about it, e.g. here and ask for support on the relevant lists.

Leave a Reply

Trackbacks and Pingbacks: