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就差很少能夠用了。上述兩個問題目前存在的,等解決了再補充。
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息