petalinux编译制作linux系统

0.设置petalinux环境变量

在 Ubuntu 系统中需要先设置 petalinux 工作环境,也就是对 petalinux 工作环境进行初始化,在终端输入如下命令即可:

source /opt/pkg/petalinux/2018.3/settings.sh

1.创建petalinux工程

petalinux-create -t project --template zynq -n ad9371

template 参数表明创建的 petalinux 工程使用的平台模板,此处的 zynq 表明使用的是
zynq 平台模板的 petalinux 工程,用于 zynq-7000 系列的芯片。name 参数(此处简写为“-n”)后接的是 petalinux 工程名,如此处的"ad9371”。创建后如图所示
在这里插入图片描述

2.配置petalinux工程

首次配置 Petalinux 工程是将 hdf 硬件描述文件文件导入到 Petalinux 工程中,Petalinux工具会解析 hdf 文件并弹出配置窗口。在终端中输入如下命令配置 Petalinux 工程:

cd ad9371 //进入到 petalinux 工程目录下
petalinux-config --get-hw-description ../hdf/adrv9371x_zc706.sdk/ //导入 hdf 文件

即进入到 petalinux 工程文件夹,并配置 petalinux 工程。“petalinux-config
–get-hw-description ” 命 令 后 面 的 文 件 夹 就是vivada生成的.sdk文件夹,该文件夹含有.hdf文件(硬件信息),大家根据自己的实际路径填写。如果后面修改了 Vivado 工程,重新生成 hdf 文件后,可以重新执行“petalinux-config --get-hw-description <hdf 文件目录>”命令以重新配置 Petalinux 工程。

在这里插入图片描述
Hdf 文件导入成功之后会自动弹出 petalinux 工程配置窗口,如下图所示
在这里插入图片描述
:由于我需要用到ad9371,所以我的内核是使用adi公司提供的,其网址如下:https://github.com/analogdevicesinc,下载版本时,选和petalinux配套的,避免其他问题。
进 入 到 “ Linux Components Selection—>u-boot(u-boot-xlnx)”菜单下,配置 Linux 内核来源。此处选择“ext-local-src”,也就是本地存放的uboot 内核源码,如下图所示:
在这里插入图片描述
然后进入external u-boot …
在这里插入图片描述

在这里插入图片描述
输入uboot文件的绝对位置
在这里插入图片描述
linux 内核导入方法和u-boot一样。
在这里插入图片描述
根文件系统如果较大,可将根文件系统放在另一个分区
进入Image Packaging Configuration
在这里插入图片描述
进入后如图所示
在这里插入图片描述
进入Root filesystem type (INITRAMFS)
在这里插入图片描述
选择SD card.

对于rootfs的配置,如果不需要登陆密码,可以执行以下命令配置根文件系统

petalinux-config -c rootfs

在这里插入图片描述
进入Image Features
在这里插入图片描述
使能该菜单下的“debug-tweaks”选项,就不需要手动输入用户名和密码了。

2.编译

执行petalinux-build编译工程
该命令将生成设备树 DTB 文件、fsbl 文件、U-Boot 文件,Linux 内核和根文件系统映像。编译完成后,生成的映像将位于工程的 images 目录下。需要说明的是 fsbl、U-Boot 这两个我们在工程中并不需要配置,这是因为 Petalinux 会根据 hdf 文件和 petalinux-config 去自动配置 fsbl 和 uboot,如无特需要求,不需要再手动配置
在这里插入图片描述

3.打包

petalinux-package --boot --fsbl --fpga --u-boot --force

在这里插入图片描述
选项“–fsbl”用于指定 fsbl 镜像文件所在位置,后面接文件对应的路径信息,如果不
指定文件位置,默认对应的是 images/linux/zynq_fsbl.elf;选项“–fpga”用于指定bitstream 文 件 所 在 位 置 , 后 面 接 该 文 件 对 应 的 路 径 信 息 , 默 认 对 应 的 是images/linux/system.bit;选项“–u-boot”用于指定 U-Boot 镜像所在位置,后面接该文件所在路径信息,默认为 images/linux/u-boot.elf。这里我没有指定对应的文件的路径信息,那么 Petalinux 会自动使用默认文件。

4.制作SD启动卡

由于根文件系统较大,在前面petalinux-config --get-hw-description …/hdf/adrv9371x_zc706.sdk/时,根文件系统选择了sd card,所以这里我们需要2个分区,一个分区使用FAT32文件系统,用于放置启动镜像文件(如BOOT.BIN,linux镜像等),另一个分区使用EXT4文件系统,用于存放根文件系统。(如果根文件系统的类型配置使用的是INITRAMFS,只需要一个分区( FAT32 文件系统的)就可以了)。
对于sd卡的分区设置,命令如下所示

umount /dev/sdb*
sudo fdisk /dev/sdb

。。。。

5.将编译的文件拷贝到sd卡

首先将petalinux工程目录image/linux目录下的BOOT.BIN和image.ub文件拷贝到名为boot分区也即/dev/sdb1分区中。
再将rootfs.tar.gz解压到rootfs分区也即/dev/sdb2分区中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值