全志Tian系统git patch失败的解决方法

2 篇文章 1 订阅
1 篇文章 0 订阅

       在使用全志Tina系统中,就发现在pack中有很多原文件夹中只有patch和makefile,这就导致我们无法修改源码:在out中找到源码修改后,只要make,就会被原始的代码覆盖。Tina是基于openwrt修改,那我们就参考openwrt,把我们修改的代码做成patch,就可以解决问题了。很可惜,如果用git生成的补丁,make会报错,提示patch错误。我目前确定,openwrt中确使用quilt工具制作补丁。

一:安装quilt

sudo apt-get install quilt

然后,gedit ~/.quiltrc,在home下新建.quiltrc文件,内容如下

QUILT_DIFF_ARGS="--no-timestamps --no-index -p ab --color=auto"
QUILT_REFRESH_ARGS="--no-timestamps --no-index -p ab"
QUILT_SERIES_ARGS="--color=auto"
QUILT_PATCH_OPTS="--unified"
QUILT_DIFF_OPTS="-p"
EDITOR="vi"

提醒,这个文件十分重要,否则后面运行quilt报错,都是和这个配置文件有关。特别说明,最后EDITOR是表示编辑用vi,但是用下面介绍的方法,是用windows的UE来处理。

二、正常编译Tina后,在out中把我们要用的某个源码文件夹拷贝到其他地方。注意,这个源码,是已经打好了pack中对应patch。

三、关键来了。

我们查看pack中对应的源码文件夹,一般有00x-fix-xxxx.patch文件,00x是patch的序号,我们新的patch文件名,序号要比00x大。之前是006-fix-xxx,我们新的patch就要是007-fix-xxx.patch。知道这个后,我们进入到拷贝出来的源码中,

1:创建patch:quilt new 007-fix-test.patch

2:这个把你可能会修改的文件加入到patch中,如我会修改src/test.c:

    quilt add src/test.c

 然后,用我们熟悉的编辑工具编辑test文件。

3:生成patch

quilt refresh

在当前文件下,我们可以看到多出一个文件夹patch,里面就是新的007patch了。我们再把这个patch拷贝到pack对应的源码文件夹中,make,就会自动生成我们修改后的代码了。

你可以反复修改这个文件,重复再执行quilt refresh即可,程序会继续生成这个007的patch。

如果有多个文件,请多次执行quilt add即可。

我的这个流程,和网上的大部分文章的不同是在第2点上,我是用windows的编辑器来修改文件的。

以上测试验证,方法简单可行。如有问题,请检查.quiltrc。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值