一、编译固件需要的代码

https://github.com/chongshengB/Padavan-build
https://github.com/hanwckf/rt-n56u

直接fork两个代码库到自己的仓库中

第一个代码库是云编译padavan的脚本文件

第二个代码库是padavan的源代码仓库

之后的所有操作在fork过来的仓库中进行

二、修改云编译脚本

进入Padavan-build仓库的workflow文件夹里,修改build-padavan.yml

修改clone的仓库地址和路由器型号,路由器型号名称在rt-n56u仓库的/trunk/config/templates中可以找到。

修改clone的仓库地址和路由器型号

删除所有插件配置,所有夹在#######中间的关于自定义插件和功能的代码都删掉

删除所有插件配置1 删除所有插件配置2 删除所有插件配置3

修改完直接commit即可

三、修改机型配置

进入rt-n56u仓库中

定位到/trunk/config/templates,打开自己的路由器型号配置文件,进行修改

自定义padavan配置1

原则上来说所有配置都可以不启用,这样就能得到一个相对纯净的固件,减少路由器运行时的内存占用。有些配置是看机型启用的,比如USB设置,没有USB接口的路由器启用配置之后也无法生效。

定位到/trunk/user/shared/defaults.h文件,进行修改

自定义padavan配置2

在这个文件中可以自定义管理员名称及密码、默认LAN地址、默认WiFi名称及密码、默认NTP服务器等设置。

修改自定义LAN地址时,需要同时修改底下的DHCP地址分配

修改之后的参考代码如下:

#ifndef _defaults_h_
#define _defaults_h_
#include #define SYS_SHELL		"/bin/sh"
#define SYS_EXEC_PATH		"/usr/sbin:/usr/bin:/sbin:/bin"
#define SYS_EXEC_PATH_OPT	"/opt/sbin:/opt/bin:/usr/sbin:/usr/bin:/sbin:/bin"
#define SYS_HOME_PATH_ROOT	"/home/admin"
#define SYS_USER_ROOT		"admin"
#define SYS_GROUP_ROOT		"root"
#define SYS_USER_NOBODY		"nobody"
#define SYS_GROUP_NOGROUP	"nogroup"
#define DEF_LAN_ADDR		"192.168.2.1"
#define DEF_LAN_DHCP_BEG	"192.168.2.2"
#define DEF_LAN_DHCP_END	"192.168.2.254"
#define DEF_LAN_MASK		"255.255.255.0"
#define DEF_WLAN_2G_CC		"CN"
#define DEF_WLAN_5G_CC		"CN"
#define DEF_WLAN_2G_SSID	"R2100-2G"
#define DEF_WLAN_5G_SSID	"R2100-5G"
#define DEF_WLAN_2G_GSSID	"GUEST-2G"
#define DEF_WLAN_5G_GSSID	"GUEST-5G"
#define DEF_WLAN_2G_PSK		"xiaomiac2100"
#define DEF_WLAN_5G_PSK		"xiaomiac2100"
#define DEF_ROOT_PASSWORD	"xiaomiac2100admin"
#define DEF_SMB_WORKGROUP	"WORKGROUP"
#define DEF_TIMEZONE		"CST-8"
#define DEF_NTP_SERVER0		"ntp.ntsc.ac.cn"
#define DEF_NTP_SERVER1		"time.nist.gov"
#define DEF_HTTPS_CIPH_LIST	"DH+AESGCM:DH+AES256:DH+AES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!MD5:!DSS"
#endif

修改完之后commit即可

四、利用GitHub Action编译固件

回到padavan-build仓库,新建一个release

release title和tag可以随便填写,之后push release

新建release

点击仓库中的Action一栏会出现如图的提示

启用workflow

启用即可,点击右上角的star按钮就会进入编译状态,star点击一次即可,再次进入action就能看到正在编译的padavan项目

building padavan 1

整个流程全自动编译,无需人工干预,用时几分钟到十几分钟不等。编译过程不报错的话,生成的padavan固件一般都能稳定运行。

building padavan 2

编译完成之后,点击页面的summary就能找到生成的padavan固件

padavan package
https://www.right.com.cn/forum/thread-1673645-1-1.html
https://my.oschina.net/u/4000302/blog/3038759