How do I update my nvidia modules after updating my kernel?
Solution 1:
For me dpkg-reconfigure rebuilds the Nvidia driver with the latest kernel. This then requires a reboot to take effect. My example below uses the older nvidia-304-updates.
sudo dpkg-reconfigure nvidia-304-updates
EDIT: I managed to automate this by writing a script zz-dkpg-reconfigure-nvidia
that runs after kernel updates
#!/bin/bash
#
# Reconfigure nvidia driver
DRIVER=nvidia-304-updates
dpkg-reconfigure $DRIVER > /var/log/dpkg-reconfigure-nvidia.log 2>&1
exit 0
I installed the above script by running
sudo install zz-dkpg-reconfigure-nvidia /etc/kernel/postinst.d
Works on my Ubuntu 14.04 kernel 3.13.0-29 to 3.13.0-36 update.
Solution 2:
If you have installed the NVIDIA driver as an ubuntu package, it should be updated automatically after each kernel upgrade.
You can install the packaged driver using the Additional Drivers
tool in the dashboard, or installing the package nvidia-current
.
If you have installed the nvidia driver directly from their website it is probably sensible to remove it before installing this package - I'm not certain how good it will be at detecting the conflict.
If you have installed the package from the ubuntu repositories, you can try reconfiguring it with dpkg-reconfigure
but I suspect building the nvidia module is triggered by installing a new kernel, and I'm not sure how to trigger this otherwise. The traditional uninstall and re-install might well work (sudo apt-get remove nvidia-current; sudo apt-get install nvidia-current
).
Solution 3:
When you have installed the NVIDIA binary driver, you probably haven't installed the dkms package. Dkms makes sure that every time you update kernel, modules which support it are recompiled:
sudo apt-get install dkms
You would probably need to re-install the NVIDIA binary drivers afterwards, and allow to use DKMS during the setup as it needs to be registered with it.
Solution 4:
If you want to rebuild the kernel modules only, then you might just want to execute
sudo apt-get install --reinstall nvidia-current
if you have nvidia-current installed, or if you have nvidia-331 installed then this should do the work:
sudo apt-get install --reinstall nvidia-331
no need to add a repo or install new software :-)