首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux-使用patch命令给uboot打补丁(3)

Linux-使用patch命令给uboot打补丁(3)

作者头像
诺谦
发布2018-01-03 16:07:24
发布2018-01-03 16:07:24
4.2K0
举报
文章被收录于专栏:Linux驱动Linux驱动

patch:修改文件,让用户对原文件打补丁

用法  

patch -p[剥离层级]  <[补丁文件]

打补丁示例:

u-boot-1.1.6_jz2440.patach补丁文件给u-boot-1.1.6打补丁

patch -p1  <../u-boot-1.1.6_jz2440.patach 

“p”指的是被打补丁路径,后面的数字表示去掉路径的第几部分。"1",表示去掉第1个

“<”指的是u-boot-1.1.6_jz2440.patach补丁文件位置

“../”表示返回上一个目录,如下图所示,这两个文件在同一目录下,当我们在u-boot-1.1.6目录下,就需要“../”:

1.如下图,先打开u-boot-1.1.6_jz2440.patach文件查看diff比较的目录位置,发现补丁文件是以u-boot-1.1.6目录开头的

2.所以在u-boot-1.1.6目录下时,打补丁使用patch -p1  <../u-boot-1.1.6_jz2440.patach

因为补丁文件在system目录下,所以使用"../"返回到system上一目录。

因为当前已经在u-boot-1.1.6目录下,所以使用p1删除补丁文件中第一个已经重复的目录名。

3:补丁打好后,在u-boot-1.1.6目录下使用make命令开始配置工程,

3.1 make 100ask24x0_config                                    //配置100ask

3.2 make                                                                //编译工程,并生成u-boot.bin文件,如下图所示

当要取消make编译时,在编译期间输入 make clean即可

4:通过FTP将编译好的bin文件拷贝到Windows上,然后通过oflash下载在nor flash中

 补充:

Patch文件说明:

代码语言:javascript
复制
diff -urN u-boot-1.1.6/common/cmd_bootm.c u-boot-1.1.6_jz2440/common/cmd_bootm.c   //蓝色代表原文件名以及文件地址,红色代表打上补丁后的新文件名以及地址
--- u-boot-1.1.6/common/cmd_bootm.c	2006-11-02 22:15:01.000000000 +0800
+++ u-boot-1.1.6_jz2440/common/cmd_bootm.c	2010-11-26 12:54:38.150155640 +0800
                                            //--- 对文件里代码删减     +++ 对文件里代码添加
@@ -318,5 +318,5 @@                         //-318,5 表示在原文件里第318行内有删减,接下来显示5段。+318,5同样类似
                                                          //第318行,第一段
	switch (hdr->ih_comp) {                           //第319行,第二段
 	case IH_COMP_NONE:                                //第320行,第三段
-		if(ntohl(hdr->ih_load) == addr) {         //第321行,删减第四段
+		if(ntohl(hdr->ih_load) == data) {         //第322行,增加第五段
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档