0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Petalinux下Patch u-boot源码

XILINX开发者社区 来源: XILINX开发者社区 2024-12-04 16:26 次阅读

本文作者:AMD 工程师Chao Zhang

在软件开发过程中我们经常遇到用 Patch 来传递和更新代码的场景。本文以一个端到端的例子来演示在 Petalinux 使用过程中,如何给 u-boot 的源码生成 Patch 并在 Petalinux 中编译。

操作系统:Ubuntu 18.04

工具:Petalinux 2020.2

开发板:ZCU102 Rev 1.0

源码:https://github.com/Xilinx/u-boot-xlnx

目标:出于演示目的,我们将修改 u-boot/cmd/bdinfo.c 文件,在 bdinfo 命令中加入一段打印,最终通过上板执行 bdinfo 命令来验证效果。

生成 Patch

首先 clone u-boot 源码到本地,切换到 Petalinux 2020.2 对应的 u-boot 分支。可从 Petalinux 2020.2 release notes

中查找对应的 u-boot 源码 branch 和 tag 信息

https://www.xilinx.com/support/answers/75775.html

接下来使用任何你喜欢的编辑器修改 u-boot/cmd/bdinfo.c 代码,在 do_bdinfo 函数体中加入最后几句打印信息,具体如下:

0635db80-ad88-11ef-93f3-92fbcf53809c.png

在 u-boot 源码目录下执行“git diff cmd/bdinfo.c > bdinfo.patch"。这个操作将在 u-boot 源码目录下生成 bdinfo.patch 文件,其内容如下:

063d82f4-ad88-11ef-93f3-92fbcf53809c.png

应用 Patch

把 Patch 文件拷贝到 Petalinux 工程下 project-spec/meta-user/recipes-bsp/u-boot/files 文件夹中。

0641bbd0-ad88-11ef-93f3-92fbcf53809c.png

编辑 u-boot-xlnx_%.bbappend,添加 SRC_URI +="

file://bdinfo.patch", 0647d240-ad88-11ef-93f3-92fbcf53809c.png

准备就绪,编译并运行

一切准备好了,接下来就是常规操作 Build Petalinux 工程并且打包 boot.bin 文件。最后上板启动 u-boot, 运行 bdinfo 命令:

0657f09e-ad88-11ef-93f3-92fbcf53809c.png

我们添加的打印信息在 Bdinfo 中打印了出来,可见 Patch 成功了!

这个简单例子演示了 Petalinux 工程 Patch 源码的完整操作。同样可参照该流程对 Kernel/FSBL 等其它源码进行patch,需要注意的地方:

1. 用来生成 Patch 的源码版本必须与 Petalinux 编译用的源码版本完全一致,否则 Patch 文件无法匹配。

2. 也可使用 Linux 的 diff 命令来生成 Patch,需要注意 Generate patch 时目标文件夹深度要与 Apply 时一致,否则 Patch 也无法匹配(参考阅读 diff 命令的 -p 选项)。

3. 修改 u-boot-xlnx_%.bbappend 文件以将 Patch 加入到 Build 过程中,注意如果 /project-spec/meta-user/recipes-bsp/u-boot 文件夹不存在的话(很有可能),可以按照该目录结构自己来创建,.bbappend 文件的作用及语法可参考 Yocto 相关文档。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 源码
    +关注

    关注

    8

    文章

    637

    浏览量

    29182
  • u-boot
    +关注

    关注

    0

    文章

    121

    浏览量

    38219
  • 命令
    +关注

    关注

    5

    文章

    681

    浏览量

    22008
  • 编辑器
    +关注

    关注

    1

    文章

    805

    浏览量

    31146

原文标题:开发者分享|如何在 Petalinux 下 Patch u-boot 源码

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    U-boot的基本介绍

    从本文开始,将陆续推送“手把手教你移植U-boot”系列文章,目标是由浅入深地讲解U-boot的工作流程、原理、配置方法和移植方法,手把手教你完成U-boot的移植工作,默认硬件开发平台为ARM,操作系统为Linux。
    发表于 07-14 16:52 2853次阅读
    <b class='flag-5'>U-boot</b>的基本介绍

    U-boot的执行流程

    本文主要讲述了U-boot的执行流程。
    发表于 07-14 16:58 692次阅读
    <b class='flag-5'>U-boot</b>的执行流程

    u-boot源码

    哪位大大有最新的u-boot源码啊,现在正在学习u-boot,想要一份源码,怎奈官方下载地址不能。谁有发一
    发表于 07-12 16:11

    U-Boot的启动及移植分析

    bootloader 开发是嵌入式系统必不可少而且十分重要的部分,U-Boot 为功能强大的bootloader 开发软件。本文详细分析了U-Boot 的启动流程,并结合其源码,阐述了U-Bo
    发表于 09-01 16:34 27次下载

    Porting U-Boot to the Control

    In this paper, the way of porting U-Boot to Control Computer Based MPC8349 will beintroduced
    发表于 01-25 15:45 13次下载

    一种在U-BOOT中嵌入千兆网络功能的方法

    一种在U-BOOT中嵌入千兆网络功能的方法摘 要:U-BOOT是一种开放源码的、用于多种嵌入式微处理器的引导加载程序,目前U-BOOT仅支持10M/100M网络功能。本文介绍了一种让
    发表于 02-05 17:38 17次下载

    u-boot的Makefile分析

    u-boot的Makefile分析 U-BOOT是一个LINUX的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。 U-
    发表于 05-17 09:16 2060次阅读

    U-Boot结构功能介绍

      U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式
    发表于 07-30 09:17 1174次阅读
    <b class='flag-5'>U-Boot</b>结构功能介绍

    u-boot简介

    U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot
    发表于 10-14 11:17 3553次阅读

    何在U-Boot中实现对Yaffs镜像的设计?

    U-Boot是目前广泛使用的嵌入式操作系统通用引导程序,具有功能丰富强大,支持多种操作系统和CPU体系,易于功能扩展和移植,源码开放等多种优点。U-Boot,全称 Universal Boot
    的头像 发表于 08-29 05:02 3717次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>U-Boot</b>中实现对Yaffs镜像的设计?

    U-Boot架构浅析

    导读:嵌入式Linux系统搭建,bootloader是必不可少的一环,而U-Boot已成嵌入式Linux事实标准。所以较为深入的分析U-Boot的设计,对于更...
    发表于 02-07 11:56 7次下载
    <b class='flag-5'>U-Boot</b>架构浅析

    u-boot中使用ethernet的方法

    KV260 petalinux BSP在u-boot device tree中disable了GEM3,也就是说ethernet在u-boot中不建议使用ethernet。
    的头像 发表于 07-21 10:25 3872次阅读

    创建自定义的u-boot命令

    为什么会有这篇文章,因为小生被u-boot源码的设计所吸引了(源码对命令的处理过程)。自定义u-boot命令属于u-boot
    的头像 发表于 08-08 14:46 1091次阅读

    Linux U-Boot开发指南

    介绍 U-Boot 的编译打包、基本配置、常用命令的使用、基本调试方法等, 为 U-BOOT 的移植及应用开发提供了基础。
    的头像 发表于 03-06 10:28 1297次阅读
    Linux <b class='flag-5'>U-Boot</b>开发指南

    u-boot armv8链接脚本

    u-boot armv8链接脚本 在进行源码分析之前,首先看看u-boot的链接脚本,通过链接脚本可以从整体了解一个u-boot的组成,并且可以在启动分析中知道某些逻辑是在完成什么工作
    的头像 发表于 12-07 11:19 644次阅读