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