OpenWRT打补丁
openwrt 创建补丁
quilt介绍
openwrt使用quilt工具对patch进行管理,quilt其实就是一系列shell脚本组成的一个工具。
安装quilt
sudo apt install quilt -y
配置quilt
quilt使用前需要做一些配置,它的配置文件一般放~/.quiltrc或者/etc/quilt.quiltrc,你可以通过直接vim打开/usr/bin/quilt来一窥究竟。一般配置如下:
cat > ~/.quiltrc <<EOF
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="vim"
EOF
如何添加一个新补丁
添加一个新的补丁
以我近期用到的iw包为例,增加一个补丁,先要对它prepare。注意这里uqmi包是还未修改过的,补丁将来就是往它上面打。
make package/network/utils/iw/{clean,prepare} V=s QUILT=1
然后进到包对应的准备好的源码目录:
cd build_dir/target-mips_24kc_musl-1.1.16/iw-4.9/
此时的源码是最原始的,可能它已经存在一些补丁了,先把已存在的补丁打上去,
quilt push -a
查看已有补丁:
quilt series
这里我的iw还没补丁,然后再在此基础上创建你自己的补丁,命令如下:
quilt new 000-iw_test_pch.patch
补丁名字有规定,因为如果包里面包含多个补丁,打补丁需要按照一定的顺序来的。
•补丁名字以数字开头,然后通过-符号链接一个简短的描述,数字和横杆-是重点
•选择的这个开头的数字必须高于已有补丁的开头数字,可以通过quilt series来查看已有补丁的
其实数字就是打补丁的顺序,因为打补丁是通过脚本来完成的,先对补丁文件排序,再逐个打上去。
创建空补丁后,接下来要把需要修改的文件与之关联。可以通过quilt add xxx来做这件事,然后你就可以编辑你要改的文件,也可以直接用quilt edit xx来添加并打开要改的文件:
quilt edit xxx
按照这种方法,把这次生成补丁需要修改的文件都修改后,使用quilt diff预览一下补丁
quilt diff
觉得没问题后,用quilt refresh将更新到补丁文件000-uqmi_test_pch.patch中
quilt refresh
回到openwrt顶层目录,更新一下包
make package/network/utils/iw/update V=s
最后重新编译这个包
makepackage/network/utils/iw/{clean,compile} package/index V=s
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律