1、前言
配置完Openwrt后,首次编译时会在编译过程中下载各种源码包,而且解压这些源码包并打上patch。
需要对源码进行修改时,可直接修改源码并重新编译,但clean后再次编译时会再次解压源码包,以至所做
的修改全部丢失。本文参考Openwrt官网提供的patch管理方法,实践操作并记录linux kernel及package源
码修改并生成patch的方法。
2、环境及准备工作
2.1 开发环境
linux发行版:ubuntu12.04LTS
OpenWrt版本:trunk-DESIGNATED DRIVER (Bleeding Edge, r49274)(linux kernel 4.4.7)
硬件:mt7620a openwrt开发板
2.2 准备工作
patch的管理工具使用quilt,在ubuntu下使用apt-get intallquilt安装quilt工具。
为了让quilt创建适合OpenWrt格式的patch,需要在本地home目录下创建quilt的配置文件.quiltrc,该配
置文件包含diff和patch的选项。使用如下命令可创建quilt的配置文件:
cat> ~/.quiltrc <
QUILT_DIFF_ARGS="--no-timestamps--no-index -pab --color=auto"
QUILT_REFRESH_ARGS="--no-timestamps--no-index -pab"
QUILT_PATCH_OPTS="--unified"
QUILT_DIFF_OPTS="-p"
EDITOR="vim"
EOF
EDITOR指定编辑时所用的编辑器,该处使用vim。
3、package的patch方法
3.1 修改内容
package的patch生成方法以修改atftp为例进行介绍,修改内容为在atftp的main函数开始处加入一条打印
信息。(进行该操作之前,需要在make menuconfig时选择atftp包),没有则执行下面命令:
./scripts/feeds update -a
./scripts/feeds install -a
3.2 pactch生成步骤
1. 准备atftp源码
make package/feeds/packages/atftp/{clean,prepare} V=s QUILT=1
此命令会解压atftp的源码包并准备patch文件(如果有),通过打印信息可获取解压到的目录路径。
2.进入atftp源码目录
cd build_dir/target-mipsel_24kec+dsp_musl-1.1.14/atftp-0.7.1
3.安装所有已有patch
quilt push -a
4.创建新patch
qu