ubuntu12.04+cuda6.0+opencv2.4.9

更新了cuda以后,opencv的gpu模块又要从新编译了,这个地方有一个疑问,我对cuda6.0装了两次,第一次装好以后,没有配一个bumblebee,重装了cuda6.0以后,发现原来编译的opencv2.4.9又要从新编译,这边有理解一下为何同一个cuda的版本,从新安装了一下,opencv下的gpu模块要从新编译,是否是由于nvcc是实时编译的缘由。php

 

好了,经过bumblebee安装Nvidia卡驱动的时候出了不少问题,这里把全部的问题一并写出,一开始觉得装个驱动直接ubuntu里面有驱动激活,直接安装就能够了,而后显示的驱动没有激活,又将驱动给卸载了。想一想到官网上看看下载是否是好点,这才知道,Nvidia显卡的驱动是闭源的,ubuntu下安装的是兼容驱动,不过按官方说明安装以后,驱动仍是没有激活,因而查资料。git

发现有一个更好的管理方式,经过bumblebee安装以后能够对集显和独显自由切换,能够先关掉nvidia的显卡、具体参考:github

 
但是出问题了,装好了以后,nvidia的显卡没有关掉,因而卸载原来全部的显卡驱动。额,出问题了
开机的时候开不了机了。直接黑屏在这边,进不来恢复模式,因而就只能再一次的重装。
至于以前升级过了,不少的补丁,在/var/cache/apt下面,应该没有记错,把这个拷贝出来,重装。
装好了以后安装上面参考的安装,安装好了以后出现分配率变成了600*480的,那种最小的那种,额,因而查找资料,发现
删掉xorg.conf,sudo rm /etc/X11/xorg.conf
 
删掉以后能够经过Ctrl+Alt+F1进入终端环境下 经过将lightdm服务重启就行了。
sudo /etc/init.d/lightdm restart
 
这样是进来了,不过有问题的是显卡其实尚未装好,虽然已经关了,而后又进行重装显卡驱动仍是不行。
依次出现过不少问题
已经google 查找。
 
此次装了以后发现一个更好的文章:
根据这个能够更容易的对cuda进行安装。
 
 
 
最后说一下个人作法,已经最后存在的问题
 
如今nvidia驱动
 

sudo apt-get remove --purge nvidia*ubuntu

这样默认安装的nvidia-304已经nvidia-current就被删除了,位置在/usr/lib下。windows

而后我直接从官网下载cuda6.0 https://developer.nvidia.com/cuda-downloadsoop

安装cuda6.0能够参考http://wenku.baidu.com/link?url=1AhL95RbS2U4UVDqvs6K1JHxgxu_rnOvqk1YN4L1N7FfUNoN_MWB06nHKqoop8MKbaZ3gIBO4Q1RSkGQpf7maVE06me7BsbJL8757B7dxmm测试

 

安装完成以后,对/etc/bumblebee/bumblebee.conf作了配置google

找到一行url

Driver=spa

把这一行改为

Driver=nvidia

默认是能够找到nvidia驱动的,加上了好像没有效果,不过看其它参考都加上了,我这边也加上了。

第二块修改以下:

[driver-nvidia]

#Module name to load, defaults to Driver if empty or unset

KernelDriver=nvidia

PMMethod=auto

#colon-separated path to the nvidia libraries

LibraryPath=/usr/lib:/usr/lib32

#comma-separated path of the directory containing nvidia_drv.so andthe

#default Xorg modules path

XorgModulePath=/usr/lib/xorg,/usr/lib/xorg/modules

XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

装完cuda6.0以后,默认驱动装在了/usr/lib/以及/usr/lib/xorg下,没有新建nvidia-current之类的文件夹,这里我将nvidia-current删除
 
修改以后,cuda的程序是能够执行了。具体能够到sample下的demo进行测试。
 
主要说一下几个问题,一、电脑重启以后,显卡N卡默认是关闭的,运行测试程序经过optirun能够打开显卡,关闭程序则关闭显卡。不过我本身写了cuda程序或者运行sample下的demo,编译跟运行都是经过optirun进行控制,可是程序能够运行,运行完以后,显卡默认打开,没法关闭。
 
二、安装opencv,对于opencv安装,在经过cmake进行处理的时候,经过相似以下命令开启相关模块,windows下opencv编译好的不支持cuda,本身用要从新编译,不清楚在ubuntu下是怎么个状况,不过我经过以下命令开启相关模块以后,gpu部门默认开启。
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. 
 
这样以后make 以及 sudo make install
不过我奇怪的是,我重装了cuda6.0以后,opencv编译的时候gpu模块要从新编译,是否是由于nvcc编译是经过即时编译器编译的,这样对于cuda就不能更新甚至不能重装,更新从新编译这个能够理解,重装以后也要从新编译这个还不清楚真正的缘由是啥。
 
目前为止,ubuntu12.04+cuda6.0+opencv2.4.9就差很少能够用了。上述两个问题目前存在的,等解决了再补充。
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息