三、搭建petalinux工程
0.定位目錄
先在shell中找一個准備存放工程的地方,(我的是home/hlf/PRO),命令行cd home/hlf/PRO
1.定位編譯鏈
根據安裝petalinux的路徑:
source /home/hlf/mnt/petalinux/settings.sh
2.創建petalinux工程
將在PRO目錄下面,創建一個工程:
petalinux-create --type project --template zynq --name h1_petalinux_test
h1_petalinux_test是工程名,該命令會自動在PRO文件夾里創建h1_petalinux_test文件夾
3.引用剛才輸出的硬件描述文件
把之前導出的硬件描述文件system_wrapper.hdf拷貝到虛擬機中的h1_petalinux_test工程文件夾下,然后:
petalinux-config --get-hw-description=/home/hlf/PRO/h1_petalinux_test
會進入一個配置界面,在里面我們可以配置一些系統參數,主要的配置包括:啟動方式,啟動存儲器分區表,啟動文件名稱等等,本文暫不對其修改(默認是從SD卡中啟動),然后等待其配置(時間較長)
4.獲取文件夾權限
在上一步完成后,輸入命令sudo chmod -R 777 /home/hlf獲取文件夾權限(工程文件夾和petalinux的安裝文件夾),否則編譯的時候,會發生錯誤
目前為止,在shell中的命令既可以以超級用戶su的身份運行也可以以普通用戶的方式運行(建議全部都用普通用戶的方式,免得切換),但是等下編譯u-boot和kernel以及rootfs的時候,必須以普通用戶的身份運行命令行,否則會報錯的
5.編譯u-boot
注意:到此處的時候,不能再用超級用戶了,要切換到普通用戶下,之后的所有操作都在普通用戶下
普通用戶的shell中輸入petalinux-config -c u-boot(依然要事先輸入source /home/hlf/mnt/petalinux/settings.sh命令),然后等待GUI出來,這里暫時不改動啥,直接save(save為u-boot.config,名字隨便取但不要留空),然后繼續等(新建工程要等的時間還是比較長的,后來就會好的)
這里寫圖片描述
6.編譯kernel
命令petalinux-config -c kernel,操作同上(save為kernel.config)
7.編譯rootfs
命令petalinux-config -c rootfs,操作同上(save為默認即可)
8.設備樹配置
若要修改,直接在工程文件夾下,Ctr+F搜索.dts就可以找到相關文件,做出相應修改”
暫時默認吧,不修改,按照它自動生成的設備樹
9.編譯工程
輸入命令petalinux-build,等待即可,最后生成的文件在 image/linux下
10.生成BOOT.BIN
把shell定位到image/linux目錄下,執行命令
petalinux-package --boot --format BIN --fsbl zynq_fsbl.elf --fpga system_wrapper.bit --u-boot,在文件夾下就可以發現,多了一個BOOT.BIN
11.將如下文件拷入SD卡
12.開機
將SD卡,插回,開機,串口打印信息
開機時登錄的用戶名和密碼都是root
可以看到正常開機了,連SD卡的文件系統都不需要自己做了,但是不自帶python了
這種基於petalinux方式移植linux的方法,到此流程也就走完了,至於更深的操作,還要在實踐中,不斷學習,至少現在看來,比傳統方式移植方便了一些,而且移植的流程petalinux也都集成了的,好處還是挺多的,慢慢發掘他的強大之處
---------------------
作者:long_fly
來源:CSDN
原文:https://blog.csdn.net/long_fly/article/details/78727813
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!