HLK-RM60 + openwrt调试
1. 简介
-
HLK-RM60官网
-
采用联发科SOC,
MT7621/MT7905/MT7975
-
实际上采购的是
MT7621
,NOR Flash
版本(注意:固件烧录时要选择NOR Flash
对应的镜像,而不是NAND Flash
) -
128MB RAM + 16MB Flash(只有16MB Flash, openwrt二次开发时注意这个限制)
2. 功能需求
-
将其下挂在我司的聚合路由器下,作为一个子网的交换机使用
-
同时提供
2.4G AP
和5G AP
-
2.4G AP
5G AP
LAN
下的子网设备要能够互相访问
3. 调试串口
-
调试串口使用
TX1/RX1
,支持可变波特率,就使用常见的115200
吧
4. 固件定制
4.1 获取SDK
-
gitee
地址: -
master
分支 -
提交日期:
2024-03-01
, commit id :24064348b400f24e5ac4d38262afb1feca4c210b
4.2 编译准备
- 编译环境
Ubuntu 16.04
- 安装依赖
$ sudo apt-get install -y \ make \ cmake \ gawk \ ninja \ g++ \ gcc \ libncurses5-dev \ zlib1g-dev \ bison \ flex \ unzip \ autoconf \ gettext \ binutils \ patch \ bzip2 \ libz-dev \ asciidoc \ subversion \ quilt
- 解压
$ unzip wifi6-sdk-master.zip
- 进入SDK源码目录
$ cd wifi6-sdk-master/mtk-openwrt-lede-4.2.0.0/
4.3 配置成交换机模式
-
在源码根目录下创建一个
files/etc/config
目录
-
在
files/etc/config
下创建文件network
,用来将RM60上的所有网口都放到网桥br-lan
中,即将其配置成交换机模式,默认管理IP为192.168.4.254
,文件内容如下:config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config globals 'globals' option ula_prefix 'fda1:7234:8df5::/48' config interface 'lan' option type 'bridge' option proto 'static' option ipaddr '192.168.4.254' option netmask '255.255.255.0' option ip6assign '60' option _orig_ifname 'eth0 ra0 rax0' option _orig_bridge 'true' option ifname 'apcli0 apclix0 eth0 eth1 ra0 rax0' config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '1' option ports '0 1 2 3 6' config switch_vlan option device 'switch0' option vlan '2' option ports '4 5'
4.4 开启SSH
- 在
files/etc/config
下创建文件dropbear
,用来开启SSH,内容如下config dropbear option Port '22' option GatewayPorts 'on' option PasswordAuth 'on'
4.5 关闭DHCP服务
-
需要关闭RM60的DHCP服务,子网设备的IP由上一级路由器分配
-
在
files/etc/config
下创建文件dhcp
, 用来关闭DHCP服务,内容如下config dnsmasq option domainneeded '1' option boguspriv '1' option filterwin2k '0' option localise_queries '1' option rebind_protection '1' option rebind_localhost '1' option local '/lan/' option domain 'lan' option expandhosts '1' option nonegcache '0' option authoritative '1' option readethers '1' option leasefile '/tmp/dhcp.leases' option resolvfile '/tmp/resolv.conf.auto' option localservice '1' config dhcp 'lan' option interface 'lan' option dhcpv6 'server' option ra 'server' option ignore '1' option ra_management '1' config dhcp 'wan' option interface 'wan' option ignore '1' config odhcpd 'odhcpd' option maindhcp '0' option leasefile '/tmp/hosts/odhcpd' option leasetrigger '/usr/sbin/odhcpd-update'
4.6 配置AP
- AP的默认配置,后续可以通过web或配置文件修改
4.6.1 5G AP
-
5G AP
对应的配置文件路径:package/mtk/drivers/wifi-profile/files/mt7915/mt7915.dbdc.b1.dat
-
修改如下条目,注意是修改,不是添加
(tips: #后边的注释不要添加到文件中)
SSID1=AP_5G # AP名称 EncrypType=AES # 加密方式AES AuthMode=WPAPSKWPA2PSK # 认证方式 WPAPSK1=12345678 # 密码 RekeyMethod=TIME
4.6.2 2.4G AP
-
2.4G AP
对应的配置文件为:package/mtk/drivers/wifi-profile/files/mt7915/mt7915.dbdc.b0.dat
-
修改如下条目,注意是修改,不是添加
(tips: #后边的注释不要添加到文件中)
SSID1=AP_2.4G # AP名称 EncrypType=AES # 加密方式AES AuthMode=WPAPSKWPA2PSK # 认证方式 WPAPSK1=12345678 # 密码 RekeyMethod=TIME
4.6.2 禁止SDK修改AP相关的配置文件
-
SDK中有一个脚本,在第一次烧录固件时会修改用户自定义的配置文件,奇葩!既然你这个SDK已经提供了默认的配置文件,为啥子还要再修改一次呢?为了排查这个问题,浪费了大量时间!!!
-
脚本路径:
mtk-openwrt-lede-4.2.0.0/package/base-files/files/bin/config_generate
-
注释该脚本中的如下内容
4.7 增加一个VERSION文件
-
在
files/etc/config
下创建一个文件VERSION
,用来记录一些注意事项,比如固件编译/发布时间,注意事项等 -
这里先简单将固件修改的日期写入
VERSION
文件中mtk-openwrt-lede-4.2.0.0$ date > files/etc/config/VERSION
4.8 web页面修改成中文
-
进入
hlk_build
目录,进行menuconfig
配置$ cd hlk_build $ hlk_build$ ./build.sh RM60 menuconfig
-
选中
Chinese
和Enlish
-
修
package/luci/modules/luci-base/root/etc/config/luci
,如下图
4.9 生成交叉编译工具链
menuconfig
菜单中选中如下项
4.10 固件编译
-
进入
hlk_build
目录wifi6-sdk-master$ cd mtk-openwrt-lede-4.2.0.0/hlk_build/
-
执行
build.sh
,开始编译hlk_build$ ./build.sh RM60 all
-
编译输出路径
bin/targets/ramips/mt7621/
-
lede-ramips-mt7621-mt7621-rfb-ax-nor-squashfs-sysupgrade.bin
就是编译得到的固件 -
lede-toolchain-ramips-mt7621_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.bz2
生成的交叉编译工具链
-
5. 固件烧录
5.1 烧录原理
- 烧录过程总的来说就是在RM60的
U-Boot
启动过程中,会到一个tftp服务器查找固件,找到后就会拉取固件进行升级,因此要保证RM60能够访问指定的tftp服务器
5.2 固件烧录
-
tftpd
下载路径 -
将固件和
tftpd
放到同一个目录下
-
电脑连接模块
lan
或者wan
口,设置静态IP(下图中的IP不对,根据实际情况进行设置,要确保RM60和电脑网络互通)
-
将调试串口接到电脑上,参考
3. 调试串口
-
上电开机,
U-Boot
打印如下,选择2
进入固件升级 -
选择
0
,设置RM60 IP和tftpd服务器的IP,填写固件名称
-
如果中途输入错误的话,直接
Ctrl + C
进入到命令行,输入boot
指令回到上一级页面,重新输入 -
回车,开始升级
6. 默认用户名密码
- 用户名:
root
- 密 码:
admin