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 AP2.4G AP5G APLAN下的子网设备要能够互相访问
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=IG210_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=IG210_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
7. 写在最后
禁止转载到CSDN !!! 其它随意,转载请注明出处
HLK-RM60 + openwrt调试的更多相关文章
- (转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)
1. libcurl 的参考文档如下 CURLOPT_HEADERFUNCTION Pass a pointer to a function that matches the following pr ...
- [转] openwrt关闭调试串口
转自: http://wiki.wrtnode.com/index.php?title=Release_UART/zh-cn 由于mt7620n只有一个UART lite接口,在原生的OpenWrt中 ...
- Openwrt 远程调试
此文已由作者吴志勐授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 本文以自己的程序WFD为例: 1,为路由器固件刷上gdbserver 在宿主端,使用make menucon ...
- (十一)tina | openwrt关闭调试串口(DEBUG UART)
//编辑以下文件 vi target/allwinner/astar-parrot/base-files/etc/inittab //不同系统文件路径注意更改 //文件内容如下,注释::askcon ...
- (转)利用libcurl获取新浪股票接口, ubuntu和openwrt实验成功(三)
1. 利用 CURLOPT_WRITEFUNCTION 设置回调函数, 利用 CURLOPT_WRITEDATA 获取数据指针 官网文档如下 CALLBACK OPTIONS CURLOPT_WRI ...
- openWrt 安装与实践
1. 先装一个编译用的环境, ubuntu 14 2. 在ubuntu里面安装svn, g++, libncurses5-dev git libssl-dev gawk, svn因为openwrt社区 ...
- CentOS_7 OpenWrt Eclipse 环境搭建与 Dr.com 开发笔记
一:内核的编译. 1,linux 编译环境的搭建与源码的准备工作 2,常用软件的安装 (make menuconfig) 3, 针对TP-Link WR740N 一些软件的openwrt 的移植 4 ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...
- OpenWRT学习笔记-1@WNDR3800
很久以前买了一台二手wndr3800 放假了刷成op可以一耍.ar71xx,芯片还比较热门. 首先是刷机,准备使用OP CC 15.05 r46767,官方稳定版.把原装系统降级到1.0.0.16,就 ...
- 转:openwrt中luci学习笔记
原文地址:openwrt中luci学习笔记 最近在学习OpenWrt,需要在OpenWrt的WEB界面增加内容,本文将讲述修改OpenWrt的过程和其中遇到的问题. 一.WEB界面开发 ...
随机推荐
- 全国产!全志T3+Logos FPGA开发板(4核ARM Cortex-A7)规格书
评估板简介 创龙科技TLT3F-EVM是一款基于全志科技T3四核ARM Cortex-A7 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核国产工业评估板,ARM Corte ...
- 工控必备!NXP i.MX 8M Mini开发板规格书资料分享,高性能低功耗!
1 核心板简介 创龙科技SOM-TLIMX8-B是一款基于NXP i.MX 8M Mini的四核ARM Cortex-A53 + 单核ARM Cortex-M4异构多核处理器设计的高端工业级核心板,A ...
- 【经验分享】全志科技官方Ubuntu16.04根文件系统镜像的替换和测试方法
本文主要基于全志A40i开发板--TLA40i-EVM,一款基于全志科技A40i处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,演示Ubuntu根文件系统镜像的替换和测试方法. 创 ...
- Vue2 整理(三):高级篇
前言 基础篇链接:https://www.cnblogs.com/xiegongzi/p/15782921.html 组件化开发篇链接:https://www.cnblogs.com/xiegongz ...
- Spring常见面试题总结
Spring是什么? Spring是一个轻量级的IoC和AOP容器框架.是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求.常见的配置方式有 ...
- SpringBoot 1.x 2.x配置文件指定服务项目名
SpringBoot版本1.x: server.context-path=/demo SpringBoot版本2.x: server.servlet.context-path=/demo
- jQuery 插件autocomplete 应用
项目中有时会用到自动补全查询,就像Google搜索框.淘宝商品搜索功能,输入汉字或字母,则以该汉字或字母开头的相关条目会显示出来供用户选择, autocomplete插件就是完成这样的功能. auto ...
- SQL_left join 和from 两个表的区别
一个是普通的联接,结果中的记录在两个表中都有.一个是左外联接,结果中的记录在A表中存在,B表中不一定有.相当于a表为主体表,b为辅助表. 例子: mysql> select * from a;+ ...
- UE5 打包DedicatedServer
UE5开发Dedicate Server直接按教程用Replicated那种蓝图开发即可. 如果打包的话,服务器端需要无界面的运行模式,不同于正常的开发,所以为了打包,这里步骤如下: 1.到githu ...
- scratch编程作品-龙年发大财
作品介绍: 龙年欢歌而来,带着满满的希望与勃勃生机.愿小虎鲸Scratch资源站激发您编程之路的无限灵感,让每一天都充满探索与创造的喜悦.在这吉祥如意的年份里,愿您的每一份耕耘都换来丰收的喜悦,每一个 ...