首先感谢Lean大佬提供源码,

https://github.com/coolsnowwolf/lede​github.com/coolsnowwolf/lede
再感谢一下KFERMercer大佬提供的自动编译脚本及教程。
https://github.com/KFERMercer/OpenWrt-CI​github.com/KFERMercer/OpenWrt-CI

本教程面向于想自己编译Lean_Openwrt的全体同胞。
我从最基础的讲起,如果你已经有GitHub账号,请跳过第0个步骤

0.创建一个GitHub账号**。

首先打开https://github.com/ ,按照下图进行输入:

输入验证码,然后点击蓝色的按钮【Next:Select a Plan】

然后点击【Choose Free】

然后按照下图随便选一些选项:

然后随便填点文字,点击【Complete setup】

然后网页会提示:Please verify your email address(请检查你的邮件地址)

打开邮箱,查收GitHub发来的邮件。

点击【Verify email address】

输入邮箱和密码,点击【Sign in】

1.进行默认配置的编译**

账号创建完成,需要同步Lean的源代码。

在网页上方的搜索框里面输入coolsnowwolf/lede

点击第一个结果

然后点击【Fork】按钮

出现如下的提示,意思是等待片刻:

然后点击【Action】选项卡

网页会提示“Workflows在fork的仓库中无法运行”,接下来点击绿色的按钮

【I understand my workflows, go ahead and run them】

然后点击进入Code选项卡:

点击.github/workflows

点击openwrt-ci.yml

点击编辑按钮进入编辑页面

第一次编辑此文档,即可触发GitHub Action的自动编译。

将左侧编辑栏的push、branches和- master前面的#删除,千万不要删掉空格。

然后点击右侧的【Start commit】,再点击【Commit changes】

此时点击Action选项卡,即可看到已经自动开始编译。

黄色为正在编译,绿色为编译完成,红色为编译失败。

点击openwrt-ci,即可看到编译过程。

编译完成之后这里会显示成下图这样,按下图指示即可下载编译好的固件。

2.使用自定义配置进行编译**

首先我们打开Code选项卡,找到.github/workflows/openwrt-ci-yml这个文件,点击编辑:

注意事项:

①需要DIY哪个功能,就将cat、CONFIG、EOF前面的#号和空格删掉。

②去掉#号之后,cat、CONFIG、以及EOF要和上面的#号对齐

③编辑之后,需要点击【Start commit】和【Commit changes】提交修改。

④新人尽量每次修改只改5行以内代码,并在提交代码时写好修改记录。

⑤可以添加代码库中有,但是openwrt-ci.yml中没有的插件,如

CONFIG_PACKAGE_luci-app-uhttpd=y

⑥如果一个luci-app需要多个依赖,只需要填写该luci-app即可,

其余依赖包会在编译时自动勾选。

⑦如果需要修改固件大小,可以添加如下代码:

          # 设置固件大小:
          cat >> .config <<EOF
          CONFIG_TARGET_KERNEL_PARTSIZE=30
          CONFIG_TARGET_ROOTFS_PARTSIZE=400
          EOF

其中:30代表固件中内核分区大小,400代表固件中ROOTFS分区大小

⑧修改完代码之后,需要检查每组代码是否以cat » .config «EOF开头,并以EOF结尾。

3.使用涡轮赠雕法进行自动编译**

介绍如何在源码中增加lean仓库里面没有的代码。

此教程待定。