如何为自定义的Zynq板创建无需BSP的嵌入式Linux系统
我们使用的是 Ubuntu 24.04.4,已安装 Vitis/Vivado 2025.2。
创建一个工作区并克隆所需的仓库:
为电路板创建自定义层:
现在,您在 /home/mammad/yocto-zynq/build/conf 中的 bblayers.conf 应该如下所示:
将 bblayers.conf 修改为:
meta-xilinx 生成的默认 boot.scr 使用了 bootm 命令,该命令需要一个 FIT 图像(image.ub)或 uImage。由于我们已将 Yocto 配置为构建 zImage,U-Boot 能够加载它,但不知道如何执行(zImage 需要 bootz 命令)。
在 meta-custom-zynq/recipes-bsp/custom-boot-script/files 目录下创建 boot.cmd 文件,内容如下:
在 /recipes-bsp/custom-boot-script 目录下创建 Yocto 配方,命名为 custom-boot-script.bb,然后添加以下内容:
创建自定义机器配置文件:
在 meta-custom-zynq/conf/machine 中创建 custom-zynq.conf,内容如下:
编辑 /home/mammad/yocto-zynq/build/conf 中的 local.conf 文件,找到包含 MACHINE ??= "qemux86-64" 的行,并将其更改为:
MACHINE ?= "custom-zynq"
滚动到文件底部并添加:
ACCEPT_EULA = "1"
Ubuntu 24.04。作为安全增强措施,它默认禁用了非特权用户命名空间,而 BitBake 依赖此功能进行构建沙箱化,因此请在开始构建前重新启用该内核功能。
成功的 Yocto 构建会在 /yocto-zynq/buil/tmp/deploy/images/custom-zynq 中生成以下文件:
现在不是使用 Vitis 生成引导映像(BOOT.BIN)的合适时机。
Vitis -> 创建启动镜像 -> Zynq
输出 BIF 文件路径 /home/mammad/yoctoZynq/vitis/boot.bif
+ 文件路径 /home/mammad/yoctoZynq/vitis/fsbl.elf 类型:引导加载程序 -> 好的
+ 文件 /home/mammad/yoctoZynq/vitis/uC_dsgn_wrapper.bit 类型:数据文件 -> 确认
+ /home/mammad/yoctoZynq/build/tmp/deploy/images/zynqpatvaz/u-boot-.elf 类型数据文件 -> 好的
现在点击“创建图像”,你将在 /yocto-zynq/vitis 目录下获得 BOOT.bin 文件。
注意:fsbl.elf 和 uC_dsgn_wrapper.bit 由 Vitis 和 Vivado 生成。我们需要对 SD 卡进行两个分区的格式化:
•分区1(FAT32,引导文件):包含BOOT.BIN、boot.scr、zImage和zynq-zed.dtb。
•分区2(EXT4,根目录):包含 core-image-minimal-custom-zynq.rootfs.tar.gz 中提取的内容。
启动电路板:
•将SD卡插入您的主板。
•在您的计算机上打开一个串行终端,例如使用 Putty 连接到板子的 COM 端口(波特率 115200)。
•你应该看到自定义-zynq 登录:
•输入 root 并按回车,你将看到类似 root@custom-zynq:~# 的命令提示符。
你可以通过电路板上的LED来测试其开关功能。
首先运行此命令以查找分配给 Zyqn PS GPIO 的基数值:
我们看到基础PS GPIO编号是517,而ZedBoard的LED引脚是MIO7。要打开LED,请运行以下命令:
本文编译自hackster.io





