Petalinux 命令
參考《UG 1157 PetaLinux Command Line Reference Guide》
//創建petalinux工程
petalinux-create -t project --template zynq -n <name> //配置工程
cd 上一步的工程
petalinux-config --get-hw-description ../xsa_folder///配置Linux內核
petalinux-config -c kernel//配置Linux根文件系統
petalinux-config -c rootfs//編譯
petalinux-build//制作BOOT.Bin
petalinux-package --boot --fsbl --fpga --u-boot --force//掛載NFS
mount -t nfs -o nolock 192.168.0.1:/home/moerjie/work /mnt
Petalinux 設置本地編譯
Xilinx下載中心
首先在下載中心下載 petalinux 對應版本的"arm sstate-cache"和"download"包。
將下載好的文件解壓到 /opt/pkg/tools/
文件路徑下,使用 petalinux-config
配置工程。配置過程可見《領航者 ZYNQ 之嵌入式 Linux 開發指南 V 3.2》6.4 節。
與正點原子教程不同的地方
正點原子的修改 project-spec/meta-user/conf/petalinuxbsp. Conf 的代碼如下:
PREMIRRORS_prepend = " \
git://.*/.* file:///mnt/hgfs/share18/downloads/downloads \n \
gitsm://.*/.* file:///mnt/hgfs/share18/downloads/downloads \n \
ftp://.*/.* file:///mnt/hgfs/share18/downloads/downloads \n \
http://.*/.* file:///mnt/hgfs/share18/downloads/downloads \n \
https://.*/.* file:///mnt/hgfs/share18/downloads/downloads \n"
但是 2023.2 版本的 petalinux 不支持這個語法,需改為:
PERMIRRORS:prepend = "\
git://.*/.* file:///opt/downloads \n \
gitsm://.*/.* file:///opt/downloads \n \
ftp://.*/.* file:///opt/downloads \n \
http://.*/.* file:///opt/downloads \n \
https://.*/.* file:///opt/downloads \n"
pre-mirror: file:///opt/downloads
sstate: /opt/sstate/arm/
掛載 PL 端的 IP 到設備樹
將創建好的 petalinux 工程編譯一遍后,在 ./components/plnx_workspace/device-tree/device-tree
路徑下會生成 pl.dtsi
文件,將內部的設備樹相關的配置復制粘貼到 ./project-spec/meta-user/recipes-bsp/device-tree/files
中的 system-user.dtsi
中,編譯后在系統中加入新的設備。
Petalinux 支持的 axisfifo 的驅動版本是 4.1,但是 vivado 2023.2 中的 axis fifo 的版本為 4.3,因此要將
compatible
中的"xlnx,axi-fifo-mm-s-4.3"
改為"xlnx,axi-fifo-mm-s-4.1"
。
Axis fifo 必須將中斷信號連接到 zynq processing system 才能正確掛載到設備樹。
使用 dtc -I dtb -O dts
反編譯在 ./images/linux/
路徑下的 system.dtb
文件,即可看到掛載的新設備。