小米路由器R3Gv2安装openwrt记录

news2024/11/26 14:59:58

前言

小米路由器R3Gv2的硬件配置与小米路由器4A千兆版一致,但bootloader有所不同,因此openwrt的固件不要互刷。另外,R3Gv2和R3G、4A百兆版是不同的设备,切勿混淆。

硬件信息

OpenWrt参数页-Xiaomi MiWiFi 3G v2
CPU:联发科 MediaTek MT7621A,双核880MHz
闪存:16MB
内存:128MB
千兆WAN口:1个
千兆LAN口:2个
2.4G无线芯片:MediaTek MT7603E
5G无线芯片:MediaTek MT7612E
USB:无

需要准备的工具

下面的软件,如果电脑上已经有相同功能的软件了,可平替

  • 安装 Python3,用于执行特殊py脚本获取telnet权限。如果已安装了Anaconda,就不用重复安装python了。
  • 使用 pip 安装 requests 包,pip install requests
  • 安装 Xampp,用于搭建Http服务器,存放并上传固件文件。
  • 安装 putty,用于telnet、ssh客户端使用。
  • 安装 WinSCP,用于FTP客户端。
  • 下载 OpenWRTInvasion 脚本,整个Source Code全下载。
  • 下载 breed 固件,breed-mt7621-pbr-m1。
  • 下载 OpenWrt 固件,当前版本 23.05.4,openwrt-23.05.4-mirouter-3gv2

正式步骤

  1. 路由器接好,lan口网线连电脑,登录路由器完成初始设置(设置好管理员密码、wifi密码)
  2. 将下载好的 OpenWRTInvasion 解压,使用文本编辑器打开 remote_command_execution_vulnerability.py 文件,这里需要改动几处代码。
    如图所示,跳过对windows的检测,根据原作者描述windows上使用有时会出问题,所以对windows加了判断,检测windows直接退出。但是脚本代码中并没有什么平台相关的特殊操作,我测试在windows上是可以运行的(Win11 23H2)。router_ip_address强制使用 192.168.31.1,防止 miwifi.com 域名解析错误。
    在这里插入图片描述
  3. 在此目录中,右击,在终端中打开(或者命令行中 cd 进入此目录)
    执行 python remote_command_execution_vulnerability.py,根据提示,输入路由器ip,默认192.168.31.1,没变化直接回车,然后脚本会尝试获取STOK,提示输入管理员密码。如果脚本获取失败,则需手动登录网页获取URL中的STOK输入到脚本中。
    提示 Which option do you prefer 时,选默认直接回车就行。
    在这里插入图片描述
  4. 脚本执行结束后,此时路由器就已经开启了 telnet 和 ftp 了,使用 putty 登录 192.168.31.1,协议选 telnet,登录用户名和密码都是 root
    执行cat /proc/mtd,查看分区情况
cat /proc/mtd
dev:    size   erasesize  name
mtd0: 01000000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Bdata"
mtd4: 00010000 00010000 "Factory"
mtd5: 00010000 00010000 "crash"
mtd6: 00010000 00010000 "cfg_bak"
mtd7: 00100000 00010000 "overlay"
mtd8: 00d00000 00010000 "OS1"
mtd9: 00b30000 00010000 "rootfs"
mtd10: 00180000 00010000 "disk"

备份mtd分区文件。
然后使用WinSCP或其他FTP工具,将备份文件拷贝至本地电脑。(步骤略)

cd /tmp
mkdir backupB9AD
cd backupB9AD
dd if=/dev/mtd0 of=/tmp/backupB9AD/mtd0-ALL.bin
dd if=/dev/mtd1 of=/tmp/backupB9AD/mtd1-Bootloader.bin
dd if=/dev/mtd2 of=/tmp/backupB9AD/mtd2-Config.bin
dd if=/dev/mtd3 of=/tmp/backupB9AD/mtd3-Bdata.bin
dd if=/dev/mtd4 of=/tmp/backupB9AD/mtd4-Factory.bin
dd if=/dev/mtd5 of=/tmp/backupB9AD/mtd5-crash.bin
dd if=/dev/mtd6 of=/tmp/backupB9AD/mtd6-cfg_bak.bin
dd if=/dev/mtd7 of=/tmp/backupB9AD/mtd7-overlay.bin
dd if=/dev/mtd8 of=/tmp/backupB9AD/mtd8-OS1.bin
dd if=/dev/mtd9 of=/tmp/backupB9AD/mtd9-rootfs.bin
dd if=/dev/mtd10 of=/tmp/backupB9AD/mtd10-disk.bin
  1. 使用WinSCP或其他FTP工具,将下载好的 breed-mt7621-pbr-m1.bin 上传至路由器 /tmp 目录下。
    刷入 breed,mtd -r write /tmp/breed-mt7621-pbr-m1.bin Bootloader

  2. breed刷入完成后,会自动重启进入breed刷机模式,浏览器访问192.168.1.1即可进入breed web页面。如果没能进入,断开路由器电源,按住Reset不放,插上电源,当看到路由器的部分或全部LED连闪4次(大约等待5-8秒),松开Reset,浏览器重新访问192.168.1.1。电脑IP需设置为自动获取(DHCP)
    然后,在固件备份中备份 编程器固件 以及 EEPROM

  3. 在breed的web页面,启用环境变量,然后添加一个环境变量,变量名autoboot.command,值boot flash 0x180000,重启 breed 。

  4. 官方原版的openwrt固件中firmware地址在0x180000,由于breed的web界面上,没有对应的闪存布局可以选,所以刷入Openwrt时,只能命令行手动刷入。breed后台关于文件传输能用的命令只有 wget,所以需要准备一个 http 服务器,打开 xampp 控制面板,启用 Apache。
    在这里插入图片描述
    将下载好的 openwrt 固件复制到Xampp的htdocs目录,并改个短点名字。例如 D:\MyTools\Xampp\htdocs\me\op-r3gv2.bin

  5. 使用 putty 登录 192.168.1.1,协议选 telnet,进入 breed 后台,然后输入命令:
    wget http://192.168.1.2/me/op-r3gv2.bin,下载固件到路由器。
    下载完成后,会有提示信息:

wget http://192.168.1.2/me/op-r3gv2.bin
Length: 6554243/0x640283 (6MB) [application/octet-stream]
Saving to address 0x80001000

然后手动擦除一块闪存区域。

flash erase 0x180000 0x800000
# 含义为从0x180000的地址开始,擦除大小为0x800000的内存区域,擦除的区域大小必须大于固件的大小。

复制固件到指定位置

flash write 0x180000 0x80001000 0x640283
#从0x180000这个地址写入保存在0x80001000的数据,写入的大小为 0x640283
  1. 打开breed的web页面,固件刷入,刷入步骤6中备份的EEPROM文件。刷入完成后,重启即可。
    在这里插入图片描述

参考链接

小米路由器4A千兆版 折腾记录 完美刷入官方openwrt 2022-08-09更新
终于解决了breed刷机后不能正常启动的问题
小米路由器4A千兆版刷openWRT保姆级教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2201906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot网上书城小程序—计算机毕业设计源码38707

目 录 摘要 1 绪论 1.1 研究背景及意义 1.2国内外研究现状 1.3系统开发的内容 1.4论文结构与章节安排 1.5小程序框架以及目录结构介绍 2 网上书城小程序系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析…

Unity实现自定义图集(三)

以下内容是根据Unity 2020.1.0f1版本进行编写的   1、实现编辑器模式下进游戏前Pack全部自定义图集 同Unity的图集一样,Unity的编辑器模式会在进游戏前把全部的SpriteAtlas都打一次图集,如图: 我们也实现这样的效果。 首先需要获取全部的图集路径。因为目前使用的是以.…

chaos官方给的V-Ray材质优化器怎么样?

V-Ray材质优化器是一个为3ds Max设计的MAX脚本,它通过以下方式优化场景,提高渲染速度! V-Ray材质优化器安装包可找【成都渲染101云渲染,云渲码6666】提供! ​ 通过创建一个新的UV通道并使用平面映射算法展开场景对象。…

【学术会议征稿】第五届应用力学与机械工程国际学术会议(ICAMME 2024)

第五届应用力学与机械工程国际学术会议(ICAMME 2024) 2024 5th International Conference on Applied Mechanics and Mechanical Engineering 在全球技术快速发展的背景下,应用力学和机械工程作为推动现代工业创新的根基,持续展…

【新品发布】数字能源EMS管理再掀新篇章

致远电子EM系列工商业储能网关累计装机容量突破2GWh!聚焦数字综合能源应用,全新一代EM-800/EM-1000G发布,见证光储充时代的来临! 早在2008年,致远电子的工程师在为国内某新能源企业设计光伏通讯管理机方案时&#xff0…

使用宝塔快速搭建配置Openai api接口代理+502 Bad Gateway网关错误问题解决

本教程提供了一种简便快捷的方法,无需复杂步骤,极易操作,实现零代码、零部署的快速接入。 实现准备 1.服务器,这里使用阿里香港轻量服务器) 2. OpenAI官方的模型api key 3. 使用第三方系统或插件进行测试 关于第三方…

windows 安装 ElasticSearch

1、下载安装包 下载地址: ElasticSearch 目录结构如下: 2、配置JDK环境 3、配置ElasticSearch 的config 4、启动 ElasticSearch 服务 4.1、解决启动日志乱码问题 4.2、进入bin 目录,点击elasticsearch.bat 文件启动 ES 服务

大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

【无人水面艇路径跟随控制10】(Matlab)USV代码阅读:testUSV仿真无人水面艇在一定时间内的运动,使用欧拉法对状态进行积分,并绘制仿真结果

【无人水面艇路径跟随控制10】(Matlab)USV代码阅读:仿真无人水面艇在一定时间内的运动,使用欧拉法对状态进行积分,并绘制仿真结果 写在最前面testUSV.m总结代码详解1. **初始化部分**2. **仿真循环**3. **仿真数据提取…

【力扣刷题实战】(顺序表)移除元素

大家好,我是小卡皮巴拉 文章目录 目录 力扣题目: 移除元素 题目描述 示例 1: 示例 2: 解题思路 具体思路 题目要点 完整代码 兄弟们共勉 !!! 每篇前言 博客主页:小卡…

AI测试入门:认识Graph RAG

AI测试入门:认识Graph RAG 前言1. 什么是Graph RAG?2. Graph RAG的工作原理3. Graph RAG的应用场景4. Graph RAG的技术实现5. Graph RAG的优势6. Graph RAG的实际应用案例总结 前言 传统的检索增强生成(RAG)方法逐渐暴露出一些局限…

高被引算法GOA优化VMD,结合Transformer-SVM的轴承诊断,保姆级教程!

本期采用2023年瞪羚优化算法优化VMD,并结合Transformer-SVM实现轴承诊断,算是一个小创新方法了。需要水论文的童鞋尽快! 瞪羚优化算法之前推荐过,该成果于2023年发表在计算机领域三区SCI期刊“Neural Computing and Applications”…

DockerCompose 启动 open-match

背景介绍 open-match是Google和unity联合开源的支持实时多人匹配的框架,已有多家游戏厂商在生产环境使用,官网 https://open-match.dev/site/ 。原本我们使用的是UOS上提供的匹配能力,但是UOS目前不支持自建的Dedicated servers 集群&#x…

【万字长文】Word2Vec计算详解(一)CBOW模型

【万字长文】Word2Vec计算详解(一)CBOW模型 写在前面 本文用于记录本人学习NLP过程中,学习Word2Vec部分时的详细过程,本文与本人写的其他文章一样,旨在给出Word2Vec模型中的详细计算过程,包括每个模块的计…

LLM4Rec最新工作: 字节发布用于序列推荐的分层大模型HLLM

前几个月 Meta HSTU 点燃各大厂商对 LLM4Rec 的热情,一时间,探索推荐领域的 Scaling Law、实现推荐的 ChatGPT 时刻、取代传统推荐模型等一系列话题让人兴奋,然而理想有多丰满,现实就有多骨感,尚未有业界公开真正复刻 …

微服务架构---认识Zuul

目录 认识Zuul简单的例子 第一个Zuul程序步骤1:创建父工程zuul-1步骤2:创建HystrixController类步骤3:搭建服务消费者eureka-consumer项目(1)创建一个config包,在config包下新建配置类RestConfig&#xff0…

别再浪费时间!利用ChatGPT写作提效神器,赶紧收藏!

在信息化迅猛发展的当下,写作已成为我们日常中不可或缺的组成部分。论是在撰写报告、进行学术论文创作,还是写博客内容,写作都是我们思想和观点的核心手段。然而,写作非易事,它常需要我们付出大量的时间和精力。那么&a…

Superset SQL模板使用

使用背景 有时想让表的时间索引生效,而不是在最外层配置报表时,再套多一层时间范围。这时可以使用SQL模板 参考官方文档 https://superset.apache.org/docs/configuration/sql-templating/#:~:textSQL%20Lab%20and%20Explore%20supports%20Jinja 我…

vscode中的Code Runner配置----output中文乱码(设置默认使用cmd运行文件)、设置当前文件夹为根路径

问题描述 1. 存在中文显示异常,以及输出用Output输出的问题 解决方法: 把终端改为 cmd。如果是就不用替换了 修改RunCode的配置 完成,下面点击 run code就在cmd中运行了 2. 设置当前文件夹为根路径 code runner 的默认根路径是当前项目…