离线编译petalinux
本文是基于Alinx FPGA开发板(AXU2CGA)学习过程中踩过的坑,以做记录。
1.创建工程目录 :路径中“~”表示用户 home 路径
mkdir -p ~/peta_prj/linxPsBase
2.导入.xsa文件 :.xsa文件是由vitis vivado导出的,在工作目录下创建一个文件夹hardware ,拷贝.xsa文件至该文件夹下。需要要注意该.xsa文件对应的vivado工程需要包含ZYNQ的ARM硬核(已配置好各个外设),并以include bitstream形式导出.xsa。
mkdir -p ~/peta_prj/linxPsBase/hardware
cd ~/peta_prj/linxPsBase/hardware
cp <.xsa的文件夹路径>/design_1_wrapper.xsa ./
3.进入工作环境 :返回工程目录linxPsBase,设置 petalinux 环境变量,环境变量叧在当前终端中有效,所有与petalinux 相关的命令都要在当前终端中输入,关闭后需要重新运行。
cd ~/peta_prj/linxPsBase/
source /opt/pkg/petalinux/settings.sh
4.创建 petalinux 工程:名称为“petalinux”,类型为“project”,使用 zynqMP 模板,将自动在linxPsBase目录下创建petalinux目录。
petalinux-create -t project -n petalinux --template zynqMP
5.配置 硬件信息 :进入petalinux下,配置Petalinux工程的硬件信息,上述hardware目录里只能有一个.xsa文件。
petalinux-config --get-hw-description ../hardware/
6.工程配置 :每完成一层目录的配置需要save再exit至上一层目录。
- 选上kernel autoconfig和u-boot autoconfig,按“y”为选中,“n”为取消。
- 此处默认INITRD模式即可,若选用EXT4模式,后续SD卡的镜像需手动刻录,且应设置SD卡的根文件目录(Device node of SD device)为/dev/mmcblk0p2(该路径与FPGA板卡型号有关),具体教程需参考SD卡根文件系统配置说明。
- 取消线上编译(Enable Network sstate feeds),选中离线编译(Enable BB NO NETWORK)。
- 在Xilinx官网下载downloads_2020.1.tar.gz文件,根据版本要求自行选择下载,该文件是petalinux的镜像文件,放在自定义位置并解压,然后按照文件链接配置以下路径,要十分注意格式。
- 在Xilinx官网下载sstate_aarch64_2020.1.tar.gz文件,同样解压到自定义位置,该文件是编译用的,上述两个文件都十分重要,而且数据很大,所以线上下载编译十分费时。解压后,在以下配置中填入解压路径。
7.修改设备树:将petalinux/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi 文件的内容修改为如下:
/include/ "system-conf.dtsi"
/ {
};
/* SD */
&sdhci1 {
disable-wp;
no-1-8-v;
};
/* USB */
&dwc3_0 {
status = "okay";
dr_mode = "host";
}
8.编译:输入命令petalinux-build,等待编译完成。
9.生成boot文件:进入文件目录/images/linux打包文件,“–u-boot”参数为要打包合成的内容,会把 u-boot 依赖项全部合成,“–fpga”指带 bit 文件,“–force”为强制合成,覆盖以前合成的 BOOT.BIN,注意命令里是 2 个短横线。
cd ~/peta_prj/linxPsBase/petalinux/images/linux
petalinux-package --boot --u-boot --fpga --force
10.配置SD卡:在上一步骤目录下将会生成包含有三个文件分别为: boot.bin、boot.scr 和image.ub。如果SD卡应该原先带有出厂镜像,若无需要先回复出厂镜像或者按照上述中的SD卡根文件系统配置教程搭建根文件系统,必须保证SD卡中应有一个完整的文件系统,该系统会分为FAT和EXT两个分区,若是出厂镜像,在EXT分区中会有上述三个文件,只需将编译打包生成的三个文件复制粘贴覆盖原有的文件即可使用。
11.启动Linux:将SD 卡插入板卡,板卡设置为SD卡启动模式,打开串口终端并将板卡上电,在串口上会打印一系列开机信息,使用用户 root,密码 root 登录,进入系统,因为根文件系统为默认的 ram 类型,文件系统不能保存文件和配置。
整个例程到此结束!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)