【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件

简介: 【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件

在 这篇文章 中学习了使用 PetaLinux 定制 Linux 的方法,制作了 SD 卡启动文件,本期介绍如何使用 PetaLinux 配置生成从 QSPI Flash 启动的 Linux 镜像文件。


复制 Petalinux 工程

如果我们想保留 SD 卡启动的 Petalinux 工程,但是又不想新建一个,我们可以把老工程复制一份。

  • 在工程目录同时按键 Ctrl +H,显示隐藏文件,将 project-spec、.petalinux、config.project 复制到一个新的目录,作为一个新的 Petalinux 工程

  • 再把 images/linux 目录下的 bit 文件也复制到新的工程目录下,用于合成带 PL 配置的 BOOT

  • 进入新工程,右键选择打开终端


配置编译 Petalinux

  • 配置 Vivado 和 Petalinux 环境变量
source /opt/pkg/petalinux/settings.sh
source /opt/Xilinx/Vivado/2017.4/settings64.sh

  • 使用 petalinux-config 命令配置 Petalinux 工程
petalinux-config

  • 进入 Petalinux 配置界面


在 Subsystem AUTO Hardware Settings ---> Advanced bootable images storage Settings ---> boot image settings ---> image storage media 选项中选择 primary flash

在 Subsystem AUTO Hardware Settings ---> Advanced bootable images storage Settings ---> kernel image settings ---> image storage media 选项中选择 primary flash


  • Subsystem AUTO Hardware Settings → Flash Settings 中可以修改 QSPI flash 的分区,默认的
    就差不多可以使用,如果你的文件大小超过了默认分区的大小,要自己调整一下

  • Image Packaging Configuration ---> Root filesystem type 选择 INITRAMFS,使用 RAM 类型
    的根文件系统,这样就可以方便打包烧写到 QSPI Flash


  • Firmware Version Configuration 中可以修改 Host name 等信息

  • 保存配置

  • 退出并编译

  • 使用 petalinux-build 命令编译工程


  • 使用下面命令合成 BOOT,和前面的教程的差异就是多出 --kernel 选项,把内核也打包到
    BOOT.bin 文件里
petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/platform.bit --u-boot --kernel --force

  • 生成 bin 文件

将 BOOT.bin 烧写进 QSPI Flash

未完待续…





相关文章
|
3天前
|
存储 数据挖掘 Linux
在 Linux 中查找目录中最大文件用什么,你知道吗
【5月更文挑战第23天】在 Linux 中查找目录中最大文件,可以使用 `du` 命令结合 `sort`,`find` 命令搭配 `xargs` 和 `sort`,或编写 Python 脚本。例如:`du -a /path | sort -nr | head -n 1` 或 `find /path -type f -print0 | xargs -0 du -h | sort -nr | head -n 1`。这些方法适用于服务器管理、数据分析和文件清理等场景,注意文件权限、目录深度和文件系统类型可能影响结果。
11 1
|
5天前
|
Linux
linux 如何删除文件中的空格和换行符号并保存到新文件中
linux 如何删除文件中的空格和换行符号并保存到新文件中
9 0
|
5天前
|
Linux C语言 Windows
linux基本指令总结--文件和目录(一)
linux基本指令总结--文件和目录(一)
|
10天前
|
Linux 网络安全
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
40 3
|
11天前
|
Linux Go
linux ls -la文件信息含义
linux ls -la文件信息含义
17 1
|
11天前
|
Linux Shell Python
如何计算 Linux 上文件中的空行数?
【5月更文挑战第11天】
20 0
|
11天前
|
Linux API
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
Linux系统编程之文件编程常用API回顾和文件编程一般步骤
|
11天前
|
Linux
如何在 Linux 中递归更改文件的权限?
【5月更文挑战第10天】
26 3
|
11天前
|
Linux
Linux如何查询较大文件的方法
【5月更文挑战第8天】Linux如何查询较大文件的方法
23 0
|
11天前
|
Linux 程序员 Shell
【Linux】详解core dump文件的作用以及用法&&ubuntu20.04下无法形成core dump文件的解决办法
【Linux】详解core dump文件的作用以及用法&&ubuntu20.04下无法形成core dump文件的解决办法