当前位置: 首页 > news >正文

【Linux】PetaLinux开发

使用Xilinx的PetaLinux工具编译用于Zynq7020的Linux.

部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。

 专栏目录:记录自己的嵌入式学习之路-CSDN博客


目录

1    一般开发流程

2    离线编译过程

3    系统根文件系统的配置:

4    常用Petalinux设置

5    各步操作可生成的文件

5.1    编译任意东西

5.2    编译bootloader

5.3    编译U-Boot

5.4    编译设备树

5.5    打包boot

6    设置Flash启动

7    错误解决

7.1    Bitbake Server错误

7.2    Bitbake Fetch错误

7.3    空间不足错误

7.4    启动时Kernel panic

7.5    启动时卡在等待root device附近

7.6    共享文件夹文件nobody权限的问题(VirtualBox相关)

7.7    编译到某步骤就卡住

7.8    Flash相关

7.8.1    vitis无法写入

7.8.2    Flash无法加载

7.8.3    无法加载内核


1    一般开发流程

        一般的设计流程如下:

        1.通过Vivado创建硬件平台,得到xsa文件;

        2.运行source <petalinux安装路径>/settings.sh,设置Petalinux运行环境

        3.通过petalinux-create -t project创建petalinux工程;

        4.使用petalinux-config --get-hw-description,将xsa文件导入到petalinux工程当中并配置petalinux工程;

        5.使用petalinux-config -c kernel配置Linux内核,默认情况下会在线下载文件编译,如下图。

        2023.1版本的PetaLinux的默认Linux内核为6.1.5,一般不要手动更改内核版本,不过这也比较困难。

        关于离线编译和修改内核,可以参考:使用Petalinux定制Linux系统 — ZYNQ 7000开发平台FPGA教程 1.0 文档https://ax7020-20231-v101.readthedocs.io/zh-cn/latest/7020_S4_RSTdocument_CN/05_%E4%BD%BF%E7%94%A8Petalinux%E5%AE%9A%E5%88%B6Linux%E7%B3%BB%E7%BB%9F_CN.html        6.使用petalinux-config-c rootfs配置Linux根文件系统,一般不需要修改;

        7.配置设备树文件;

        8.使用petalinux-build编译整个工程;

        编译过程也需要连接网络:

        9.使用petalinux-package --boot制作BOOT.BIN启动文件;

        10.制作SD启动卡,将BOOT.BIN和image.ub以及根文件系统部署到SD卡中;

        11.将SD卡插入开发板,并将开发板启动模式设置为从SD卡启动;

        12.开发板连接串口线并上电启动,串口上位机打印启动信息,登录进入Linux系统。


2    离线编译过程

        (1)到Xilinx官网下载arm sstate-cache和Downloads;

        (2)petalinux-config -> Yocto Settings -> 

                ① 取消Enable Network sstate feeds(可不取消,有时候还是得联网);

                ② 使能Enable BB NO NETWORK;

                ③ Local sstate feeds settings -> 改为arm sstate-cache解压后的路径;

                ④ Add pre-mirror url -> 改为file://<Downloads解压后的路径>;


3    系统根文件系统的配置:

        INITRD 类型的根文件系统每次重新启动 linux 系统都是全新的、未改动过的,也就是说启动系统后进行的所有修改掉电后就全部丢失了,再次重新启动还是之前未修改过的根文件系统,选择“EXT4”可以将根文件系统放在 SD 卡、eMMC 的 ext4 分区,这样启动系统后进行的所有修改掉电后就不会丢失了。

        petalinux-config --get-hw-description [xsa_dir]

        Image Packaging Configuration  --->  Root filesystem type

        

        Petalinux的EXT4模式的硬盘挂载情况:

        PetaLinux的INITRD模式下的硬盘挂载情况:


http://www.xdnf.cn/news/252127.html

相关文章:

  • 一个读写excel的简单程序(golang)
  • 云原生后端架构的优势与最佳实践
  • Unity 与 Lua 交互详解
  • docker 官方:在 alpine 上安装 python 的方法
  • Sphinx 文档图片点击放大
  • 内部类(3):匿名内部类
  • 藏文情感分析器入门学习实践
  • Electron学习+打包
  • 【Java函数式编程-58.2】深入理解Java中的Function函数式接口
  • iO(不可区分混淆)是Web3隐私的圣杯?
  • xshell 左边的会话管理器不见怎么办?
  • d202552-sql
  • 深入解析MapReduce:大数据处理的经典范式
  • 基于建造者模式的信号量与理解建造者模式
  • Linux架构篇、第一章_03安装部署nginx
  • 第二十周:项目开发中遇到的相关问题(一)
  • 深入理解 MyBatis 代理机制
  • 使用mybatis实例类和MySQL表的字段不一致怎么办
  • 软件测试概念
  • 本地大模型编程实战(32)用websocket显示大模型的流式输出
  • smss源代码分析之smss!SmpLoadSubSystemsForMuSession函数分析加载csrss.exe
  • 全感官交互革命:当 AI 大模型学会 “看、听、说、创”
  • 滑动窗口leetcode 209和76
  • rabbitMQ如何确保消息不会丢失
  • [学成在线]22-自动部署项目
  • 【Git】万字详解 Git 的原理与使用(上)
  • 精益数据分析(37/126):深度剖析SaaS模式下的参与度与流失率指标
  • STM32——GPIO
  • AI 生成内容的版权困境:法律、技术与伦理的三重挑战
  • patch命令在代码管理中的应用