准备工作:
1、.config 文件
2、软件的feed 源
3、github账号
.config 文件
.config 文件就是openwrt源码的配置文件。里面包含了openwrt的所有设置,如运行的平台、系统的分区大小、生成的镜像、包含的软件等等。
该文件需要配置完源码才会生成。需要在我们自己的服务器上面下载源码并配置。一般都是在国外的服务器上面执行。推荐 Debian 11 或 Ubuntu LTS。
这里用的是 lede 的源码,具体的步骤参考:
https://github.com/coolsnowwolf/lede
注意在第三步,在更新 feed之前,把你想要安装的软件源写进 feeds.conf.default
这个文件里。可参考例子。之后再执行feed文件的拉取和更新。最后执行 make menuconfig
配置好软件,生成 .config 文件,下载下来备用。
比较花时间的是 make menuconfig
这一个配置的步骤。执行完命令之后会进去一个蓝色的复杂的界面。用空格键 选中,回车键 确定。注意查看底部选项,有 select 、exit 等等。
注意 空格键选中后会有3个选项,M 、、空白。M 表示编译但不安装。 表示安装在openwrt里。空白就是不编译不安装,取消的意思。这里我们需要的软件一律用 * 选中。
需要启用的功能与软件根据自身需求。感觉不能选太多,容易产生问题,增加编译时间,编译固件过大,软件还容易冲突。比如 Dnsmasq 就与 Dnsmasq-full 冲突。。。
然后,感觉选项带有 mod 的慎选,编译过容易报错。
如果配置文件有选择软件,但实际生成的固件没有,那么要检查下编译平台的 feed 配置。
默认 lede 生成的固件,运行平台是 x86_64。如果是其他平台要在前面的选项选择。
这里主要做下面的调整:
1、生成 vmdk 镜像 (esxi需要)
CONFIG_VMDK_IMAGES=y
2、启用固件压缩
CONFIG_TARGET_IMAGES_GZIP=y
3、调整 内核 分区大小 (似乎不是很有必要但这里调整了)
CONFIG_TARGET_KERNEL_PARTSIZE=64
4、增大 软件安装空间 (这里不能调得太大,上次调整为5G,github直接报错显示空间不足)
CONFIG_TARGET_ROOTFS_PARTSIZE=2048
5、取消 迅雷快鸟 (直接在生成的.config注释掉 xlnetacc 相关的条目)
6、增加几个主题 ( luci-theme 相关的选上)
7、增加 passwall、ssr plus ,附带的模块全部选上
8、增加 frps 、frpc
其他均保持默认。
github 云编译部分
主要用的 p3terx 的项目:
https://github.com/P3TERX/Actions-OpenWrt
教程:https://p3terx.com/archives/build-openwrt-with-github-actions.html
根据教程一步步来就可以。非常感谢作者。已点支持。
注意这里因为要添加软件,所以在开始编译前,需要在 diy-part1.sh 这个脚本添加下面3条命令(以ssrp+为例):
echo 'src-git helloworld https://github.com/fw876/helloworld' >>feeds.conf.default
就是将 ssr plus 的源添加到github编译环境中的feeds文件中。添加完进行编译,等2-3小时左右就能下载固件了。
如有报错,请查看报错日志以便分析。