1. 简介

  • HLK-RM60官网

    https://www.hlktech.com/en/Goods-176.html

  • 采用联发科SOC, MT7621/MT7905/MT7975

  • 实际上采购的是MT7621, NOR Flash版本(注意:固件烧录时要选择NOR Flash对应的镜像,而不是NAND Flash)

  • 128MB RAM + 16MB Flash(只有16MB Flash, openwrt二次开发时注意这个限制)

2. 功能需求

  • 将其下挂在我司的聚合路由器下,作为一个子网的交换机使用

  • 同时提供2.4G AP5G AP

  • 2.4G AP 5G AP LAN下的子网设备要能够互相访问

3. 调试串口

  • 调试串口使用TX1/RX1,支持可变波特率,就使用常见的115200

4. 固件定制

4.1 获取SDK

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
  • 选中ChineseEnlish

  • 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下载路径

    https://bitbucket.org/phjounin/tftpd64/downloads/

  • 将固件和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调试的更多相关文章

  1. (转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)

    1. libcurl 的参考文档如下 CURLOPT_HEADERFUNCTION Pass a pointer to a function that matches the following pr ...

  2. [转] openwrt关闭调试串口

    转自: http://wiki.wrtnode.com/index.php?title=Release_UART/zh-cn 由于mt7620n只有一个UART lite接口,在原生的OpenWrt中 ...

  3. Openwrt 远程调试

    此文已由作者吴志勐授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 本文以自己的程序WFD为例: 1,为路由器固件刷上gdbserver 在宿主端,使用make menucon ...

  4. (十一)tina | openwrt关闭调试串口(DEBUG UART)

    //编辑以下文件 vi target/allwinner/astar-parrot/base-files/etc/inittab  //不同系统文件路径注意更改 //文件内容如下,注释::askcon ...

  5. (转)利用libcurl获取新浪股票接口, ubuntu和openwrt实验成功(三)

    1.  利用 CURLOPT_WRITEFUNCTION 设置回调函数, 利用 CURLOPT_WRITEDATA 获取数据指针 官网文档如下 CALLBACK OPTIONS CURLOPT_WRI ...

  6. openWrt 安装与实践

    1. 先装一个编译用的环境, ubuntu 14 2. 在ubuntu里面安装svn, g++, libncurses5-dev git libssl-dev gawk, svn因为openwrt社区 ...

  7. CentOS_7 OpenWrt Eclipse 环境搭建与 Dr.com 开发笔记

    一:内核的编译. 1,linux 编译环境的搭建与源码的准备工作 2,常用软件的安装 (make menuconfig) 3,  针对TP-Link WR740N 一些软件的openwrt 的移植 4 ...

  8. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...

  9. OpenWRT学习笔记-1@WNDR3800

    很久以前买了一台二手wndr3800 放假了刷成op可以一耍.ar71xx,芯片还比较热门. 首先是刷机,准备使用OP CC 15.05 r46767,官方稳定版.把原装系统降级到1.0.0.16,就 ...

  10. 转:openwrt中luci学习笔记

    原文地址:openwrt中luci学习笔记 最近在学习OpenWrt,需要在OpenWrt的WEB界面增加内容,本文将讲述修改OpenWrt的过程和其中遇到的问题. 一.WEB界面开发         ...

随机推荐

  1. 构建3D虚拟世界,有哪些3D建模方式?

    "沉浸.3D世界.虚拟社交.虚拟购物",人们畅想通过AR/VR以及其他互联网技术,把现实世界的楼房街道.天气温度.人际关系等投射到虚拟世界,拥有一个网络分身. 但目前来看,要想实现 ...

  2. STM32学习笔记:创建标准库工程模板

    背景 标准库下载:地址 本章的项目可以在这里下载. STM32作为一类经典的MCU.本人从2018年1月1日开始对于STM32系列单片机的学习. 本人所持的型号为:STM32F429ZI-DISCOV ...

  3. python基础-json

    import json # 准备列表,列表内每一个元素都是字典,将其转为JSON date = [{"name": "张大帅", "age" ...

  4. 实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

    本文带来的是基于全志T507-H(硬件平台:创龙科技TLT507-EVM评估板),Linux-RT内核的硬件GPIO输入和输出实时性测试及应用开发案例的分享.本次演示的开发环境如下: Windows开 ...

  5. 基于Bootstrap Blazor开源的.NET通用后台权限管理系统

    前言 今天大姚给大家分享一个基于Bootstrap Blazor开源的.NET通用后台权限管理系统,后台管理页面兼容所有主流浏览器,完全响应式布局(支持电脑.平板.手机等所有主流设备),可切换至 Bl ...

  6. ABP框架开发实例教程-获取前端样式和脚本

    1.运行生成的ABP框架,设置WEB.MVC项目为启动项目,点击开始运行,界面如下,样式和脚本文件不存在,所以导致界面无法正常显示,这个我研究ABP遇到的第二个坑,第一个坑是生成数据库. 2.为什么没 ...

  7. 请解释一下 JavaScript 的同源策略?

    概念:同源策略是客户端脚本(尤其是Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载.这里的同源策略指的是:  协议,域名,端口 相同,同源策略是一种安全协议.指一 ...

  8. acwing 875

    acwing875 题目大意:快速幂模板题 Train of thought 此题如果采用暴力的做法时间复杂度为0(n*b); n为样例的数目,b是幂 我们想要优化暴力的做法,首先样例的数量是没有办法 ...

  9. 题解:AT_abc359_e [ABC359E] Water Tank

    背景 中考结束了,但是暑假只有一天,这就是我现在能在机房里面写题解的原因-- 分析 这道题就是个单调栈. 题目上问你第一滴水流到每个位置的时间.我们考虑,答案其实就是比当前木板高且距离当前木板最近的那 ...

  10. 网络基础 Modbus协议学习总结

    协议简介 Modbus协议,首先从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议,总线就意味着有主机,有从机,这些设备在同一条总线上. Modbus支持单主机,多个从机,最多支持2 ...