Jump to content

Script to update manually installed NVidia drivers after kernel updates


Recommended Posts

Posted (edited)

I recently used a script written by an ubuntu forums admin that is supposed to re-compile the nvidia drivers on update.

 

here it is:

 

sudo mv NVIDIA-Linux-x86-173.14.05-pkg1.run /usr/src
sudo ln -s /usr/src/NVIDIA-Linux-x86-173.14.05-pkg1.run /usr/src/nvidia-driver

 

then the script called update-nvidia

 

#!/bin/bash
#

# Set this to the exact path of the nvidia driver you plan to use
# It is recommended to use a symlink here so that this script doesn't
# have to be modified when you change driver versions.
DRIVER=/usr/src/nvidia-driver


# Build new driver if it doesn't exist
if [ -e /lib/modules/$1/kernel/drivers/video/nvidia.ko ] ; then
   echo "NVIDIA driver already exists for this kernel." >&2
else
   echo "Building NVIDIA driver for kernel $1" >&2
   sh $DRIVER -K -k $1 -s -n 2>1 > /dev/null

   if [ -e /lib/modules/$1/kernel/drivers/video/nvidia.ko ] ; then
       echo "   SUCCESS: Driver installed for kernel $1" >&2
   else
       echo "   FAILURE: See /var/log/nvidia-installer.log" >&2
   fi
fi

exit 0

 

Then to make it run on kernel update:

 

sudo mkdir -p /etc/kernel/postinst.d
sudo install update-nvidia /etc/kernel/postinst.d

 

EDIT: I misunderstood how the script works.Its fine when run by DPKG.

 

The original is here HOWTO: Automatically update manually installed NVidia drivers after kernel updates - Ubuntu Forums

Edited by llawwehttam
Posted (edited)

I modified it to be run by the user if DPKG fails to run it during the update.

 

My version is

 

#!/bin/bash
#

# Set this to the exact path of the nvidia driver you plan to use
# It is recommended to use a symlink here so that this script doesn't
# have to be modified when you change driver versions.
DRIVER=/usr/src/nvidia-driver
KERNEL=`uname -r`

# Build new driver if it doesn't exist
if [ -e /lib/modules/$KERNEL/kernel/drivers/video/nvidia.ko ] ; then
   echo "NVIDIA driver already exists for this kernel." >&2
else
   echo "Building NVIDIA driver for kernel $KERNEL" >&2
   sh $DRIVER -K -k $KERNEL -s -n 2>1 > /dev/null

   if [ -e /lib/modules/$KERNEL/kernel/drivers/video/nvidia.ko ] ; then
       echo "   SUCCESS: Driver installed for kernel $KERNEL" >&2
   else
       echo "   FAILURE: See /var/log/nvidia-installer.log" >&2
   fi
fi

exit 0

 

It appears to be working.

Edited by llawwehttam

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...