前言:最近在和百度Apollo合作,Apollo的人很nice,大家都在全力幫助我們解決問題。但Apollo系統有點難搞,安裝起來很費勁,為了避免再次踩坑,留下筆記,流傳后人,O(∩_∩)O。
1. 程序版本:
-
Ubuntu:14.04.3:apollo github主頁推薦了Ubuntu16.04,但在測試過程中,發現Apollo推薦的攝像頭驅動在Ubuntu16.04下的驅動(USB_CAM)有問題,因此我浪費了整整一天的時間,最后在一位長沙大神"哲"的指引下發現在Ubuntu14.04下攝像頭驅動編譯沒有問題,所以選擇Ubuntu14.04。這里還要說明一下,百度在 https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_5_hardware_system_installation_guide_v1.md里面推薦了ubuntu14.04.3,但在安裝過程中,需要upgrade,版本變為了Ubuntu14.04.5,所以個人認為,找一個Ubuntu14.04就好,我在百度網盤中將Apollo需要的 全部(是全部呀,包含系統的呀)安裝文件共享出來,省着去下載了。
百度網盤:鏈接: https://pan.baidu.com/s/1z86gFcDqRyUpnzAc7q5K3g 提取碼: b8i2
- cuDNN:在https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_run_perception_module_on_your_local_computer.md上,百度推薦了cuDNN v7.1.1 Developer Library for Ubuntu14.04 (Deb),在安裝過程中就是提示出現依賴錯誤,安不上呀,所以我去官網下載了一個cudnn-8.0-linux-x64-v7.tgz(也在百度網盤里),直接按照官網教程安裝就好。
2. 安裝:
- Ubuntu系統,這里就不廢話了,沒啥說的,拿我在百度網盤里共享的安裝就好。安裝完成后,最好弄個源(個人用阿里的源):
備份源:
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
編輯源列表:
$ sudo vim /etc/apt/sources.list
復制源列表到source.list(以下是ubuntu14.04的源):
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
更新
$ sudo apt-get update; sudo apt-get upgrade
- 更新內核,將內核版本更新到4.4.32:
安裝內核:
$ sudo apt-get install linux-generic-lts-xenial
在我的百度網盤中下載linux-4.4.32-apollo-1.5.0.tar.gz,運行:
$ tar zxvf linux-4.4.32-apollo-1.5.0.tar.gz
$ cd install
$ sudo bash install_kernel.sh
$ sudo reboot
重啟后,應該是安裝ESDCAN卡驅動,但我沒有,所以就略過去了。
- nVidia顯卡驅動安裝,在https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_run_perception_module_on_your_local_computer.md 中百度推薦將nVidia驅動安裝在docker里面,在https://github.com/ApolloAuto/apollo/blob/master/docs/quickstart/apollo_2_5_hardware_system_installation_guide_v1.md 中百度推薦將nVidia驅動安裝在docker外面,大神"哲"說安裝在外面就好,所以我就安裝在了外面。但驅動一定是下載百度提供的驅動,也在我的百度網盤中NVIDIA-Linux-x86_64-375.39.run,請自行下載。
提示:我在安裝過程中,沒有去弄blacklist.conf,應該沒有問題。
安裝驅動:這里筆記本和台式機、工控機有些不一樣,筆記本需要在最后加上--no-opengl-files,防止無限登陸 ;台式機與工控機不需要。
$ sudo chmod a+x NVIDIA-Linux-x86_64-375.39.run
$ sudo bash ./NVIDIA-Linux-x86_64-375.39.run --no-x-check -a -s --no-kernel-module --no-opengl-files
查看nvidia版本
$ nvidia-smi
如果版本號顯示為375.39,那么安裝成功。
- CDUA安裝。這部分百度省略了,但是為了安裝cuDNN還是需要安裝CUDA。在我的百度網盤里也有cuda_8.0.61_375.26_linux.run,自行下載。如果嚴格安裝上面的步驟來,應該不需要檢查版本,直接安裝。
$ sudo chmod a+x cuda_8.0.61_375.26_linux.run
$ sudo sh cuda_8.0.61_375.26_linux.run
安裝過程中,會有若干選項,請留意,如果遇到是否安裝驅動,請選擇n。最后應該回讓你選擇是否安裝CUDA_sample,為了節約安裝時間,我選擇了n。
- cuDNN安裝。百度在https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_run_perception_module_on_your_local_computer.md 中推薦了cuDNN v7.1.1 Developer Library for Ubuntu14.04 (Deb),我沒有安裝成功,所以我安裝了cudnn-8.0-linux-x64-v7.tgz,可以編譯成功。
解壓cudnn-8.0-linux-x64-v7.tgz
$ tar -xzvf cudnn-8.0-linux-x64-v7.tgz
拷貝cuDNN下的.h與.so到CUDA目錄下
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h
$ sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
到此,系統應該配置完了。
- 安裝docker-ce,安裝docker需要訪問外網,最好是有翻那啥的工具,或者是可以訪問外網的網絡。
更新
$ sudo apt-get update
安裝一個包,允許apt訪問https。
$ sudo apt-get installapt-transport-httpsca-certificatescurlsoftware-properties-common
添加docker官方GPG key:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
驗證
$ sudo apt-key fingerprint 0EBFCD88
建立倉庫。
$ sudo add-apt-repository"deb [arch=amd64] https://download.docker.com/linux/ubuntu$(lsb_release -cs)stable"
更新
$ sudo apt-get update
安裝最新的docker-ce
$ sudo apt-get install docker-ce
驗證docker是否安裝成功
$ sudo docker run hello-world
為了讓docker運行在非管理員權限下,建立docker group
$ sudo groupadd docker
添加用戶到docker group
$ sudo usermod -aG docker $USER #這里的$USER替換為自己的用戶名。
$ sudo reboot
驗證沒有通過管理員訪問docker
$ docker run hello-world
- 安裝Apollo
下載Apollo
$ git clone https://github.com/ApolloAuto/apollo.git
$ cd apollo/ #這里根據你選擇的下載文件夾進入apollo
進入docker
$ bash docker/scripts/dev_start.sh -C
$ bash docker/scripts/dev_into.sh
獲取build command列表
$ ./apollo.sh
開始清理
$ ./apollo.sh clean
開始build
$ bash apollo.sh build or $bash apollo.sh build_gpu(如果你帶nvidia顯卡,且在gtx1050ti版本之上)
到此應該全部結束了。
提示:如果上面執行過了,下面不需要執行。
提示:在https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_run_perception_module_on_your_local_computer.md 下面在編譯perception模塊時,可以運行
$ ./apollo.sh build_gpu
或者
$ ./apollo.sh build_opt_gpu
