相信使用過(guò)Apollo的同學(xué)都知道,如果使用傳統(tǒng)推薦的方法,安裝NVIDIA顯卡驅(qū)動(dòng),結(jié)果一般會(huì)令人沮喪。尤其對(duì)于ThinkPad系列筆記本電腦,幾乎不可能成功。社區(qū)榮譽(yù)布道師—賀博士的本篇文章為我們闡述了為Apollo項(xiàng)目安裝NVIDIA顯卡驅(qū)動(dòng)的有效方法。
阿波君希望這篇文給感興趣的同學(xué)帶來(lái)更多幫助。
關(guān)于《Apollo 3.5的構(gòu)建方法》,可參見賀博士的一篇博客。
關(guān)于《Apollo 3.5各功能模塊的啟動(dòng)過(guò)程解析》,《Apollo項(xiàng)目代碼遷移到Cyber RT框架的方法》可參見其另兩篇博客。
到CUDA官網(wǎng)下載所需版本的CUDA安裝包,具體如下圖所示:
Ubuntu 16.04系統(tǒng)使用第三方驅(qū)動(dòng)程序nouveau支持NVIDIA顯卡,為了安裝NVIDIA公司的原版驅(qū)動(dòng)程序,需要將其禁用。
具體方法為:使用快捷鍵Ctrl+Alt+T打開一個(gè)終端。
使用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
注意:更改信息后一定要記得重啟電腦!
整個(gè)操作如下圖所示:
重啟電腦后,可能無(wú)法進(jìn)入圖形化登錄界面,癥狀類似如下界面,甚至可能完全黑屏:
解決方法:
按快捷鍵Ctrl+Alt+F1至Ctrl+Alt+F6
選擇六個(gè)文本終端之間的任意一個(gè),登錄文本界面,然后執(zhí)行第三步。
在命令終端中進(jìn)入步驟一下載CUDA安裝包的目錄,使用如下命令安裝CUDA程序。因?yàn)镃UDA安裝包會(huì)檢測(cè)更新NVIDIA顯卡驅(qū)動(dòng)程序,于是我們可以利用這個(gè)特性來(lái)安裝顯卡驅(qū)動(dòng)。
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ū)動(dòng),
需要重啟電腦并禁用安全啟動(dòng)(其實(shí)也可以不禁用安全啟動(dòng),只不過(guò)簽名比較麻煩)。
禁用方法如下圖所示,
開機(jī)后按Enter再按F1鍵進(jìn)入BIOS設(shè)置,
將Secure Boot禁用:
執(zhí)行完步驟四,重新進(jìn)入U(xiǎn)buntu系統(tǒng)后,在命令終端中使用如下方法驗(yàn)證驅(qū)動(dòng)已安裝成功:
1#方法12nvidia-smi3#方法24nvidia-settings
如下圖所示:
1.6.1 安裝顯卡驅(qū)動(dòng)程序后無(wú)法進(jìn)入圖形化界面
顯卡驅(qū)動(dòng)程序安裝完畢重啟電腦后,可能無(wú)法進(jìn)入圖形化登錄界面,癥狀類似如下界面,甚至可能完全黑屏:
解決方法:
按快捷鍵Ctrl+Alt+F1至Ctrl+Alt+F6
選擇六個(gè)文本終端之間的任意一個(gè),登錄文本界面,然后使用命令:
1sudonvidia-xconfig
重新生成NVIDIA顯卡的配置文件信息,配置文件路徑為:
/etc/X11/xorg.conf,文件內(nèi)容如下。
注意:這個(gè)默認(rèn)生成的文件內(nèi)容是錯(cuò)誤的,如果直接使用,一定不能正常加載NVIDIA顯卡驅(qū)動(dòng)程序!
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
如果重啟電腦后還是無(wú)法進(jìn)入圖形化登錄界面,則進(jìn)入文本終端后使用如下命令:
1sudorm/etc/X11/xorg.conf2sudotouch/etc/X11/xorg.conf
重新生成一個(gè)空白的X11顯示配置文件,之后再重啟電腦。
這樣就可以順利使用系統(tǒng)自帶的集成顯卡驅(qū)動(dòng)進(jìn)行顯示。
接下來(lái),自然就是重新安裝CUDA,以便正確安裝NVIDIA顯卡驅(qū)動(dòng)程序了。
1.6.2 突然斷電重啟電腦后NVIDIA顯卡驅(qū)動(dòng)程序損壞
開發(fā)的過(guò)程中開發(fā)者們還會(huì)碰到很多意外情況,再舉一個(gè)小例子。
有一次突然斷電,我重啟電腦后,運(yùn)行tensorflow-gpu程序時(shí),
居然報(bào)錯(cuò)說(shuō)不是NVIDIA顯卡驅(qū)動(dòng)。
我一查居然是NVIDIA顯卡驅(qū)動(dòng)程序損壞,
操作系統(tǒng)重新啟用集成顯卡驅(qū)動(dòng)nouveau,
甚至還把步驟二中創(chuàng)建的黑名單文件
/etc/modprobe.d/blacklist-nvidia.conf
都給刪除了,實(shí)在是耽誤了不少時(shí)間。怎么解決呢?
解決辦法:
重新執(zhí)行步驟二至步驟五,再次安裝NVIDIA顯卡驅(qū)動(dòng)。
Docker內(nèi)部安裝NVIDIA顯卡驅(qū)動(dòng)的步驟比較簡(jiǎn)單,下面闡述之。
在命令終端內(nèi),使用如下命令安裝Docker內(nèi)部的NVIDIA顯卡驅(qū)動(dòng):
1#啟動(dòng)并進(jìn)入Docker 2bashdocker/scripts/dev_start.sh-C 3bashdocker/scripts/dev_into.sh 4#更新安裝源 5sudoaptupdate 6#查看并安裝NVIDIA顯卡驅(qū)動(dòng) 7#此處的版本號(hào)396要與Docker外部一致! 8aptsearchnvidia-396 9sudoaptinstallnvidia-39610#查看顯卡驅(qū)動(dòng)是否安裝成功11nvidia-smi
首先確保當(dāng)前需要保存的Docker image處于活動(dòng)狀態(tài)(未被關(guān)閉),使用如下命令保存:
1#查看當(dāng)前活動(dòng)的Dockerimage2dockerps3#保存本地Dockerimage4#-p表示保存時(shí)暫停當(dāng)前Dockerimage的運(yùn)行5#a45572938fcd表示Dockercontainerid,它與你的機(jī)器相關(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#啟動(dòng)修改后的Docker2#-C表示使用國(guó)內(nèi)服務(wù)器3#-l-tdavidhopper_dev表示基于本地標(biāo)簽為davidhopper_dev的Dockerimage拉取4bashdocker/scripts/dev_start.sh-C-l-tdavidhopper_dev5#進(jìn)入Docker6bashdocker/scripts/dev_into.sh7#查看顯卡驅(qū)動(dòng)是否已正確保存8nvidia-smi
2.4.1 不小心使用
docker/setup_host/install_nvidia_docker.sh
腳本安裝nvidia_docker,導(dǎo)致無(wú)法進(jìn)入Docker
之前我在Docker內(nèi)部安裝NVIDIA顯卡驅(qū)動(dòng)前,
曾經(jīng)嘗試過(guò)在Docker外部使用如下命令安裝nvidia_docker:
1bashdocker/setup_host/install_nvidia_docker.sh
安裝完畢后,重啟Docker時(shí)發(fā)現(xiàn)出問(wèn)題了,
Docker進(jìn)不去了,錯(cuò)誤截圖如下:
解決方法:
在Docker外部使用如下命令缷載nvidia_docker:
1sudodpkg-rnvidia-docker
自Apollo平臺(tái)開放已來(lái),我們收到了大量開發(fā)者的咨詢和反饋,越來(lái)越多開發(fā)者基于Apollo擦出了更多的火花,并愿意將自己的成果貢獻(xiàn)出來(lái),這充分體現(xiàn)了Apollo『貢獻(xiàn)越多,獲得越多』的開源精神。為此我們開設(shè)了『開發(fā)者說(shuō)』板塊,希望開發(fā)者們能夠踴躍投稿,更好地為廣大自動(dòng)駕駛開發(fā)者營(yíng)造一個(gè)共享交流的平臺(tái)!
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4978瀏覽量
102988 -
顯卡驅(qū)動(dòng)
+關(guān)注
關(guān)注
0文章
28瀏覽量
10545
原文標(biāo)題:開發(fā)者說(shuō) | 為Apollo項(xiàng)目安裝NVIDIA顯卡驅(qū)動(dòng)的有效方法
文章出處:【微信號(hào):Apollo_Developers,微信公眾號(hào):Apollo開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論