
一、开发环境搭建
1.1 petalinux安装
官方参考文件:ug1144-petalinux-tools-reference-guide.pdf
源文件下载地址:下载
需要下载开发环境以及相关的BSP支持包

电脑配置要求

在用户权限
安装支持包
sudo apt-get install tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev \
tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat \
xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential \
libsdl1.2-dev libglib2.0-dev screen pax gzip automake
sudo apt-get install libtinfo5
sudo apt install libncurses5
切换到bash
sudo dpkg-reconfigure dash
设置安装目录
sudo chown -R $USER:$USER /opt //需要改权限到用户态
mkdir -p /opt/pkg/petalinux
cp petalinux-v2022.1-04191534-installer.run /opt/pkg/petalinux/
sudo chmod a+x petalinux-v2022.1-04191534-installer.run
./petalinux-v2022.1-04191534-installer.run
设置环境变量
sudo gedit ~/.bashrc
加入
source /opt/pkg/petalinux/settings.sh
echo $PETALINUX
成功之后,每次打开新的shell都会自动配置环境变量

1.2 petalinux BSP安装/测试
下载地址:
使用

1.3 Vivado 安装
如果在Ubuntu里面,需要先执行
sudo apt install libncurses5
安装的是2021版本的


下载要等蛮久

安装好之后,打开vivado的方式:找到安装位置里的settings64.sh,pwd查看当前位置,输入source /opt/Xilinx/Vivado/2017.4/settings64.sh,换成自己当前位置,再输入vivado。
获取许可文件
https://xilinx.entitlenow.com/AcrossUser/main.gsp?product=&tab=&req_hash=&

许可会发到邮箱里面

打开注册页

注册

1.4 下载bsp文件
下载链接
信息链接
https://support.xilinx.com/s/article/000033799?language=zh_CN
根据描述找到自己需要的bsp

二、软件使用
1.1 Vivado生成XSA文件
这个比较简单,只是制作一个XSA文件出来
创建新工程

选择RTL工程

选择CPU

创建IP block


















以上具体参考:01米联客2020版ZYNQ MPSOC SDK篇(非完整版).pdf
创建顶层文件和输出


出硬件

工程目录下会生成的一个xsa文件,这个是硬件文件,petalinux需要使用它

生成bit流文件


1.2 petalinux创建镜像文件
创建新工程
petalinux-create -t project -s petalinux/xilinx-zc702-v2022.1-04191534.bsp

生成成功

把xsa文件拷贝过来

进入工程目录内,配置xsa路径
petalinux-config --get-hw-description=./

弹出配置界面

关掉这个,可能会有不存在的链接
编译
petalinux-build
petalinux-package --boot --fsbl --fpga --u-boot --force
完成编译

完成镜像生成

1.3 虚拟机断网问题
关机状态下

还原默认配置

开机,在linux命令行输入
sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service network-manager start
1.4 使用XSA创建工程
1、配置环境变量
source /opt/petalinux/setting.sh
其中/opt/petalinux/setting.sh 为petalinux的安装路径
2、新建工程
对于Zynq UltraScale+MPSoc 系列,命令如下
petalinux-create -t project -n <PROJECT_NAME> --template zynqMP
3、导入硬件描述文件
首先cd
然后执行(其中path-to-dirextory 为.xsa 文件所在的路径)
petalinux-config --get-hw-description=<path-to-dirextory>
4、进行内核配置
petalinux-config -c kernel
在内核配置中基本保持默认配置,重点关注自己需要的驱动
5、配置跟文件系统
配置完成后记得保存退出
petalinux-config -c rootfs
6、编译系统镜像
petalinux-build
petalinux-package --boot --fsbl --fpga --u-boot --force
7、生成uImag
petalinux-package --image -c kernel --format uImage

8、生成启动镜像,这条没使用
petalinux-package --boot --format BIN --fsbl image/linux/zynqmp_fsb1.elf --u-boot images/linux/u-boot.elf --pmufw image/linux/pmufw.elf --fpga image /linux/*.bit
三、设备启动
1.1 制作SD卡环境
创建如下环境

1.2拷贝镜像文件
需要拷贝这三个文件

启动

1.3 UDHCPC卡死不通过
没接网线,无法启动系统

内核配置
1.petalinux-config -c kernel,修改内核配置选项
Networking --->
[*] Networking support
Networking options --->
<* > Packet socket //添加.配置CONFIG_PACKET
[ * ] IP: DHCP support //添加
[ * ] Network packet filtering---> //添加,后面子选项可不选,配置CONFIG_NETFILTER
-
若没选 Packet socket, \* Network packet filtering (replaces ipchains) --->选项,在执行udhcpc命令时出现如下错误:
~ # udhcpc
udhcpc (v1.20.2) started
udhcpc: udhcpc (v1.20.2) started
FATAL: couldn't listen on socket, Address family not supported by protocol
udhcpc: FATAL: couldn't listen on socket, Address family not supported by protocol
重新编译打包、
petalinux-build
petalinux-package --boot --fsbl --fpga --u-boot --force
1.4 实际操作整理
#创建工程
petalinux-create -t project -n etws --template zynqMP
#进入工程目录
cd etws
#配置xsa路径
petalinux-config --get-hw-description=../../xsa
#配置
petalinux-config
配置本地uboot和kernel的所在位置

加速petalinux编译,使用本地文件,降低联网下载消耗的时间
具体参考ZYNQ学习记录5-编译加速
file:///home/jun/sstate/downloads_2022.1_04190222/downloads

配置sstate

关闭

保存退出,开始编译打包
petalinux-build
petalinux-package --boot --fsbl --fpga --u-boot --force
制作SD卡

拷贝文件

正常启动
