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