使用 PetaLinux 的先决条件指南

本文作者:AMD 工程师 Aravind Babu

本篇文章介绍了在任何平台上使用 PetaLinux 的先决条件。PetaLinux 是一种嵌入式 Linux 软件开发套件 (SDK),主要用于基于 FPGA 的系统级芯片 (SoC) 设计或 FPGA 设计。

安装要求

工作站最低要求:

  • 8 GB RAM(针对 AMD 工具推荐的最低要求)

  • 2 GHz CPU 时钟或同等频率(至少 8 核)

  • 100 GB 可用 HDD 空间

支持的操作系统:

  • 完全移除 RHEL 和 CENTOS,与上游 Yocto 保持一致

  • Ubuntu Desktop/Server 20.04.2 LTS、20.04.3 LTS、20.04.4 LTS、20.04.5 LTS(64 位)、20.04.6 LTS、22.04 LTS、22.04.1 LTS、22.04.2 LTS 和 22.04.3 LTS

  • OpenSuse Leap 15.3 和 15.4

  • AlmaLinux 8.7 和 9.1

主机包列表

PetaLinux 要求在 Linux 主机工作站上安装标准开发工具和库,在 Linux 主机上安装版本说明中所列的库和工具。

以下是在安装 PetaLinux 之前,需要在主机上安装的程序包列表:

https://adaptivesupport.amd.com/s/article/000036178?language=zh_CN

PetaLinux 安装步骤

  • PetaLinux 工具要求您的主机系统 /bin/sh 为“bash”。如果您使用 Ubuntu 发行版,并且您的 /bin/sh 为“dash”,请咨询您的系统管理员,了解如何使用 sudo dpkg-reconfigure dash 命令来更改您的默认系统 shell /bin/sh。

  • 您必须具有相应的访问权,才能安装版本说明中所述的必备程序包。PetaLinux 工具需要以非 root 用户的身份安装。

可以从 PetaLinux 下载页面下载 PetaLinux 安装程序:

https://china.xilinx.com/support/download/index.html/content/xilinx/zh/d...

如果您在运行安装程序时未指定任何选项,则 PetaLinux 工具默认安装到当前工作目录中。

1.png

或者,您也可以指定安装路径。

2.png

例如,要将 PetaLinux 工具安装到 /home//petalinux/ 中,请执行以下操作:

3.png


注意:

  • 您不能以 root 用户身份安装 PetaLinux。如果您试图以 root 用户身份运行 PetaLinux 命令,则 BitBake 完整性检查可能会失败,这会导致无法继续构建。之所以执行这项检查,是因为以 root 用户身份运行构建非常危险;如果任何构建脚本误将文件安装到根路径 (/) 而不是它本应安装到的路径,则必须使安装立即失败,以免(在最坏的情况下)覆盖对 Linux 系统操作至关重要的文件,例如 /bin 或 /etc 中的文件。因此,不支持以 root 用户身份运行构建。

  • 一旦安装完成,您就无法移动或复制已安装的目录。在前述示例中,您无法移动或复制 /home//petalinux/,因为完整路径存储在 Yocto e-SDK 环境文件中。

  • 安装该软件期间,确保您对 /home//petalinux 有写权限。安装后,可以将权限更改为全局读取-执行 (0755)。将该工具安装到 /home//petalinux 目录并不是强制要求。您可以在具有 755 权限的任何位置安装该工具。

  • PetaLinux 2024.1 仅适用于从 AMD Vivado™ Design Suite 2024.1 导出的硬件设计。

您的 PetaLinux 和 Vivado 设计应始终使用相同版本。

PetaLinux 工作环境设置

在安装之后,通过 source 命令来运行所提供的设置脚本,以便完成剩余的设置。

PetaLinux 工作环境设置步骤

使用 source 命令来运行适当的设置脚本。PetaLinux 可以使用任何交互式 shell,示例如下:

以 Bash 作为用户 shell:

4.png


settings.sh:

https://www.godaddy.com/forsale/settings.sh?utm_source=TDFS_BINNS2&utm_m...

以 C shell 作为用户 shell:

5.png


注意:从 2024.2 起,将弃用 PetaLinux settings.csh 支持。建议使用 bash 中的 settings.sh:

https://www.godaddy.com/forsale/settings.sh?utm_source=TDFS_BINNS2&utm_m...

以下是第一次使用 source 命令运行设置脚本时的输出示例:

6.png


验证工作环境已设置完成:

echo $PETALINUX

输出示例:/opt/pkg/petalinux

环境变量 $PETALINUX 应指向 PetaLinux 的安装路径。根据 PetaLinux 安装路径,输出可能与本示例不同。

创建 PetaLinux 工程

使用 PetaLinux BSP 创建工程

1.切换至您要在其中创建 PetaLinux 工程的目录。例如,如果您要在 /home/user 下创建工程,请运行以下命令:

cd /home/user

2.在命令控制台上运行 petalinux-create 命令:

petalinux-create project -s<path-to-bsp>

基于已安装的 BSP 来引用开发板。输出如下:

7.png


在前述示例中,当该命令运行时,它会告诉您从 BSP 解压并安装工程。如果指定的位置在网络文件系统 (NFS) 上,则会将工程的 TMPDIR 更改为 /tmp/<projname-timestamp-id>。否则,指定的位置为 $PROOT/build/tmp。

请勿从本地文件系统创建到 NFS 文件系统的符号链接。您无法使用 NFS 在构建中定位“tmp”目录,此操作将失败。

注意:在 NFS 上创建工程时,为了成功构建工程,PetaLinux 要求 TMPDIR 上至少有 50 GB(至多 100 GB)的空间。

如果 /tmp/<projname_timestamp-id> 也在 NFS 上,则会抛出一个错误。您可以在创建 PetaLinux 工程时使用以下命令更改 TMPDIR:

8.png

或者,您可以使用 petalinux-config > Yocto-settings 随时创建或修改 TMPDIR。

切勿将两个不同 PetaLinux 工程的 TMPDIR 配置为相同的位置,否则可能造成构建错误。切勿在工具安装区创建 PetaLinux 工程,也不得将工具安装区作为临时构建区使用。

如果 TMPDIR 位于 /tmp/..,则删除工程并不会删除 TMPDIR。要删除 TMPDIR,请运行 petalinux-build -x mrproper。

错误日志:

9.png

使用 AMD Vivado™ Design Suite 配置硬件平台

您可以使用 AMD Vivado™ Design Suite 创建硬件平台。无论如何创建和配置硬件平台,都需要设置少量的硬件 IP 和软件平台配置,使硬件平台能随时运行 Linux。具体说明如下:

AMD Zynq™ UltraScale+™ MPSoC 和 AMD Versal™ 自适应 SoC

以下列出了 AMD Zynq UltraScale+MPSoC 和 AMD Versal 自适应 SoC 硬件工程启动 Linux 的硬件要求:

  • 至少 2 GB 的外部存储器(必要)。

  • 串行控制台 UART(必要)。

  • 非易失性存储器,如 QSPI 闪存和 SD/MMC。此存储器是可选的,如果没有此存储器,则只有 JTAG 启动可正常工作。

  • 以太网(可选,对网络访问必不可少)。

注意:如果使用带中断的软核 IP 或带中断的外部 PHY 器件,请确保中断信号已连接。

AMD Zynq 7000 器件

以下列出了 Zynq 7000 硬件工程启动 Linux 的硬件要求:

  • 一个三重定时器计数器 (TTC)(必要)。

注意:如果启用多个 TTC,则 Zynq 7000 Linux 内核将使用来自设备树的第一个 TTC 块。确保其他内核不使用该 TTC。

  • 至少 512 MB 的外部存储器控制器(必要)。

  • 串行控制台 UART(必要)。

  • 非易失性存储器,如 QSPI 闪存和 SD/MMC。此存储器是可选的,但若不提供,那么只有 JTAG 启动可正常工作。

  • 以太网(可选,对网络访问必不可少)。

注意:如果使用软核 IP,请确保中断信号已连接。如果使用带中断的软核 IP 或带中断的外部 PHY 器件,请确保中断信号已连接。

AMD MicroBlaze™ 处理器 (AXI)

以下列出了 MicroBlaze 硬件工程启动 Linux 的要求:

IP 核检查表:

  • 外部存储器控制器至少有 512 MB 存储空间(必要)

  • 带中断连接的双通道定时器(必要)

  • 串行控制台带中断连接的 UART(必要)

  • 非易失性存储器,如线性闪存或 SPI 闪存(必要)

  • 带中断连接的以太网(可选,但是网络访问的必要条件)

MicroBlaze 处理器配置:

系统从非易失性存储器启动时,MicroBlaze 处理器初始启动加载程序 fs-boot 至少需要 4 KB 的块 RAM(用于并行闪存)和至少需要 8 KB 的块 RAM(用于 SPI 闪存)。

注意:PetaLinux 仅支持 32 位 MicroBlaze 处理器。

导入硬件配置

导入硬件配置的步骤:

1. 使用 cd 导航到您的 PetaLinux 工程目录。

cd<plnx-proj-root>

2. 使用以下任一方法,通过 petalinux-config 命令导入硬件描述:

  • 使用包含 XSA 文件的目录路径:

    petalinux-config --get-hw-description<PATH-TO-XSA Directory>

  • 使用 XSA 文件路径:

    如果您在指定文件夹中有多个 XSA 文件,则 petalinux-config 会抛出一个错误。

  • 为避免出现此类错误,您可以按如下所示提供完整的 XSA 文件路径:

    petalinux-config --get-hw-description<PATH-TO-XSA-FILE>

注意:稍后如果更改<PATH-TO-XSA directory>中的 XSA 文件,会导致后续执行 petalinux-config/petalinux-build 命令时都会出现“INFO: Seems like your hardware design:<PATH-TO-XSA Directory>/system.xsa has changed”警告。这意味着您的 XSA 已发生更改。要使用最新的 XSA,请再次运行 petalinux-config --get-hw-description。这样会启动顶层系统配置菜单。为 PetaLinux 工程运行 petalinux-config --get-hw-description 命令时,该工具会检测所导入的硬件设计中发生的更改,并启动该菜单。

10.png

图:系统配置菜单

确保选定了“DTG Settings > (template) MACHINE_NAME”(DTG 设置 > (模板) MACHINE_NAME),并使用以下选项:

  • 使用带默认 BSP/硬件工程的 AMD 评估板时,将 BSP 设置保留为 AUTO。这样会根据您的具体设计自动确定 DTG 机器配置。

  • 对于定制开发板,请保留默认值。

  • 对于在 AMD 评估板上实现的定制硬件设计,请使用下表中的值。

11.png

表:BSP 和机器名称

确保选中“Subsystem AUTO Hardware Settings”(子系统自动硬件设置),然后进入下图所示的菜单:

12.png

图:Subsystem AUTO Hardware Settings

“Subsystem AUTO Hardware Settings →”菜单支持定制系统级硬件设置。您可以选择处理器、存储体、串行控制台或闪存。

构建 PetaLinux 系统镜像

使用 cd 导航到您的 PetaLinux 工程目录。

cd<plnx-proj-root>

petalinux-build

此步骤会生成设备树 DTB 文件、第一阶段启动加载程序(适用于 AMD Zynq™ 7000 器件、AMD Zynq UltraScale+™ MPSoC 和 AMD MicroBlaze™)、PLM(适用于 AMD Versal™ 自适应 SoC)、PSM(适用于 Versal 自适应 SoC)和 TF-A(适用于 Zynq UltraScale+ MPSoC 和 Versal 自适应 SoC)、U-Boot、Linux 内核、根文件系统镜像和 U-Boot 启动脚本 (boot.scr)。

最后,它会生成必需的启动镜像。