zoukankan      html  css  js  c++  java
  • ubuntu12.04+cuda6.0+opencv2.4.9

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

    好了,通过bumblebee安装Nvidia卡驱动的时候出了很多问题,这里把所有的问题一并写出,一开始以为装个驱动直接ubuntu里面有驱动激活,直接安装就可以了,然后显示的驱动没有激活,又将驱动给卸载了。想想到官网上看看下载是不是好点,这才知道,Nvidia显卡的驱动是闭源的,ubuntu下安装的是兼容驱动,不过按官方说明安装之后,驱动还是没有激活,于是查资料。

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

     
    可是出问题了,装好了之后,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*

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

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

    安装cuda6.0可以参考http://wenku.baidu.com/link?url=1AhL95RbS2U4UVDqvs6K1JHxgxu_rnOvqk1YN4L1N7FfUNoN_MWB06nHKqoop8MKbaZ3gIBO4Q1RSkGQpf7maVE06me7BsbJL8757B7dxmm

    安装完成之后,对/etc/bumblebee/bumblebee.conf做了配置

    找到一行

    Driver=

    把这一行改成

    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进行测试。
     
    主要说一下几个问题,1、电脑重启之后,显卡N卡默认是关闭的,运行测试程序通过optirun可以打开显卡,关闭程序则关闭显卡。不过我自己写了cuda程序或者运行sample下的demo,编译跟运行都是通过optirun进行控制,但是程序可以运行,运行完之后,显卡默认打开,无法关闭。
     
    2、安装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就差不多可以用了。上述两个问题目前存在的,等解决了再补充。
     
  • 相关阅读:
    检测http方法是否开启put方法
    md5爆破工具
    admin密码对应的MD5值
    http账户密码的截取
    CTreeCtrl和CListCtrl失去焦点时高亮选中项
    向OSG视图Viewer发送消息
    在ASP.NET MVC中使用jQuery的Load方法加载静态页面的一个注意点
    jQuery把所有被选中的checkbox的某个属性值连接成字符串
    报错:Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
    在ASP.NET MVC下有关上传图片脏数据的解决方案
  • 原文地址:https://www.cnblogs.com/fengbing/p/3721862.html
Copyright © 2011-2022 走看看