资讯专栏INFORMATION COLUMN

Elam的caffe笔记之配置篇(二):CentOS6.5编译安装NVIDIA驱动

chunquedong / 3381人阅读

摘要:禁用自带的驱动驱动会和驱动冲突,如果驱动还是启用状态的话,在安装驱动的过程中会自动报错。改变系统运行级别驱动不能在桌面启动时安装,因此要进入文本模式下启动安装程序才能顺利安装。结果在安装驱动的过程中出现了没有安装,大概是这段话。


配置要求:

系统:centos6.5
目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架


编译安装过程

显卡型号:NVS 510

1.显卡驱动安装程序下载

在root下输入

lspci |grep VGA

可以看自己的显卡型号
确定自己显卡型号之后登陆NVIDIA官网下载驱动
http://www.nvidia.cn/Download...
根据自己的显卡型号下载对应的驱动程序

2.配置编译环境

安装NVIDIA驱动的编译环境需要:

gcc kernel-devel kernel-headers

这一步看似简单,实际上会出现很多问题。
首先是gcc,如果你没有在手动编译安装更高版本的gcc之后把系统自带gcc卸载了,那么没事,但是如果你卸载了系统自带的gcc那么请翻到最后查看解决方法。
第二你如果使用

kernel-devel -version

或者

kernel-headers -version

是不能查询到你是否安装过这两个依赖包的。如果你直接利用yum install去安装kernel-devel,kernel-headers两个依赖包,那么你可能会下载到比你内核高一个版本的kernel-devel同时很大概率下载不到kernel-headers。
正确的做法是分别在终端输入:

yum info kernel-devel

yum info kernel-headers 

如果在Installed Packages 中已经有你当前内核版本的对应的包,那么就不需要在下载这两个依赖项了,否则需要重新安装系统。

3.禁用centos6.5自带的nouveau驱动

nouveau驱动会和NVIDIA驱动冲突,如果nouveau驱动还是启用状态的话,在安装NVIDIA驱动的过程中会自动报错。
在终端输入:

vi /etc/modprobe.d/blacklist.conf

blacklist viafb下一行加上blacklist nouveau
关于nouveau.modeset=0这句命令,有一种说法是直接加在blacklist nouveau下行,还有一种说法是加入到启动项里:gedit /boot/grub/grub.conf加到quiet之后,亲测第二种可能会使系统启动时崩溃,而第一种方法在centos7版本中配置时使用过,是否必要不明,本人直接无视了这句话,还是能够正常启动。

4.备份和重建系统镜像Centos

安装NVIDIA驱动特有的步骤

备份系统镜像

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

创建新的系统镜像

dracut -v /boot/initramfs-$(uname -r).img $(uname -r)

其中$(uname -r)指的是你自己系统对应的内核版本,可在root下输入uname -r试试。

5.改变系统运行级别

NVIDIA驱动不能在X桌面启动时安装,因此要进入文本模式下启动安装程序才能顺利安装。

vi /etc/inittab

把最后一行id:5改为id:3,这一行代表的是系统启动时默认的运行级别,5代表的是图形界面,3代表的是文本模式。保存退出

5.重启
reboot
6.安装

在终端root下

chmod +x NVIDIA-Linux-x86_64-384.69.run
sh ./NVIDIA-Linux-x86_64-384.69.run

开始安装,根据自己实际情况选择一些额外项是否安装
安装完成后重新修改系统的运行级别把id:3改为id:5,保存退出
再重启,安装完毕

遇到的问题:

在安装NVIDIA驱动程序之前,我先手动编译安装了4.8.2的gcc并把系统自带的gcc4.4.7版本卸载了。结果在安装驱动的过程中出现了没有安装development tool cc,if you are sure you have installed gcc , please check cc is in your PATH大概是这段话。当时很纳闷我明明装了新版本的gcc啊,找来找去找不到原因。索性先用yum 先把原来4.4.7版本的gcc装回去了,重新运行sh ./NVIDIA-Linux-x86_64-384.69.run,安装成功!
但是,这并不是最最正确的做法。在安装成功NVIDIA驱动程序后,我又想了这个问题,必须解决这个问题,不然日后肯定还会出现找不到gcc的问题。
首先 我先利用全局搜索找出所有名为gcc的文件夹

find / -name gcc

显示如下

/usr/local/libexec/gcc
/usr/local/bin/gcc
/usr/local/lib/gcc
/usr/libexec/gcc
/usr/bin/gcc
/usr/lib/gcc

还有几个home文件夹下的不是问题症结所在不予显示
有两个bin下的gcc说明至少有两个版本的gcc
输入

/usr/bin/gcc --version
gcc4.4.7 (GCC) 4.4.7 20120313……………………………………
/usr/local/bin/gcc –version
gcc (GCC) 4.8.2………………………………………………..

在NVIDIA驱动安装过程中调用的是/usr/bin/gcc
/usr/bin/gcc是系统自带的gcc所在的文件夹
因此以后类似情况仍然会会调用这个文件夹下的gcc
所以,我想了一个办法
首先将这个文件夹的下的gcc版本移动走,然后在建立4.8.2版本的gcc和这个文件夹的软链接,这样下次调用的时候就会直接去找4.8.2版本的gcc了

mv /usr/bin/gcc /usr/bin/gcc-4.4.7
ln -s /usr/local/bin/gcc /usr/bin/gcc

另外,g++, cc, c++这几个命令也要改

mv /usr/bin/g++ /usr/bin/g++-4.4.7
ln -s /usr/local/bin/g++ /usr/bin/g++

mv /usr/bin/cc /usr/bin/cc-4.4.7
ln -s /usr/local/bin/gcc /usr/bin/cc
(为什么用gcc指向cc可以参考博客[cc gcc g++三者区别][2])
mv /usr/bin/c++ /usr/bin/c++-4.4.7
ln -s /usr/local/bin/c++ /usr/bin/c++

相应的如果你在更新gcc版本后把以前的gcc卸载了
只要建立这几项的软链接足矣,并不需要再使用mv命令

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40836.html

相关文章

  • Elamcaffe笔记配置(三):Centos 6.5下装CUDA8.0 和cudnnv5.1

    摘要:配置要求系统目标基于接口的框架写在前面本文是在环境下配置和的接口的过程中整理所得,本文是完全基于官方的文档完成的的配置。改变系统运行级别文本模式下启动安装程序才能顺利安装。 配置要求: 系统:centos6.5 目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架 写在前面 本文是在CentOS6.5环境下配置caffe和caff...

    Coding01 评论0 收藏0
  • Elamcaffe笔记配置(一):CentOS6.5编译安装gcc4.8.2

    配置要求: 系统:centos6.5 目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架 gcc是linux编译安装必备的编译器 CentOS6.5自带的gcc版本是4.4.7,并不支持C++11查询后可得需要版本高于4.8.1的gcc才能支持C++11输入 yum info gcc 发现可升级的gcc版本低于4.8.1,只能手动编译安装4....

    wing324 评论0 收藏0
  • Elamcaffe笔记配置(四):Centos6.5配置anaconda3

    摘要:配置要求系统目标基于接口的框架放弃了兼容性最好的版本,准备配置的版本。 配置要求: 系统:centos6.5 目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架 放弃了兼容性最好的2.7版本,准备配置3.6的python版本。如果要单独配置python实际上步骤还是很长的,但是anaconda的出现,让python的配置简单了不...

    JasonZhang 评论0 收藏0

发表评论

0条评论

chunquedong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<