系统:centos6.5
目标:基于CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6接口的caffe框架python
显卡型号:NVS 510c++
在root下输入centos
lspci |grep VGA
能够看本身的显卡型号
肯定本身显卡型号以后登录NVIDIA官网下载驱动
http://www.nvidia.cn/Download...
根据本身的显卡型号下载对应的驱动程序bash
安装NVIDIA驱动的编译环境须要:框架
gcc kernel-devel kernel-headers
这一步看似简单,实际上会出现不少问题。
首先是gcc,若是你没有在手动编译安装更高版本的gcc以后把系统自带gcc卸载了,那么没事,可是若是你卸载了系统自带的gcc那么请翻到最后查看解决方法。
第二你若是使用ui
kernel-devel -version
或者centos7
kernel-headers -version
是不能查询到你是否安装过这两个依赖包的。若是你直接利用yum install去安装kernel-devel,kernel-headers两个依赖包,那么你可能会下载到比你内核高一个版本的kernel-devel同时很大几率下载不到kernel-headers。
正确的作法是分别在终端输入:spa
yum info kernel-devel
和code
yum info kernel-headers
若是在Installed Packages 中已经有你当前内核版本的对应的包,那么就不须要在下载这两个依赖项了,不然须要从新安装系统。blog
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版本中配置时使用过,是否必要不明,本人直接无视了这句话,仍是可以正常启动。
安装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
试试。
NVIDIA驱动不能在X桌面启动时安装,所以要进入文本模式下启动安装程序才能顺利安装。
vi /etc/inittab
把最后一行id:5
改成id:3
,这一行表明的是系统启动时默认的运行级别,5表明的是图形界面,3表明的是文本模式。保存退出
reboot
在终端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命令