Centos7升级NVIDIA驱动的问题

折月煮酒 提交于 2020-01-12 05:11:25

旧版的驱动是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,然后重新安装驱动。

总结

仔细查看安装日志的报错信息很重要!!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!