news 2026/5/4 19:30:17

保姆级教程:在Ubuntu 20.04上为ZYNQ-7000配置Petalinux 2022.1的SD卡启动(含常见报错解决)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:在Ubuntu 20.04上为ZYNQ-7000配置Petalinux 2022.1的SD卡启动(含常见报错解决)

从零构建ZYNQ-7000的Linux系统:Petalinux 2022.1 SD卡启动全指南

刚拿到ZYNQ-7000开发板时,面对FPGA+ARM的异构架构,很多开发者会困惑如何快速搭建可运行的Linux系统。本文将用最直白的语言,带你完成从虚拟机环境配置到SD卡启动的全流程,特别针对Petalinux 2022.1版本中的典型问题提供解决方案。

1. 环境准备:搭建可靠的开发基础

在开始之前,我们需要一个稳定的Ubuntu 20.04环境。建议使用物理机安装而非虚拟机,因为Petalinux编译过程对磁盘I/O要求较高。如果必须使用虚拟机,请确保:

  • 分配至少250GB磁盘空间(实际编译后占用约180GB)
  • 内存建议8GB以上
  • 启用CPU虚拟化加速技术

必备工具链安装

sudo apt update && sudo apt install -y \ tofrodos gawk xvfb git libncurses5-dev \ tftpd zlib1g-dev flex bison chrpath \ socat autoconf libtool texinfo gcc-multilib \ libsdl1.2-dev libglib2.0-dev screen pax \ xterm build-essential net-tools libtinfo5

注意:Ubuntu默认使用dash作为/bin/sh的链接,这会导致Petalinux脚本报错。修正方法:

sudo rm /bin/sh && sudo ln -s /bin/bash /bin/sh

2. Petalinux 2022.1安装详解

下载官方安装包后,需要特别注意权限设置:

chmod 755 petalinux-v2022.1-installer.run # 必须使用755权限 ./petalinux-v2022.1-installer.run /opt/pkg/petalinux

安装完成后,环境变量配置是第一个容易出错的地方。建议将以下内容加入~/.bashrc

source /opt/pkg/petalinux/settings.sh export PATH=$PATH:/opt/pkg/petalinux/tools/xsct/bin

常见安装问题排查:

错误现象解决方案
"command not found"重新source环境变量
BitBake报错检查安装包权限是否为755
磁盘空间不足清理/temp目录或扩容

3. 工程创建与硬件配置

创建工程时,务必避开安装目录:

petalinux-create --type project --template zynq --name zynq_linux cd zynq_linux

导入Vivado生成的硬件描述文件(.hdf)时,路径中不要包含中文或空格:

petalinux-config --get-hw-description /path/to/hdf_file

关键配置项说明:

  • SD/SDIO Settings:选择ps7_sd_0作为主启动设备
  • Root filesystem type:选择EXT4格式
  • Flash Settings:根据实际Flash型号配置(如W25Q256)

提示:2022.1版本移除了Advanced bootable images选项,启动介质配置需在uboot中完成

4. 系统组件定制与编译

4.1 U-Boot配置

petalinux-config -c u-boot

需要确保以下选项启用:

  • Boot from SD/EMMC
  • PCI Express支持(如需NVMe设备)
  • Xilinx AXI Bridge for PCI Express

4.2 内核配置

petalinux-config -c kernel

关键模块:

  • NVM Express block device
  • PCI Express Port Bus support
  • SD卡驱动相关模块

4.3 根文件系统定制

petalinux-config -c rootfs

推荐添加的实用工具包:

包分类必备组件
Filesysteme2fsprogs, dosfstools
Utilitiesparted, pciutils
Developmentvim, gdb

5. 系统构建与镜像打包

完整编译命令:

petalinux-build

编译完成后生成的关键文件:

  • images/linux/BOOT.BIN:包含FSBL、比特流和U-Boot
  • images/linux/image.ub:内核镜像和设备树
  • images/linux/rootfs.tar.gz:根文件系统

打包启动镜像:

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

6. SD卡部署实战

准备至少8GB的SD卡,通过fdisk分为两个分区:

  1. BOOT分区(FAT32,100MB):存放BOOT.BIN和image.ub
  2. ROOTFS分区(EXT4,剩余空间):存放根文件系统

部署命令示例:

# 复制启动文件 cp BOOT.BIN image.ub /media/BOOT/ # 解压根文件系统 sudo tar -xzf rootfs.tar.gz -C /media/ROOTFS/ sudo chown -R root:root /media/ROOTFS/

7. 上电调试与问题排查

开发板设置:

  • 启动模式跳线设为SD卡启动
  • 串口波特率115200
  • 确保供电充足

常见启动问题:

现象1:卡在"Starting kernel..."

  • 检查image.ub是否包含正确的设备树
  • 确认内核配置匹配硬件

现象2:无法挂载rootfs

  • 检查EXT4分区是否完好
  • 确认内核已启用EXT4支持

现象3:uboot无法加载镜像

  • 检查SD卡分区是否为MBR格式
  • 确认BOOT.BIN包含正确的FSBL

我在实际项目中发现,使用质量较差的SD卡会导致随机启动失败。建议选择工业级存储卡,并在uboot中启用文件系统校验功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 19:24:50

字节面试官追问:“你的Agent调了三个工具就死循环了,异常处理在哪写的?”我:啊?还要写这个?

很多人已经开始感觉到,面试的画风变了。以前问的是“Selenium怎么定位元素”,后来问“接口自动化框架怎么设计”。现在,字节跳动、阿里的面试官手里拿着一张架构图,指着其中一个节点问你:“如果Agent在这里调用工具失败…

作者头像 李华
网站建设 2026/5/4 19:24:35

快连时代的终结:为什么“企业级”才是最后的一道防线?

根据最新的消息,快连 (LetsVPN) 官方已于 2026 年 4 月底正式发布公告,表示由于不可抗力的技术封锁,已无法有效解决连接问题,并宣布终止在中国大陆地区的业务运营。 曾经号称“永远连得上”的快连真的倒下了。官方那封充满无奈的公…

作者头像 李华
网站建设 2026/5/4 19:24:28

.NET Windows桌面运行时完整指南:快速构建现代化Windows应用

.NET Windows桌面运行时完整指南:快速构建现代化Windows应用 【免费下载链接】windowsdesktop 项目地址: https://gitcode.com/gh_mirrors/wi/windowsdesktop 想要快速开发高性能的Windows桌面应用程序吗?.NET Windows桌面运行时是你不可或缺的开…

作者头像 李华
网站建设 2026/5/4 19:24:27

通过Taotoken管理控制台实现API密钥的权限管理与审计

通过Taotoken管理控制台实现API密钥的权限管理与审计 1. 控制台概览与API Key创建 Taotoken管理控制台为团队管理员提供了集中式的API密钥管理界面。登录后,导航至「API密钥」选项卡即可开始操作。创建新密钥时,系统会生成唯一的字符串标识符&#xff…

作者头像 李华
网站建设 2026/5/4 19:24:16

QMCDecode:3步解锁QQ音乐加密文件,免费实现跨平台播放自由

QMCDecode:3步解锁QQ音乐加密文件,免费实现跨平台播放自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&a…

作者头像 李华
网站建设 2026/5/4 19:21:32

Obsidian Excel插件:在笔记中直接创建和嵌入电子表格的7步指南

Obsidian Excel插件:在笔记中直接创建和嵌入电子表格的7步指南 【免费下载链接】obsidian-excel 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-excel 如果你正在使用Obsidian进行知识管理,却苦于无法在笔记中直接处理结构化数据&#…

作者头像 李华