OpenWrt自己制作补丁

  收了3个NETGEAR R6800打算重新组网配置无缝漫游,其中一个出场自带坏快,出厂时厂家配置了分区表偏移来屏蔽坏快,但是最新版的OpenWrt(21.02.1),无法读取该偏移设置,导致无法读取EEPROM中的硬件信息。开源社区中已经有人针对这个问题写了补丁,但是还没有合并到主线中,因此准备自己动手更新下补丁,并重新编译OpenWrt。这里主要参考官方的说明文档

准备环境

1
2
3
4
5
6
7
8
9
10
11
sudo apt update
sudo apt install quilt

cat << EOF > ~/.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="nano"
EOF

新建内核补丁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 准备工作目录
make target/linux/{clean,prepare} V=s QUILT=1
cd build_dir/target-*/linux-*/linux-*

# 将已有的补丁打到当前的代码中
quilt push -a

# 新建补丁
quilt new platform/303-mtd-scpart-parser.patch

# 补丁包含这些文件
quilt add drivers/mtd/parsers/Kconfig
quilt add drivers/mtd/parsers/Makefile

# 修改这些文件

# 保存补丁修改的内容
quilt refresh

# 将新的补丁从工作目录复制回代码目录
cd ../../../../
make target/linux/update package/index V=s