ubuntu是目前最為(wèi)流行的linux的發行版,安(ān)裝(zhuāng)簡單,可(kě)視化,傻瓜化。目前的相關社區(qū)也比較完善,網上資料豐富,是新(xīn)手上手linux環境下開發比較不錯的一個版本。
ubuntu目前一般每隔兩年會發行一版LTS版本,即長(cháng)周期支持版,往往在4月份發布。普通版本一般支持18個月,而LTS能(néng)夠支持三年以上。
目前最新(xīn)的版本是18.04LTS,但是目前還比較新(xīn),所以我還是用(yòng)16.04LTS為(wèi)主。
從智能(néng)家居到智能(néng)無人機,機器人,工(gōng)業系統,Ubuntu是嵌入式Linux的新(xīn)标準。全球最好的安(ān)全性,定制品牌應用(yòng)商(shāng)店(diàn),龐大的開發者社區(qū)和可(kě)靠的安(ān)全更新(xīn)。
小(xiǎo)巧的體(tǐ)積且完整的OpenGL支持使Ubuntu Core成為(wèi)安(ān)全數字标牌的理(lǐ)想平台。
在Ubuntu上使用(yòng)ROS做機器人開發。自動化運載工(gōng)具(jù)和智能(néng)制造亦如此。
豐富的網絡和通訊協議支持使Ubuntu成為(wèi)工(gōng)業網關平台的理(lǐ)想選擇。
專為(wèi)關鍵嵌入式系統設計,Ubuntu重塑汽車(chē)。
先到ubuntu的官網,也可(kě)以搜索引擎中(zhōng)搜索,ubuntu曆史版本中(zhōng)找到ubuntu16.04,下載iso文(wén)件(沒必要去踩别的坑)。使用(yòng)軟碟通或者rufus(超級棒的一款免費軟件,被作(zuò)者的免費精(jīng)神簡直感動到哭)制作(zuò)U盤啓動盤。
設置電(diàn)腦的BIOS,U盤啓動安(ān)裝(zhuāng)。安(ān)裝(zhuāng)過程中(zhōng)還是比較傻瓜式的。
其中(zhōng)關于硬盤的分(fēn)配問題,之前還會就挂載目錄的“/”(系統根目錄,主要用(yòng)以安(ān)裝(zhuāng)系統)、“/home”(用(yòng)戶目錄,如果分(fēn)配了這個挂載目錄,那用(yòng)戶的存儲空間會被從系統目錄的空間中(zhōng)獨立出來)、“/boot”(存儲安(ān)裝(zhuāng)過程和升級過程中(zhōng)的一些文(wén)件)做一下去區(qū)分(fēn),一般根目錄30G左右,boot分(fēn)200M-400M,其餘都給home——但現在我一般安(ān)裝(zhuāng)就是分(fēn)配一個統一的根目錄,格式選擇EXT4,然後剩下大概1-2倍于物(wù)理(lǐ)内存的SWAP空間作(zuò)為(wèi)系統的虛拟内存。
然後下一步到底,完成安(ān)裝(zhuāng)。
一般最新(xīn)的linux内核都會支持比較新(xīn)的硬件設備,所有(yǒu)安(ān)裝(zhuāng)完成後網卡驅動之類就已經完成,所以還是比較簡單,但是如果是NVIDIA的顯卡,還是需要再安(ān)裝(zhuāng)一下的,詳見NVIDIA顯卡驅動安(ān)裝(zhuāng)部分(fēn)。
Ubuntu安(ān)裝(zhuāng)完後會發現系統有(yǒu)不少的預安(ān)裝(zhuāng)軟件,有(yǒu)些十分(fēn)雞肋,可(kě)以選擇删除之。
命令: sudo apt-get remove XXX
如: sudo apt-get remove libreoffice-common gnome-mines gnome-sudoku unity-webapps-common等等
ubuntu默認安(ān)裝(zhuāng)的是開源的顯卡驅動,一般安(ān)裝(zhuāng)完成後大概率是用(yòng)的CPU中(zhōng)集成的顯卡驅動來完成顯示的。
我摸索的安(ān)裝(zhuāng)方式有(yǒu)兩種,一種是上英偉達的官網下載你顯卡對應的驅動文(wén)件,選擇.run類型的文(wén)件。一種是在線(xiàn)的PPA安(ān)裝(zhuāng)方式。
先第一種:
首先是要終止目前的X服務(wù)(桌面顯示服務(wù)): Ctrl+Alt+F1切換到tty1,輸入賬号密碼,然後終止服務(wù):
sudo service lightdm stop (當然貌似 sudo systemctl stop lightdm 也可(kě)以有(yǒu)一樣功效),可(kě)以切換至F7看一下圖形界面是否終止。
然後,需要禁用(yòng)目前的開源nouveau的服務(wù):
sudo vim /etc/modprobe.d/blacklist.conf
在最後添加:
也可(kě)以創建blacklist-nouvean.conf文(wén)件:sudo vim /etc/modprobe.d/blacklist-nouvean.conf
添加:blacklist nouveau
options nouveau modeset=0
再更新(xīn)一下
sudo update-initramfs -u
reboot
lsmod | grep nouveau
懶人安(ān)裝(zhuāng)法:
Ctrl+alt+F1進入終端安(ān)裝(zhuāng)顯卡驅動,安(ān)裝(zhuāng)驅動時,先關閉可(kě)視化界面,sudo service lightdm stop,
将系統進行更新(xīn)升級
sudo apt-get dist-upgrade #dist-upgrade相比較apt-get upgrade更為(wèi)智能(néng),能(néng)夠根據庫的相互依賴性來決定安(ān)裝(zhuāng)、删除一些庫
sudo add-apt-repository ppa:graphics-drivers/ppa #嘗試了add-apt-repository和apt-add-repository都可(kě)以實現這個功能(néng)
sudo apt-get update
sudo apt-get install nvidia-384 #目前最新(xīn)的為(wèi)nvidia-390
輸入nvidia-smi,打印顯卡信息和驅動版本,ok
如果啓動時有(yǒu)問題則安(ān)裝(zhuāng)上面的步驟将開源驅動列入黑名(míng)單
1.cuda
(本次安(ān)裝(zhuāng)的版本為(wèi)cuda8.0,cudnn6.0)
下載相應的cuda版本,将chmod 777 *.run,除了詢問是否安(ān)裝(zhuāng)驅動選擇no,其他(tā)都是默認或yes
執行,後邊為(wèi)響應的cuda版本
sudo ./cuda8.0*.run
Do you accept the previously read EULA? accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48? (y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit? (y)es/(n)o/(q)uit: y
Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 8.0 Samples? (y)es/(n)o/(q)uit: y
安(ān)裝(zhuāng)完畢後,進入 sudo gedit ~/.bashrc,聲明環境變量
export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
設置環境變量和動态鏈接庫
sudo gedit /etc/profile
文(wén)件末尾加入:
export PATH=/usr/local/cuda/bin:$PATH
保存之後,創建鏈接文(wén)件
sudo gedit /etc/ld.so.conf.d/cuda.conf
文(wén)件中(zhōng)添加
/usr/local/cuda/lib64
執行
sudo ldconfig
保存退出,運行source ~/.bashrc
測試安(ān)裝(zhuāng)是否成功
cd /usr/local/cuda/samples/1_Utilities/deviceQuery ##可(kě)以使用(yòng)tab補全,可(kě)能(néng)目錄有(yǒu)字母錯了
sudo make
./deviceQuery
打印cuda和顯卡信息
2.cudnn
下載cudnn,解壓文(wén)件,
tar -xvf cudnn-8.0-linux-x64-v6.0.tgz
cd cuda/include文(wén)件夾,看到cudnn.h
sudo cp cudnn.h /usr/local/cuda/include/ # 複制頭文(wén)件
cd ../lib64
sudo cp lib* /usr/local/cuda/lib64 # 複制動态鏈接庫
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6 # 删除原有(yǒu)動态文(wén)件
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6 # 生成軟連接
sudo ln -s libcudnn.so.6 libcudnn.so
後邊的數字可(kě)以根據版本修改
3.安(ān)裝(zhuāng)tensorflow-gpu
首先安(ān)裝(zhuāng)pip
sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip
sudo pip install --upgrade virtualenv
然後使用(yòng)pip命令安(ān)裝(zhuāng)tensorflow-gpu,直接安(ān)裝(zhuāng)可(kě)以用(yòng)
sudo pip install tensorflow-gpu==1.3
(也可(kě)以不加==1.3)直接安(ān)裝(zhuāng)最新(xīn)的,如果覺得比較慢可(kě)以使用(yòng)清華的鏡像,執行
pip install -i https://pypi.tuta.tsinghua.edu.cn/simple/ tensorflow-gpu==1.3
安(ān)裝(zhuāng)缺少的庫,再安(ān)裝(zhuāng)補上
打開python,
import tensorflow
ok安(ān)裝(zhuāng)完成
4.安(ān)裝(zhuāng)pytorch
因為(wèi)牆的原因,最好翻一下,或者直接下載安(ān)裝(zhuāng)包,
鏈接: https://pan.baidu.com/s/1elmOk2 密碼: qrcf
sudo pip install 安(ān)裝(zhuāng)包
sudo pip install torchvision
然後進入python命令界面,
import torch
import torchvision
不報錯,完成
因為(wèi)框架會用(yòng)到ctcloss,因此百度需要安(ān)裝(zhuāng)百度的warp_loss,這個運行速度快,git項目代碼,又(yòu)因為(wèi)要支持pytorch,可(kě)以取下面git
如果沒有(yǒu)安(ān)裝(zhuāng)git,需要安(ān)裝(zhuāng),執行
sudo apt-get install git
git clone https://github.com/Amore-HDU/warp-ctc
cd warp-ctc
mkdir build
cd build
如果使用(yòng)gpu運算,設置環境變量,執行
export CUDA_HOME=/usr/local/cuda
如果沒有(yǒu)cmake,sudo apt-get install cmake,進行安(ān)裝(zhuāng)
cmake ../
make
切換到../pytorch_binding
安(ān)裝(zhuāng)pytorch的一些相關包,
sudo pip install lmdb
sudo pip install cffi
sudo pip install mahotas
warp-ctc關聯到pytorch,需要執行一個setup.py腳本,首先進入warp-ctc/pytoch_bedding,修改setup.py中(zhōng)的第一個enable_gpu=True,如果為(wèi)True,則不需要修改,執行
sudo python setup.py install
完成後重新(xīn)打開一個控制台窗口,執行python命令行,執行import warpctc_pytorch,不報錯,完成
我目前開發比較常用(yòng)的是python,雖然linux有(yǒu)萬能(néng)的VIM,但畢竟vi的門檻還是比較高的,用(yòng)不熟練的還是使用(yòng)一些優秀的IDE(或者稱之為(wèi)軟件)會比較合适一些,比如Pycharm,Anaconda等。
在這我記一下Pycharm的使用(yòng)。
到pycharm的官網下載linux的安(ān)裝(zhuāng)包,我們米少就下載社區(qū)版的就可(kě)以了。
下載完成後,解壓下載的tgz文(wén)件:
如果涉及到權限問題可(kě)以先改變文(wén)件的權限:sudo chmod 777 XXX (XXX表示你需要改變權限的文(wén)件目錄及文(wén)件名(míng))
解壓壓縮包: tar -xvzf XXX -C ~ (XXX表示需解壓的文(wén)件名(míng), -C的命令表示解壓到指定的路徑,此處示例中(zhōng)解壓到home,所以用(yòng)~,當然解壓完成後你也可(kě)以去更改目錄的名(míng)字方便記憶)
進入執行文(wén)件所在的目錄,即 cd XXX/bin (此處的XXX即上一步你所解壓的文(wén)件目錄),可(kě)以ls一下,看到有(yǒu)一個pycharm.sh文(wén)件
執行 sh pycharm.sh
這個時候我們的pycharm就開始執行了,以後運行pycharm就可(kě)以如此用(yòng) sh pycharm.sh執行。pycharm開啓後應該先到設置裏的默認設置添加python的環境,并将添加好的環境設置為(wèi)你當前開發文(wén)件的環境。
當然現在有(yǒu)了更為(wèi)方便的snap的包管理(lǐ)工(gōng)具(jù),就可(kě)以使用(yòng)sudo snap install XXX 來安(ān)裝(zhuāng)需要的軟件,pycharm的官網有(yǒu)專門的snap安(ān)裝(zhuāng)的指令,當然也能(néng)到snap的官網找軟件,但是目前snap的速度是相當的不理(lǐ)想,如果有(yǒu)apt包還是安(ān)裝(zhuāng)apt的比較快一些。遺憾的是,目前在國(guó)内使用(yòng)snap安(ān)裝(zhuāng)你必須忍受那難以想象的網絡速度,且用(yòng)且珍惜!