PetalLinux是Xilinx公司推出的嵌入式Linux開發(fā)工具,專門針對(duì)Xilinx公司的FPGA SoC芯片和開發(fā)板,用戶可以在PetaLinux工具的幫助下進(jìn)行完整的開發(fā)流程,包括設(shè)計(jì),驗(yàn)證,仿真,下載等。
本文將詳細(xì)介紹PetaLinux的安裝流程,雖然實(shí)際上基本就是把Xilinx的UG1144翻譯一遍。但對(duì)于初學(xué)者而言,全是英文的Guidance還是很難受的,可能某一步要輸入某個(gè)命令,但是卻并不知道為什么要這么做,這并不好,也容易打擊信心,尤其是UG里還有一點(diǎn)小錯(cuò)誤。
安裝前的準(zhǔn)備工作
你需要一個(gè)運(yùn)行著Linux操作系統(tǒng)的電腦作為主機(jī)。
你可以用虛擬機(jī),也可以裝雙系統(tǒng),或者你甚至可以直接把系統(tǒng)換成Linux。
在這里,我用的是VMware虛擬機(jī)下的Ubuntu Kylin 14.04 LTS
你需要一個(gè)足夠大的硬盤空間,一個(gè)足夠好的CPU,盡量大的內(nèi)存。
畢竟是用來(lái)做開發(fā)的,對(duì)于配置要求還是比較高,Xilinx推薦4GB內(nèi)存,20GB硬盤,2GHz主頻CPU。
然則,20GB硬盤遠(yuǎn)遠(yuǎn)不夠??!我分配了100GB,安裝完之后就剩30G空間了;我電腦一共就8GB內(nèi)存,只能分給虛擬機(jī)2GB,倒是沒出現(xiàn)什么問(wèn)題,就是安裝的時(shí)候比較慢,Guidance說(shuō)只要“few minutes”,然而我需要花一局OW的時(shí)間。
以下是Xilinx的推薦配置,不要相信他推薦的硬盤容量,其他都還好。
安裝一系列的支持包。以下是列表,最左邊是支持包的名稱,右側(cè)是各個(gè)操作系統(tǒng)下,該支持包的安裝包名稱(很繞口,其實(shí)就是同一個(gè)功能在不同系統(tǒng)下有不同的叫法),只需要關(guān)注你所用的操作系統(tǒng)的那一列就可以了。記得在安裝之前把這些支持庫(kù)全部安裝好,不然到時(shí)候等了好久,結(jié)果告訴你缺少庫(kù),請(qǐng)少俠重頭再來(lái),那就哭暈在廁所了。
把shell設(shè)置成bash(這一步你看不懂的話可以忽略,因?yàn)橛行┤讼矚g把shell設(shè)置為dash),具體設(shè)置方法是$ sudo dpkg-reconfigure bash,這里UG1144寫錯(cuò)了。
下載安裝Vivado for Linux?;蛘吣阆朐赪indows下用Vivado搞完之后把文件扔到虛擬機(jī)里也可以,只是比較麻煩,還不如直接裝在Linux里,實(shí)測(cè)界面和Windows下完全一樣。推薦WebPack版本,雖說(shuō)是閹割版,但還是可以用ZYNQ系列和MicroBlaze的全部功能,只是少了UltraScale系列和一些高端的7系列,重點(diǎn)是免費(fèi)啊= =||
安裝步驟
下載PetaLinux包。網(wǎng)址如下:
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html
選擇7.02GB的PetaLinux 2016.3 Installer
下載完之后應(yīng)該是一個(gè) petalinux-v2016.3-final-installer.run 文件
放到虛擬機(jī)里;
建立安裝路徑,比如$ mkdir ~/Desktop/petalinux
運(yùn)行安裝文件;
$ 。/petalinux-v2016.3-final-installer.run ~/Desktop/petalinux
如果缺少后面的安裝路徑參數(shù),則默認(rèn)會(huì)安裝在當(dāng)前路徑;
經(jīng)過(guò)漫長(zhǎng)的等待~~~來(lái)到了Agreement部分了,就是一些協(xié)議,不同意就不讓裝,Windows下一般用勾選的方式,Linux終端沒有這種條件,只能用Vim展示給你看。
按 Enter 進(jìn)入?yún)f(xié)議文本,按 q 退出協(xié)議文本,然后就會(huì)有問(wèn)你同不同意,輸入 y 同意協(xié)議,進(jìn)入下一條協(xié)議,按 q 退出,y 同意,若干次之后,就進(jìn)入安裝部分了。
再次經(jīng)過(guò)漫長(zhǎng)的等待,安裝完成。
環(huán)境配置
裝好了工具,接下來(lái)就是要配置環(huán)境了。
環(huán)境配置方法很簡(jiǎn)單,先確保你的shell是bash,具體設(shè)置方法看上面的“安裝前準(zhǔn)備工作”部分。
然后運(yùn)行$ source 《path-to-installed-PetaLinux》/settings.sh
比如我的安裝路徑是 ~/Desktop/petalinux,那對(duì)應(yīng)的命令就是$ source ~/Desktop/petalinux/settings.sh
執(zhí)行$ echo $PETALINUX
如果顯示出你的安裝路徑,那就證明環(huán)境變量配置好了
有一個(gè)問(wèn)題是,每次打開一個(gè)新的終端,環(huán)境變量都會(huì)被重置,需要重新source,作為一個(gè)強(qiáng)迫癥,我覺得這種重復(fù)而無(wú)聊的工作必然是可以自動(dòng)化的。解決方案如下:
修改 ~/.bashrc 這個(gè)文件
在最后加上 $ source ~/Desktop/petalinux/settings.sh
.bashrc 是終端的初始化配置腳本,每次打開新的終端是的時(shí)候,都會(huì)執(zhí)行這個(gè)腳本,把環(huán)境變量配置腳本加在里面,就能在打開的時(shí)候自動(dòng)配置了。
安裝PetaLinux BSP
BSP(Board Support Package)板級(jí)支持包,是一個(gè)文件包,當(dāng)你使用特定的硬件平臺(tái)時(shí),可以幫你隔離底層硬件,更方便地進(jìn)行上層開發(fā)。Xilinx的開發(fā)板基本上都有對(duì)應(yīng)的BSP,在PetaLinux環(huán)境下可以很方便地生成一個(gè)基礎(chǔ)工程,在基礎(chǔ)工程的基礎(chǔ)上進(jìn)行配置和增刪修改等,會(huì)比從零開始做簡(jiǎn)單得多。這里詳細(xì)介紹了BSP的安裝流程。
下載你需要的板級(jí)支持包BSP。
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html
把PetaLinux下載列表往下拉,能看到很多的BSP,選擇你想要的,比如我這里選的就是ZC706的BSP。
把這個(gè)BSP文件放在你喜歡的地方。你可以把BSP文件看做一個(gè)種子,通過(guò)特定的命令可以讓其“成長(zhǎng)”為一個(gè)工程,一個(gè)模板工程,一個(gè)基于特定板子的基礎(chǔ)工程,讓你可以在此基礎(chǔ)上直接進(jìn)行開發(fā)而不需要關(guān)心板子上的具體電路等。
好吧,其實(shí)我是騙你的,根本不需要什么安裝,下載完放著就可以了;然則Guidance里說(shuō)這就是Installation,所以也算不上騙吧┑( ̄Д  ̄)┍
利用BSP生成一個(gè)工程
剛剛說(shuō)到,BSP相當(dāng)于一個(gè)種子,可以種出一個(gè)工程,現(xiàn)在我們就來(lái)動(dòng)手吧。
首先 cd 到你希望放置工程的路徑。比如我的就是:
$ cd ~/Desktop/petalinux_project
創(chuàng)建一個(gè)工程
petalinux-create -t project -s ~/Desktop/BSP/zc706.bsp
把上面的路徑換成你的BSP放置的路徑,文件名也換成你的BSP的文件名(廢話…)
-t 表示的是 type,類型是project,-s 表示 source,源是你的BSP文件
你也可以加一個(gè) -n 參數(shù),自定義工程的名稱。n for name
好的,一個(gè)BSP工程建立完畢。
創(chuàng)建一個(gè)自定義工程
創(chuàng)建工程肯定不可能只從BSP生成嘛,以下步驟可以創(chuàng)建一個(gè)自定義的工程,而不是基于某個(gè)特定開發(fā)板的工程。
先 cd 到你希望放置工程的路徑。比如我的就是:
$ cd ~/Desktop/petalinux_project
創(chuàng)建一個(gè)工程
petalinux-create -t project --template zynq --name test_proj
這樣就創(chuàng)建了一個(gè)基于zynq芯片模板,名為test_proj的工程了。
template屬性可以選擇zynq,zynqMP,microblaze。
將硬件平臺(tái)從Vivado工程導(dǎo)出
Vivado中,可以通過(guò)以下方法導(dǎo)出硬件描述文件(.hdf)
- File -》 Export -》 Export to hardware
將導(dǎo)出的 hdf 文件放好,待會(huì)需要用到。
將工程的硬件配置導(dǎo)入PetaLinux
我們從Vivado中得到了一個(gè)硬件,并導(dǎo)出為 .hdf 文件,現(xiàn)在可以把它導(dǎo)入PetaLinux平臺(tái)。
首先 cd 到你的工程根目錄下
導(dǎo)入硬件配置文件
$ petalinux-config --get-hw-description=~/Desktop
注意參數(shù)是 存有hdf文件的路徑,而不是文件本身。
然后應(yīng)該會(huì)彈出一個(gè)菜單讓你配置,配置完之后 save,exit即可。
其實(shí)一般不用怎么動(dòng),尤其是第一次跟著做的話基本一臉懵逼
每個(gè)細(xì)目具體是什么意思,參考UG1144的附錄B和附錄C
生成系統(tǒng)鏡像文件
生成一個(gè)Linux鏡像文件。
首先 cd 到你的工程根目錄下
生成系統(tǒng)鏡像
$ petalinux-build
生成日志 build.log 存放在‘build’子目錄中
鏡像文件存放在 /images/linux 中
生成引導(dǎo)鏡像
我們有了一個(gè)系統(tǒng)鏡像,有了一個(gè)FPGA的比特流文件,還有了一個(gè)u-boot。我們就可以生成一個(gè)引導(dǎo)鏡像BOOT.bin
命令如下:
$ petalinux-package --boot --fpga xxx.bit --u-boot
其中 xxx.bit 是你在Vivado里生成出來(lái)的比特流文件。
然后你就可以看見當(dāng)前目錄下生成了一個(gè)BOOT.bin,就是引導(dǎo)鏡像文件。
打包Pre-Built鏡像
舉個(gè)栗子,我們成功地做了一個(gè)鏡像系統(tǒng),現(xiàn)在需要將其備份,可以通過(guò)以下命令將其打包為“Pre-Built鏡像”。
首先 cd 到工程根目錄。
$ petalinux-package --prebuilt --fpga xxx.bit
然后就會(huì)出現(xiàn)一個(gè)prebuilt目錄,里面有完整的系統(tǒng)鏡像文件。
我們可以用prebuilt的鏡像來(lái)引導(dǎo)系統(tǒng),命令如下:
$ petalinux-boot --qemu --prebuilt 3
其中3代表的是 《 BOOT_LEVEL 》,可以選擇為1/2/3,分別代表不同的引導(dǎo)層次,具體請(qǐng)參考UG1144的24頁(yè)。
在QEMU中啟動(dòng)系統(tǒng)
上面說(shuō)到的用prebuilt的鏡像引導(dǎo)是其中一種方法,也可以直接引導(dǎo)。
在工程根目錄下執(zhí)行如下命令:
$ petalinux-boot --qemu --u-boot
這樣就可以把u-boot下載到QEMU中;
其中 qemu 表示在QEMU虛擬環(huán)境中啟動(dòng),可以換成 --jtag,這樣就可以通過(guò)J-TAG下載到板子上。
$ petalinux-boot --qemu --kernel
這樣就可以把內(nèi)核下載到QEMU中;
其實(shí)還需要一個(gè) --dtb參數(shù)的,dtb是device tree blob,設(shè)備樹文件,用來(lái)描述外掛的設(shè)備地址,如果缺省此參數(shù),則會(huì)自動(dòng)選用 /images/linux/system.dtb 文件
那么,到這里,就安裝成功并簡(jiǎn)單地測(cè)試了一下了。
UG1144是個(gè)好東西,后面還有打包固件包、封裝自己的BSP、添加用戶庫(kù)、添加用戶應(yīng)用、自動(dòng)登錄等等的教程。
剛開始看確實(shí)很痛苦啊,看了一整天,跟著做,做完了博客里寫的部分,才看了不到一半。而且是全英文,雖然我英語(yǔ)不差,但是看起來(lái)還是有些吃力。
話雖如此,還是推薦看英文的UG,畢竟原汁原味,我水平也有限,有一些可能理解不到位。反正,一起加油吧。。。
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209322 -
Ubuntu
+關(guān)注
關(guān)注
5文章
563瀏覽量
29703
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論