ALinx 7010使用PetaLinux(2021.2)+Preempt-RT构建实时平台

1.准备一个开发板ALinx 7010 (Zynq 7000 系列)

2.下载PetaLinux 2021.2 (选择这个版本是因为我的xsa文件用的这个版本,为了避免不必要的麻烦,采用和vivado一样的版本,你可以选择其他的更高的版本)

3.准备Ubuntu 20.04.1 LTS 下载链接:Index of /releases

首先安装虚拟机(实体机也可以),此处不再介绍,在虚拟机中安装PetaLinux 2021.2。安装完成之后我们创建一个工作目录:EtherCatLinux,在终端中进入目录。

pwd: /home/pgl/WorkSpace/EtherCatLinux/

我们创建一个xsa的文件夹,并把已经准备好的xsa文件放入其中。(xsa文件需要自己准备,或者你的开发板提供这些资料,但是开发板一般提供的版本比较老,请在上下文中指定自己的版本,本文不再说明这些)

然后逐个执行以下命令:

在本终端中申明环境变量(只在本终端生效,本终端关闭后失效)

source /home/pgl/WorkSoft/PetaLinux/settings.sh

创建PetaLinux工程
petalinux-create --type project --template zynq --name EtherCatLinux

进入工程目录
cd EtherCatLinux/

根据xsa创建硬件信息 弹出的menuconfig什么都不要改
petalinux-config --get-hw-description ../xsa

进入以下目录中打开文件添加两行内容,编译完成不要删除源码信息

RM_WORK_EXCLUDE += "linux-xlnx"
RM_WORK_EXCLUDE += "u-boot-xlnx"

# config kernel 弹出的menuconfig什么都不要改
petalinux-config -c kernel

# config rootfs 弹出的menuconfig什么都不要改
petalinux-config -c rootfs

# build 直接编译
petalinux-build

等待编译完成。找到如下目录,这是自动下载的kernel源码

把这个文件夹拷贝出来,我们需要对次源码打上patch,patch根据kernel的版本自行下载。可以根据kernel根目录中的makefile查看版本号。patch下载

https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/

以我的为例 kernel版本号是5.10.0 所以我下载patch-5.10-rt17.patch.xz。记住下载patch开头,xz结尾的patch包。自己找最新的那个就可以。

我把上面找到的kernel源码拷贝到随便指定的目录下。同时把下载好的patch包放入,执行patch的命令:

xzcat ./patch-5.10-rt17.patch.xz | patch -p1

执行完成,无报错即可。

重新执行命令petalinux-config

注意:此命令需要在petalinux工程根目录中执行,对我来说就是以下目录

我们进入选项中把linux的源码改为外部源码

同时在最后一项中设置我们自定义的源码路径。

保存配置

重新执行petalinux-config -c kernel

在General setup中选择Preemption model,并更改选项为如下,保存。

重新执行petalinux-build。

编译结束后,执行以下命令。

petalinux-package --boot --u-boot --force

到此我们的petalinux就编译好了。我们只需要把生成的镜像拷贝到sd中就可以启动了。

SD卡应该包含2个分区,BOOT和EXT4分区。名字是自己指定的,如果要更改名字和调整分区顺序,记得自己去修改uboot中的启动分区和linux中的bootargs。

# /media/pgl/BOOT
# /media/pgl/EXT4
cp images/linux/BOOT.BIN /media/pgl/BOOT
cp images/linux/image.ub /media/pgl/BOOT
cp images/linux/boot.scr /media/pgl/BOOT
sudo tar xvf images/linux/rootfs.tar.gz -C /media/pgl/EXT4

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值