ubuntu12.04下配置opencv2.4.9,nvida显卡驱动,matlab2015a,caffe

时间:2023-01-09 17:20:14

重装ubuntu12.04之后,分辨率太差,修改分辨率需要进入控制台

一:但我们先装opencv2.4.9   

http://my.oschina.net/u/1757926/blog/293976 
应该没什么问题,如果出现下面的问题,可能是因为先装了cuda,造成冲突,所以我重装系统,先装opencv

问题:安装opencv2.4.9     
http://blog.sina.com.cn/s/blog_3e4774e30101jpfd.html 按照这篇配置make时报错
报错:make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/./cuda_compile_generated_matrix_operations.cu.o] 错误 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] 错误 2
make: *** [all] 错误 2

cmake -D CMAKE_BUILD_TYPE=bulid -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
再make

进入控制台出现的问题

问题:ctrl+alt+f1    黑屏

解决:sudo vi /etc/default/grub

找到这行    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash“

修改为  GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia.modeset=0 nomodeset vga=791"

然后      sudo update-grub

              sudo reboot

搞定


二:安装nvida显卡驱动

http://zhidao.baidu.com/question/456585093001754485    大致按照这个配置

不过我只做了这几步

Ctrl + Alt +F1到第一控制台.输入用户密码
sudo stop lightdm
sudo sh NVIDIA.run
这行运行完,会出现很多行让你读的东西,不管他,按enter一直到最下面,然后在命令行敲上accept,确定,然后yes,yes,然后问你安装到哪,会推荐你装装哪,你照着敲一遍,然后yes,yes,又推荐一次,照着敲一遍,完成。

sudo start lightdm
ctrl+alt+f7

配置环境变量

为了所有人的都可以使用,修改环境变量时修改/etc/profile文件,vim /etc/profile并在最后加上

export PATH=/usr/local/cuda-5.5/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib:/usr/local/cuda-5.5/lib64:$LD_LIBRARY_PATH
不重启想让PATH生效的话就使用source /etc/profile
 

测试

进入安装cuda samples的文件夹~/NVIDIA_CUDA-5.5_Samples(因人而异)并执行make,结果在~/NVIDIA_CUDA-5.5_Samples/bin/x86_64/linux/release。切换到该目录,并执行./deviceQuery,

如果和下面一样,就安装成功了

./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected
1 CUDA Capable device(s)

Device
0: "GeForce GTX 670"
CUDA Driver Version
/ Runtime Version 6.5 / 6.5
CUDA Capability Major
/Minor version number: 3.0
Total amount of global memory:
4095 MBytes (4294246400 bytes)
(
7) Multiprocessors, (192) CUDA Cores/MP: 1344 CUDA Cores
GPU Clock rate:
1098 MHz (1.10 GHz)
Memory Clock rate:
3105 Mhz
Memory Bus Width:
256-bit
L2 Cache Size:
524288 bytes
Maximum Texture Dimension Size (x,y,z) 1D
=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D
=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D
=(16384, 16384), 2048 layers
Total amount of constant memory:
65536 bytes
Total amount of shared memory per block:
49152 bytes
Total number of registers available per block:
65536
Warp size:
32
Maximum number of threads per multiprocessor:
2048
Maximum number of threads per block:
1024
Max dimension size of a thread block (x,y,z): (
1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (
2147483647, 65535, 65535)
Maximum memory pitch:
2147483647 bytes
Texture alignment:
512 bytes
Concurrent copy and kernel execution: Yes with
1 copy engine(s)
Run
time limit on kernels: Yes
Integrated GPU sharing Host Memory: No
Support host page
-locked memory mapping: Yes
Alignment requirement
for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID
/ PCI location ID: 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver
= CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = GeForce GTX 670
Result
= PASS



三:配置matlab2015a

注意这里是2015a版本,caffe不是支持所有版本的

自己百度一下怎么安装matlab,配合下面的步骤安装

1、替换R2015a-glnxa64.iso文件中的install.jar
1.1 挂载R2015a-glnxa64.iso镜像文件,将镜像内所有文件拷贝到目录<dir>
1.2 使用附件提供的install.jar替换<dir>/java/jar/目录下的同名文件
 
2、安装matlab 2015a linux
2.1 以root用户登录系统或者切换到root账户


2.2 进入<dir>目录   
cd <dir>
2.3 执行安装
./install

如果不成功,给matlab加权限,如下

root@zc-MS-7918:/home/zc# chmod -R 777 matlab/
root@zc-MS-7918:/home/zc# sudo sh matlab/install


2.4 "Use a File Instsllation Key"    
58691-35070-25550-28046-23042
2.5 安装完成之后替换文件
2.5.1 install.jar  
cp install.jar /usr/local/MATLAB/MATLAB_Production_Server/R2015a/java/jar
2.5.2 libmwservices.so
cp libmwservices.so /usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin/glnxa64/    
2.6 启动matlab并激活
cd /usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin/glnxa64/
./MATLAB
首次启动时需要激活,指定license文件为Standalone License.lic


四: 安装caffe

  首先安装一些apt-get无法安装的依赖

Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz
$cd glog-0.3.3
$ ./configure
$ make
$ sudo make install


这里需要安装另外两个依赖项:gflags、lmdb。不装之后编译会出问题。
参考:http://www.shwley.com/index.php/archives/52/

# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1       //直接把这一行复制到shell命令行中
make
sudo make install 


# lmdbgit        这个以前可以安装,后来安装不了,不安装应该没什么问题
git clone git://gitorious.org/mdb/mdb.git
cd mdb/libraries/liblmdb
make && make install

上面三个都安装完之后

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

   sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler           //跟上面一行有些重复,都执行一遍


安装pycaffe必须的一些依赖项:


五 :安装ATLAS

ATLAS是做线性代数运算的,还有俩可以选:一个是Intel 的 MKL,这个要收费,还有一个是OpenBLAS,这个比较麻烦;但是运行效率ATLAS < OpenBLAS < MKL

我就用ATLAS咯:

sudo apt-get install libatlas-base-dev

接着安装Caffe并测试
切换到Caffe的下载文件夹,然后执行:
$ cp Makefile.config.example Makefile.config
修改新生成的Makefile.config文件,修改“BLAS := mkl”(我这里装的就是ATLAS,所以不用改,使用默认配置就行)。
希望使用nVidia开发的cuDNN来加速Caffe模型运算的同学,在安装完cuDNN之后,确保Makefile.config文件中的USE_CUDNN := 1处于启用状态。幸运的是,新版的Caffe已经默认集成了cuDNN的库文件,不需要做额外的设置了。

PYTHON_LIB := /usr/lib      这行设置为你的路径

使用matlab的,下面这行要设置一下(这是我的路径)

MATLAB_DIR := /usr/local/MATLAB/MATLAB_Production_Server/R2015a   

接着就可以make all -j8  

-j8应该是处理批次,不加也行,就是慢了点,  如果报错啦。可以尝试不加,试试看还报不报错

然后 make test -j8

make runtest   

make runtest  时出现这个  "Check failed: error == cudaSuccess (8 vs. 0)  invalid device function".

这个应该跟你的显卡有关  我的显卡cuda计算能力为5.2,于是再Makefile,config中添加两行"-gencode arch=compute_52,code=sm_52 \
                                                                                                                                        -gencode arch=compute_52,code=compute_52",solved

可以参考一下这个博客     http://blog.csdn.net/cwt19902010/article/details/49201333

然后编译matlab接口           make matcaffe     如果出错了。先make clean ,再重新make all

编译python接口                  make pycaffe

这里应该会提醒gcc的版本问题,因为matlab R2015a需要的gcc版本是4.7.x,而我的系统默认支持4.8.4.不过我没打算用gcc,可以参考下面都博客把ggc降级

http://ouxinyu.github.io/Blogs/20151108001.html