Ubuntu更新内核时自动编译官方版Nvidia驱动模块
目前Ubuntu 8.10中提供的最新Nvidia显卡驱动依然是180.11,除了不支持一些新的显卡,缺乏一些功能,在有些平台上也不稳定,容易Crash。很多人都用上Nvidia官网版的驱程,可是每当系统更新内核的时候,不得不回到console重新安装一次Nvidia,虽然不是很复杂,但长久如此,也挺麻烦的。
UbuntuForums上面一个Howto介绍了解决方法,下面简述之:
* 本方法不适合使用EnvyNG安装的驱动。
* 确保你全手动安装过Nvidia驱动并确定你所用的版本正常工作。
1. 把NV的驱动安装文件复制到/usr/src,同时建立一链接。
sudo mv NVIDIA-Linux-x86-180.37-pkg1.run /usr/src
sudo ln -s /usr/src/NVIDIA-Linux-x86-180.37-pkg1.run /usr/src/nvidia-driver
我安装的是180.37版本,注意不同版本的文件名不同。链接的作用是以后如果换一个新版的驱动进来,修改该链接即可,不用修改下面的脚本。
2. 保存下面的代码为文件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
3. 把该脚本复制到/etc/kernel/postinst.d
sudo mkdir -p /etc/kernel/postinst.d
sudo install update-nvidia /etc/kernel/postinst.d
install命令作用跟cp差不多,只是自动修改文件的权限为rwxr-xr-x
4. OK,完成了。如果想测试一下是否已经成功,试试装个旧内核
sudo apt-get install linux-image-2.6.27-10-generic
稍候应该会看到最后会有一下停顿,然后看到SUCCESS: Driver installed for kernel ...
再把这个包puege掉即可:
sudo apt-get purge linux-image-2.6.27-10-generic
- 最新评论