旧版的驱动是330.xx,现在想要升级到440.33.01
在这里搜索下载对应驱动,搜索完毕后有个产品支持列表可以查看该驱动支持哪些GPU
如果是首次安装可以直接下载CUDA的安装包,CUDA安装包有安装驱动的选项。
环境
内核:3.10.0-514.26.1.el7.x86_64
gcc:4.8.5
卸载旧版驱动
使用 chmod a+x 给下载的.run文件添加执行权限
然后使用 --uninstall参数进行旧版驱动卸载
chmod a+x NVIDIA-Linux-x86_64-440.33.01.run
./NVIDIA-Linux-x86_64-440.33.01.run --uninstall
安装驱动
因为原来是有驱动的,就不需要按首次安装NVIDIA驱动那样操作了。直接执行安装命令
./NVIDIA-Linux-x86_64-440.33.01.run
没有报错的话很快就安装完成
问题
提示:An error occurred while performing the step: "Building kernel modules"
直接拿着这个报错信息去找解决方法基本没有找到,还是先认真查看驱动安装日志再去找解决方法比较靠谱。在日志中发现下面一行:
Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
就是编译器不支持-fstack-protector-strong这个编译选项,查找发现这个编译选项在gcc 4.9之后版本才加入的,我这里gcc是4.8.5,自然就不支持这个选项了。
使用yum升级gcc
如果这个时候选择了devtoolset-4,也就是gcc5.x.x版本,问题就解决了。
NVIDIA驱动安装过程会提示 编译内核的gcc版本和编译驱动的gcc版本不一致,忽视就好了。
到这里我还没有结束,因为我选了devtoolset-6…也就是gcc6.x.x。依然是提示:Building kernel module 的时候出错。
查看日志,发现是头文件报错,这些问题百度和google都没有找到解决方案。
到这里就需要继续耐心往下翻了
没有找到compiler-gcc6.h这个头文件,我使用了devtoolset-6,自然就是compiler-gcc6.h了。查找这个目录都有什么gcc的头文件:
ls /usr/src/kernels/3.10.0-514.26.1.el7.x86_64/include/linux |grep compiler
compiler-gcc5.h!! 使用yum安装gcc5.x.x,也就是devtoolset-4,然后重新安装驱动。
总结
仔细查看安装日志的报错信息很重要!!
来源:CSDN
作者:wxzjfdcx
链接:https://blog.csdn.net/wxzjfdcx/article/details/103830939