交叉编译OpenWRT系统及MentoHust插件进行锐捷认证
前言:关于OpenWRT编译的主流方法
关于本文
本文主打openwrt的编译过程,难度可能较高,但自定义化程度高,能学习到的东西更多
过两天我会更新一期刷固件的教程,更适合新手
关于编译openwrt
由于OpenWRT是基于linux开发的,所以开发及编译的过程都需要在linux的环境下进行
此外,以下所有方法都要在能够正常访问外网的情况下进行,所以,解决网络问题是一个关键。
- 本地编译(不推荐)
- Linux系统:现成的系统环境,只需要解决网络问题即可
- Windows系统:通过WSL2的Linux子系统来搭建编译环境
- MacOS系统:由于作者家境贫寒买不起Mac,请读者们自行百度
- 云编译(推荐,更容易解决网络问题)
- 海外服务器:在腾讯云或者阿里云租几个小时的按量付费或者竞价实例的香港或者其他的海外主机,物理翻墙,优点:性能更强编译更快,缺点:需要花钱,虽然只是一两块钱就够了
- GitHubAction编译:通过GitHubAction提供的虚拟机来编译,用的是微软云,也是物理翻墙,优点:完全免费,缺点:CPU核数少性能不那么强,但也说得过去
这里我选择腾讯香港云,国内连接服务器较为稳定,又能够很好的解决网络问题
第一步:租用服务器并配置环境
1.1租用云服务器
这里我们以腾讯云为例,在 云产品 –> 云服务器 中,创建一个香港实例,具体流程可以看图自行意会,本部分过几天将会分离出来单独出一篇文章以保证本文的简洁。
1.2 登录服务器
在服务器页面点击登录,之后就进到腾讯云提供的在线终端
1.3 配置环境
由于版本变化等因素,要用到的环境也有可能变化,如果环境有问题,请参考[OpenWrt Wiki] Build system setup
1 |
|
第二步:拉取代码
2.1 拉取代码
以下仓库各选其一克隆到服务器即可
官方仓库
1 |
|
github镜像仓库
1 |
|
gitee镜像仓库
1 |
|
成功示例:
2.2 依赖更新
进入到openwrt文件夹中
1 |
|
依次执行以下语句
1 |
|
1 |
|
如果全部都是ok则代表一切正常
在这里,我遇到了一个问题,缺少了一个依赖,可以用类似下面的方法解决
1 |
|
2.3 加入一些我们想要用到的插件或者主题
mentohust插件
1 |
|
argon主题
1 |
|
第三步:编译固件
3.1 找到我们路由器对应的cpu架构和具体型号
这是官方提供的参考:[[OpenWrt Wiki] Table of Hardware: Firmware downloads](https://openwrt.org/toh/views/toh_fwdownload?dataflt[0]=supported current rel_%3D22.03.2)
可以在里面搜索相应的路由器,这里我以AX6s为例
3.2 配置
然后在openwrt文件夹中执行以下命令进入编译菜单
1 |
|
ESC
按两次可以返回上一级,回车可以选中当前行
3.3 在配置菜单中选择我们的目标平台
选好之后效果如图所示
然后勾选SDK选项,因为我们这里是交叉编译
3.4 配置插件和主题
3.4.1 libcap环境,是mentohust依赖
3.4.2 argon主题
3.4.3 Luci 即openwrt的ui界面
3.4.4 语言:中文
3.4.5 MentoHust插件
3.5 保存配置文件
一直按ESC
退到最后,然后选择Yes
按下回车键即可保存配置
3.6 开始编译
执行
1 |
|
开始编译
其中-j后面的参数表示的是线程数,可以设成CPU核心数量或者内存的一般,一般是没问题的
如果出了问题,将数字改小,实在不放心,就用1个线程,如果还不行,请检查环境或者网络
这个过程可能要一两个小时或更久,以后每次编译的时间会缩短
编译成功后,如下图所示
我们可以看到编译后的bin文件
第四步:下载编译好的固件并刷入路由器
4.1 下载固件
在本机用scp命令将服务器上的固件下载下来,这里我直接下载整个targets文件夹
4.2 刷入测试版固件
4.3 获取root密码
在这个网站中,输入sn码即可算出root密码:Xiaomi Router Developer Guide & Tools (miwifi.dev)
将root密码保存下来备用
4.4 Telnet开启ssh
成功连入后,执行下列命令打开ssh
1 |
|
4.5 上传固件并刷入openwrt临时固件
连接成功后如上图所示
将factory.bin文件拖入左侧的tmp文件夹中即可自动上传
执行以下命令刷入临时固件factory.bin
1 |
|
蓝灯常量后,刷入成功
刷入成功后,ip地址会变为10.0.0.1
4.5 上传正式版固件
刷入成功后,ip地址会变为192.168.1.1
4.6 修改管理员密码
第五步:锐捷认证并测试
4.1 帮助文档
用mentohust -h
命令查看帮助文档
4.2 尝试认证
执行
1 |
|
在显示日志的情况下查看是否能够正常发送心跳包
如果正常,ctrl + c
先结束进程
4.3 后台运行
然后再执行
1 |
|
注意最后是3不再是0,此时,mentohus将会在后台运行
4.4 测试能否上网
然后我们再尝试ping百度
1 |
|
测试是否正常
其他配置
此外,我们还可以配置开机自启mentohust、安装其他有用的插件来充分利用路由器,感兴趣的同学还可以试着多拨,如果想学的人多可以考虑更新一期多拨教程