一直在使用lede的openwrt固件作为路由器的固件,由于版本更新问题,有软件在老版的lede固件中不存在,因此就想着自己编译只含有自己需要的软件的k2斐讯路由器的固件。正好github actions允许github免费用户可以使用github的云服务器进行代码的编译,因此这里把使用github actions编译k2路由器固件的过程记录下来。

  1. fork lede代码仓库
  2. 修改github actions的编译文件修改
  3. 编译并下载编译好的lede固件
  4. 添加trojan软件的支持

fork lede代码仓库

github的使用这里就不说了,需要用到的两个代码库,一个是lede大神的lede源码, 这里需要fork一下官方代码到自己的库。 fork_lede 一个是就是KFERMercer为了方便大家编译创建的openwrt-ci(https://github.com/KFERMercer/OpenWrt-CI.git),这里可以直接看他的成品的actions代码复制过来用就好了。

修改github actions的编译文件修改

在fork好lede源码之后,进入自己仓库的lede的actions里面 github_actions 然后允许actions运行, enable_actions

在允许之后我们就可以编辑actions配置文件了,文件在lede/.github/workflows/下的openwrt-ci.yml文件,我们从openwrt-ci的配置文件复制过来,实例文件地址配置例子。首先在github编辑lede项目下.github/workflows/openwrt-ci.yml。 edit_yml 将示例文件内容复制粘贴替换openwrt-ci.yml原有内容,注意,这里需要修改项目分支位master,否则是无法保存内容的。 修改成如下所示 yml_branch

点击commit直接在网页上确认修改

commit_change

如果上面没有修改branch分支,或者缩进不规范的话,就会出现这种情况,无法确认提交。

commit_change_fail

编译并下载编译好的lede固件

上面保存好正确编辑的yml文件后,actions就会开始编译了,点击actions就可以看到了 actions_compile

进入刚刚编辑的actions配置文件,进入build查看编译进度

actions_compile_log

使用github的云编译我这个花了时间,大家把它放着几个小时后再来查看并下载编译好的固件吧。

进入actions,查看并下载编译好的固件。

compile_complete

下载后解压查看

添加trojan软件的支持

由于本人想要把trojan集成到路由器固件中,因此不得不在本地运行编译配置命令配置好.config文件,然后搜索到相关的内容再来进行yml文件的替换,这里直接把trojan集成到ss–r-plus中和trojan软件包的几项配置单独列出来,以斐讯路由器k2为例, ’’’ bash CONFIG_TARGET_ramips=y CONFIG_TARGET_ramips_mt7620=y CONFIG_TARGET_ramips_mt7620_DEVICE_phicomm_psg1208=y

      CONFIG_PACKAGE_luci-app-ssr-plus=y
      CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray_plugin=y
      CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray=y
      CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Trojan=y

      CONFIG_PACKAGE_trojan=y

’’' 替换相应内容就好。 但是这样编译出来的固件是没有sysupgrade用于升级 固件的,在路由器上就没法直接升级固件了。那我想要在路由器上直接上传固件升级的话,实在没搜索到什么好 的办法,我就在本地使用 make menuconfig命令生成.config文件,再来替换yml中配置部分。 你要使用我的配置文件的话,就直接点击下载

这里附上编译好的k2固件打包,在ss-r-plus中已经集成了trojan(本人觉得非常好用的软件),去除了一些用不到的ftp之类的软件 ,下载好后是这样的

firmware_list 固件是bin,package下是ipk软件,如果需要添加软件直接上传到路由器就可以了。

最后附上本人编译的k2p固件 压缩包,直接加压缩在文件加中找到*sysupgrade.bin 文件就是用来升级的固件。

固件下载地址

参考内容: 面向小白的Github_Action使用workflow自动编译lean_openwrt教程