forked from pymumu/smartdns
-
Notifications
You must be signed in to change notification settings - Fork 11
通过使用本地源的方法为将smartdns集成到openwrt固件内
PikuZheng edited this page Sep 8, 2022
·
11 revisions
- 建一个本地源文件夹,比如我的是 localsource
- 在本地源文件夹内建两个子文件夹,分别命名为 smartdns 和 luci-app-smartdns
- 复制 smartdns 项目中 package/openwrt/ 内所有文件和子文件夹到 localsource/smartdns/
- 复制 smartdns 项目中的 /src/ 内所有文件和子文件夹到 localsource/smartdns/src/
- 复制 smartdns 项目中 package/luci-compat/files/luci/ 内所有文件和子文件夹到 localsource/luci-app-smartdns/luasrc/ 复制 smartdns 项目中 package/luci-compat/files/etc/ 内所有文件和子文件夹到 localsource/luci-app-smartdns/root/etc/ 复制 smartdns 项目中 package/luci-compat/control/ 内所有文件和子文件夹到 localsource/luci-app-smartdns/control/ (此处也可直接引用 luci-app-smartdns 项目 lede 分支文件)
- 复制 luci-app-smartdns 项目 lede 分支中的 Makefile 文件到 localsource/luci-app-smartdns/
此时 localsource 文件夹结构如下(以下只显示第一层子文件夹和文件,其他省略;其中带<>的表示文件夹,其他为文件):
root@localhost:~/localsource# tree -L 2
.
├── <luci-app-smartdns>
│ ├── <control>
│ ├── <luasrc>
│ ├── Makefile
│ └── <root>
└── <smartdns>
├── address.conf
├── blacklist-ip.conf
├── <control>
├── custom.conf
├── debian-binary
├── <files>
├── Makefile
├── make.sh
└── <src>
-
修改 localsource/smartdns/Makefile 文件和 localsource/luci-app-smartdns/Makefile 文件中的版本号: 修改 PKG_VERSION:= 改为新版本号(比如我当前的自编号为1.2022.v37.2.10
-
到openwrt项目文件夹,修改feeds.conf(如果没有这个文件就复制feeds.conf.default 到 feeds.conf),在最后一行增加
src-link custom /root/localsource
其中 /root/localsource 为本地源文件夹的绝对路径 -
执行
./scripts/feeds update -a && ./scripts/feeds install -a
./scripts/feeds uninstall smartdns luci-app-smartdns
./scripts/feeds install -f -p custom smartdns luci-app-smartdns
执行 make menuconfig 选中 luci-app-smartdns(此时会自动选中smartdns),然后正常编译即可。
为了证实安装后为最新版而不是官方仓库的文件。在自定义设置中增加
domain-set -name test -type list -file
domain-set 是 v37.2.10 新增的配置,由于缺少参数中的文件名,新版本将无法启动并在系统日志中记录配置错误形如 smartdns: process config file 'xxxxxx' failed at line xxxx.
。旧版则可以正常启动运行。