相信使用過Apollo的同學(xué)都知道,如果使用傳統(tǒng)推薦的方法,安裝NVIDIA顯卡驅(qū)動,結(jié)果一般會令人沮喪。尤其對于ThinkPad系列筆記本電腦,幾乎不可能成功。社區(qū)榮譽布道師—賀博士的本篇文章為我們闡述了為Apollo項目安裝NVIDIA顯卡驅(qū)動的有效方法。
阿波君希望這篇文給感興趣的同學(xué)帶來更多幫助。
關(guān)于《Apollo 3.5的構(gòu)建方法》,可參見賀博士的一篇博客。
關(guān)于《Apollo 3.5各功能模塊的啟動過程解析》,《Apollo項目代碼遷移到Cyber RT框架的方法》可參見其另兩篇博客。
到CUDA官網(wǎng)下載所需版本的CUDA安裝包,具體如下圖所示:
Ubuntu 16.04系統(tǒng)使用第三方驅(qū)動程序nouveau支持NVIDIA顯卡,為了安裝NVIDIA公司的原版驅(qū)動程序,需要將其禁用。
具體方法為:使用快捷鍵Ctrl+Alt+T打開一個終端。
使用vi編輯器在/etc/modprobe.d目錄中創(chuàng)建文件:
blacklist-nvidia.conf
(文件名隨便起,只要后綴為.conf并且自己覺得有意義就行):
1sudovi/etc/modprobe.d/blacklist-nvidia.conf
文件內(nèi)容如下:
1blacklistnouveau2optionsnouveaumodeset=0
然后使用如下命令更新內(nèi)核信息:
1sudoupdate-initramfs-u
注意:更改信息后一定要記得重啟電腦!
整個操作如下圖所示:
重啟電腦后,可能無法進入圖形化登錄界面,癥狀類似如下界面,甚至可能完全黑屏:
解決方法:
按快捷鍵Ctrl+Alt+F1至Ctrl+Alt+F6
選擇六個文本終端之間的任意一個,登錄文本界面,然后執(zhí)行第三步。
在命令終端中進入步驟一下載CUDA安裝包的目錄,使用如下命令安裝CUDA程序。因為CUDA安裝包會檢測更新NVIDIA顯卡驅(qū)動程序,于是我們可以利用這個特性來安裝顯卡驅(qū)動。
1sudodpkg-icuda-repo-ubuntu1604-9-2-local_9.2.148-1_amd64.deb2sudoapt-keyadd/var/cuda-repo-9-2-local/7fa2af80.pub3sudoapt-getupdate4sudoapt-getinstallcuda
為了順利應(yīng)用新安裝的NVIDIA顯卡驅(qū)動,
需要重啟電腦并禁用安全啟動(其實也可以不禁用安全啟動,只不過簽名比較麻煩)。
禁用方法如下圖所示,
將Secure Boot禁用:
執(zhí)行完步驟四,重新進入Ubuntu系統(tǒng)后,在命令終端中使用如下方法驗證驅(qū)動已安裝成功:
1#方法12nvidia-smi3#方法24nvidia-settings
如下圖所示:
1.6.1 安裝顯卡驅(qū)動程序后無法進入圖形化界面
顯卡驅(qū)動程序安裝完畢重啟電腦后,可能無法進入圖形化登錄界面,癥狀類似如下界面,甚至可能完全黑屏:
解決方法:
按快捷鍵Ctrl+Alt+F1至Ctrl+Alt+F6
選擇六個文本終端之間的任意一個,登錄文本界面,然后使用命令:
1sudonvidia-xconfig
重新生成NVIDIA顯卡的配置文件信息,配置文件路徑為:
/etc/X11/xorg.conf,文件內(nèi)容如下。
注意:這個默認(rèn)生成的文件內(nèi)容是錯誤的,如果直接使用,一定不能正常加載NVIDIA顯卡驅(qū)動程序!
1#nvidia-xconfig:Xconfigurationfilegeneratedbynvidia-xconfig 2#nvidia-xconfig:version396.37(buildmeister@swio-display-x86-rhel47-05)TueJun1214:50:28PDT2018 3 4Section"ServerLayout" 5Identifier"layout" 6Screen0"nvidia"00 7Inactive"intel" 8InputDevice"Keyboard0""CoreKeyboard" 9InputDevice"Mouse0""CorePointer"10EndSection1112Section"InputDevice"13#generatedfromdefault14Identifier"Keyboard0"15Driver"keyboard"16EndSection1718Section"InputDevice"19#generatedfromdefault20Identifier"Mouse0"21Driver"mouse"22Option"Protocol""auto"23Option"Device""/dev/psaux"24Option"Emulate3Buttons""no"25Option"ZAxisMapping""45"26EndSection2728Section"Monitor"29Identifier"Monitor0"30VendorName"Unknown"31ModelName"Unknown"32HorizSync28.0-33.033VertRefresh43.0-72.034Option"DPMS"35EndSection3637Section"Device"38Identifier"intel"39Driver"modesetting"40Option"AccelMethod""None"41BusID"PCI:0@0:2:0"42EndSection4344Section"Device"45Identifier"nvidia"46Driver"nvidia"47BusID"PCI:6@0:0:0"48EndSection4950Section"Screen"51Identifier"intel"52Device"intel"53Monitor"Monitor0"54EndSection5556Section"Screen"57Identifier"nvidia"58Device"nvidia"59Monitor"Monitor0"60DefaultDepth2461Option"AllowEmptyInitialConfiguration""on"62Option"IgnoreDisplayDevices""CRT"63Option"ConstrainCursor""off"64SubSection"Display"65Depth2466Modes"nvidia-auto-select"67EndSubSection68EndSection
正確的配置文件內(nèi)容如下所示。
大家一定要在默認(rèn)文件的基礎(chǔ)上,將原文件內(nèi)容修改為如下正確內(nèi)容:
1Section"ServerLayout" 2Identifier"layout" 3Screen0"nvidia" 4Inactive"intel" 5EndSection 6 7Section"Device" 8Identifier"intel" 9Driver"modesetting"10BusID"PCI:0@0:2:0"11Option"AccelMethod""None"12EndSection1314Section"Screen"15Identifier"intel"16Device"intel"17EndSection1819Section"Device"20Identifier"nvidia"21Driver"nvidia"22BusID"PCI:6@0:0:0"23Option"ConstrainCursor""off"24EndSection2526Section"Screen"27Identifier"nvidia"28Device"nvidia"29Option"AllowEmptyInitialConfiguration""on"30Option"IgnoreDisplayDevices""CRT"31EndSection
如果重啟電腦后還是無法進入圖形化登錄界面,則進入文本終端后使用如下命令:
1sudorm/etc/X11/xorg.conf2sudotouch/etc/X11/xorg.conf
重新生成一個空白的X11顯示配置文件,之后再重啟電腦。
這樣就可以順利使用系統(tǒng)自帶的集成顯卡驅(qū)動進行顯示。
接下來,自然就是重新安裝CUDA,以便正確安裝NVIDIA顯卡驅(qū)動程序了。
1.6.2 突然斷電重啟電腦后NVIDIA顯卡驅(qū)動程序損壞
開發(fā)的過程中開發(fā)者們還會碰到很多意外情況,再舉一個小例子。
有一次突然斷電,我重啟電腦后,運行tensorflow-gpu程序時,
居然報錯說不是NVIDIA顯卡驅(qū)動。
我一查居然是NVIDIA顯卡驅(qū)動程序損壞,
操作系統(tǒng)重新啟用集成顯卡驅(qū)動nouveau,
甚至還把步驟二中創(chuàng)建的黑名單文件
/etc/modprobe.d/blacklist-nvidia.conf
都給刪除了,實在是耽誤了不少時間。怎么解決呢?
解決辦法:
重新執(zhí)行步驟二至步驟五,再次安裝NVIDIA顯卡驅(qū)動。
Docker內(nèi)部安裝NVIDIA顯卡驅(qū)動的步驟比較簡單,下面闡述之。
在命令終端內(nèi),使用如下命令安裝Docker內(nèi)部的NVIDIA顯卡驅(qū)動:
1#啟動并進入Docker 2bashdocker/scripts/dev_start.sh-C 3bashdocker/scripts/dev_into.sh 4#更新安裝源 5sudoaptupdate 6#查看并安裝NVIDIA顯卡驅(qū)動 7#此處的版本號396要與Docker外部一致! 8aptsearchnvidia-396 9sudoaptinstallnvidia-39610#查看顯卡驅(qū)動是否安裝成功11nvidia-smi
首先確保當(dāng)前需要保存的Docker image處于活動狀態(tài)(未被關(guān)閉),使用如下命令保存:
1#查看當(dāng)前活動的Dockerimage2dockerps3#保存本地Dockerimage4#-p表示保存時暫停當(dāng)前Dockerimage的運行5#a45572938fcd表示Dockercontainerid,它與你的機器相關(guān),注意更換為你的id6#registry.docker-cn.com/apolloauto/apollo表示repository(或稱image),不需改變7#davidhopper_dev表示tag,可以自己隨意命名8dockercommit-pa45572938fcdregistry.docker-cn.com/apolloauto/apollo:davidhopper_dev
使用如下命令加載步驟一中保存的本地Docker image:
1#啟動修改后的Docker2#-C表示使用國內(nèi)服務(wù)器3#-l-tdavidhopper_dev表示基于本地標(biāo)簽為davidhopper_dev的Dockerimage拉取4bashdocker/scripts/dev_start.sh-C-l-tdavidhopper_dev5#進入Docker6bashdocker/scripts/dev_into.sh7#查看顯卡驅(qū)動是否已正確保存8nvidia-smi
2.4.1 不小心使用
docker/setup_host/install_nvidia_docker.sh
腳本安裝nvidia_docker,導(dǎo)致無法進入Docker
之前我在Docker內(nèi)部安裝NVIDIA顯卡驅(qū)動前,
曾經(jīng)嘗試過在Docker外部使用如下命令安裝nvidia_docker:
1bashdocker/setup_host/install_nvidia_docker.sh
安裝完畢后,重啟Docker時發(fā)現(xiàn)出問題了,
Docker進不去了,錯誤截圖如下:
解決方法:
在Docker外部使用如下命令缷載nvidia_docker:
1sudodpkg-rnvidia-docker
自Apollo平臺開放已來,我們收到了大量開發(fā)者的咨詢和反饋,越來越多開發(fā)者基于Apollo擦出了更多的火花,并愿意將自己的成果貢獻出來,這充分體現(xiàn)了Apollo『貢獻越多,獲得越多』的開源精神。為此我們開設(shè)了『開發(fā)者說』板塊,希望開發(fā)者們能夠踴躍投稿,更好地為廣大自動駕駛開發(fā)者營造一個共享交流的平臺!
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4949瀏覽量
102830 -
顯卡驅(qū)動
+關(guān)注
關(guān)注
0文章
28瀏覽量
10540
原文標(biāo)題:開發(fā)者說 | 為Apollo項目安裝NVIDIA顯卡驅(qū)動的有效方法
文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論