首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

HLK-RM60 + openwrt调试

编程知识
2024年08月23日 09:08

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=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
    
  • 选中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 !!! 其它随意,转载请注明出处

From:https://www.cnblogs.com/zhijun1996/p/18375134
本文地址: http://www.shuzixingkong.net/article/1367
0评论
提交 加载更多评论
其他文章 Django集成腾讯COS对象存储
前言 最近遇到一个场景需要把大量的资源文件存储到 OSS 里,这里选的是腾讯的 COS 对象存储 (话说我接下来想搞的 SnapMix 项目也是需要大量存储的,我打算搭个 MinIO 把 24T 的服务器利用起来~) 为啥腾讯不搞个兼容 Amazon S3 协议的啊…… 官方的 SDK 和文档都奇奇
React项目接入代码编辑器aceEditor
不建议去查看aceEditor官方,最好去github查看 安装命令: npm install react-ace 引入包: import AceEditor from 'react-ace'; import 'ace-builds/src-noconflict/mode-s
React项目接入代码编辑器aceEditor React项目接入代码编辑器aceEditor React项目接入代码编辑器aceEditor
.NET 8 + Vue 3 极简 RABC 权限管理系统
前言 在日常工作中,几乎每家公司都需要一个后台管理系统来处理各种任务。为了帮助大家快速搭建这样一个系统,给大家介绍一个基于最新技术 .NET 8 和前端框架 Vue 3 实现的极简 RABC(基于角色的访问控制)权限管理系统。 该系统后端采用经过精心精简的 ABP框架,前端则使用了 vue-pure
.NET 8 + Vue 3 极简 RABC 权限管理系统 .NET 8 + Vue 3 极简 RABC 权限管理系统 .NET 8 + Vue 3 极简 RABC 权限管理系统
wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北
本文主要是介绍 wiz 为知笔记服务器 docker 从旧服务器迁移到新服务器的步骤以及问题排查。 旧服务器升级 wiz docker 目的:保持和新服务器拉取的镜像版本一致。 官方只留了 wiz docker 镜像最新版,拉取不了旧版本镜像,所以先升级旧服务器上的 wiz docker。 升级方法
wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北 wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北 wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北
Vue状态管理库Pinia详解
Pinia 是 Vue 的状态管理库,它提供了一种更简单、更不规范的 API 来管理应用的状态。Pinia 的设计哲学是简单性和易用性,它避免了 Vuex 中的许多复杂概念,如 mutations 和模块的嵌套结构,提供了一种更现代、更符合 Vue 3 Composition API 风格的状态管理
零基础学习人工智能—Python—Pytorch学习(八)
前言 本文介绍卷积神经网络的上半部分。 其实,学习还是需要老师的,因为我自己写文章的时候,就会想当然,比如下面的滑动窗口,我就会想当然的认为所有人都能理解,而实际上,我们在学习的过程中之所以卡顿的点多,就是因为学习资源中想当然的地方太多了。 概念 卷积神经网络,简称CNN, 即Convolution
零基础学习人工智能—Python—Pytorch学习(八) 零基础学习人工智能—Python—Pytorch学习(八)
使用Ollama本地离线体验SimpleRAG(手把手教程)
Ollama介绍 Ollama是一个开源项目,专注于开发和部署大语言模型,特别是像LLaMA这样的模型,用于生成高质量的文本和进行复杂的自然语言处理任务。Ollama的目标是让大语言模型的运行和使用变得更加容易和普及,而无需复杂的基础设施或深度的机器学习知识。 GitHub地址:https://gi
使用Ollama本地离线体验SimpleRAG(手把手教程) 使用Ollama本地离线体验SimpleRAG(手把手教程) 使用Ollama本地离线体验SimpleRAG(手把手教程)
计算机组成原理【2】: 数据的表示和运算-上
概述 数制与编码 进位计数制及其相互转换;定点数的编码表示 运算方法和运算电路 基本运算部件:加法器;算术逻辑单元(ALU) 加减运算:补码加/减运算器;标志位的生成 乘/除运算:乘/除法运算的基本原理;乘法电路和除法电路的基本结构 数制与编码 进位计数制及其相互转换 采用二进制编码的原因 二进制只
计算机组成原理【2】: 数据的表示和运算-上 计算机组成原理【2】: 数据的表示和运算-上 计算机组成原理【2】: 数据的表示和运算-上