Nvidia Kernel Modules

From DISI
Revision as of 17:36, 5 August 2016 by Benrwong (talk | contribs) (How to address nvidia client with incompatible nvidia kernel modules)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

When a Nvidia client updates, we must get the kernel drivers to be updated with it. There are two kernel modules that must be updated. If there is a conflict between your Nvidia client and your kernel drivers check with: dmesg | grep "NVRM"

dmesg | grep "NVRM":
API mismatch: the client has the version 352.93, but
NVRM: this kernel module has the version 352.79.  Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.

Use lsmod and grep for nvidia to find the actual kernel module names:

-sh-4.1$ lsmod | grep nvidia
nvidia_uvm             71483  0
nvidia               8531094  1 nvidia_uvm
i2c_core               29132  2 i2c_i801,nvidia

With this information, I see two kernel modules with the name nvidia in them.

We can update them manually by doing:

rmmod nvidia_uvm
rmmod nvidia
modprobe nvidia_yvm
modprobe nvidia

Preferably, we'd have a puppet module automate this task of updating nvidia kernel modules to match the version number of the nvidia client. Puppet Code:

exec {'unbreak-nvidia-after-driver-update':
command => '/sbin/rmmod nvidia_uvm ; /sbin/rmmod nvidia ;  /sbin/modprobe nvidia ; /sbin/modprobe nvidia',
notifyonly => true,
subscribe => [Package['nvidia']],
}