草庐IT

小米路由器3C刷入Breed和OpenWrt

Snoopy1866 2023-04-01 原文

本文链接:https://www.cnblogs.com/snoopy1866/p/17278237.html
准备工具:小米路由器3C(R3L)、网线、电脑
准备软件:Xshell
教程中使用到的文件均打包保存在:https://wwpe.lanzoub.com/ibnVl0rqr09a
教程参考了以下多位大佬的帖子:
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=161906&page=1#pid1011303
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=154561&page=1&authorid=200302
https://www.right.com.cn/forum/thread-6015436-1-1.html
https://www.right.com.cn/forum/thread-471113-1-1.html
https://www.right.com.cn/forum/thread-2527199-1-1.html
https://www.right.com.cn/forum/thread-4034584-1-1.html
https://www.right.com.cn/forum/thread-4067036-1-1.html
https://www.bilibili.com/read/cv21661961
https://doc.embedfire.com/openwrt/user_manal/zh/latest/User_Manual/openwrt/opkg.html
教程参考的OpenWrt官方文档链接:
https://openwrt.org/toh/xiaomi/mir3c
https://openwrt.org/toh/hwdata/xiaomi/xiaomi_miwifi_3c
https://openwrt.org/zh/releases/snapshot

下面正式进入教程:

1. 刷入官方开发版固件

浏览器输入192.168.31.1(小米路由器默认后台管理地址,如有更改输入修改后的IP即可),输入管理员密码,进入路由器后台管理界面,手动“升级”为官方开发版固件。

等待重启后,重新设置管理员密码。

2. 通过破解获取 telnet 权限

下载 R3GV2 patches,解压缩后,执行其中的 0.start_main.bat,按照提示输入路由器后台管理密码,当出现
start uploading config file...
run telnet+ftpd
Done
时表示已经成功获取telnet权限。

3. 刷入Breed

  • 打开Windows自带资源管理器,输入ftp://192.168.31.1,将breed.bin复制到路由器的/tmp目录下,这里不建议使用其他ftp软件,可能会出现无法显示文件目录的情况

  • 使用telnet软件(建议Xshell)连接路由器,提示输入用户名,输入 root 即可

  • 输入 cat /proc/mtd 查看分区信息

  • 输入 mtd write /tmp/breed.bin Bootloader,将 breed.bin 刷入到 Bootloader分区

  • 使用网线连接电脑和路由器的LAN口,长按路由器背后的reset键约5秒,打开浏览器,地址栏输入 192.168.1.1,进入 Breed Web 恢复控制台(请确保电脑本机IP处于192.168.1.x网段,如不是请自行修改本机IP)

4. 配置 HFS

  • 打开 HFS,点击 Menu → IP address,选择本机网卡的IP地址,设置监听 IP

  • 在软件左侧 Virtual File System 中,右键,选择 Add files...,将 OpenWrt 固件添加到监听列表

  • 点击地址栏右侧的 Copy to clipboard,复制文件地址

5. 刷入 OpenWrt 固件

  • 在 Breed 界面中,先备份 EEPROM,下载备份好的文件到本地

  • 再次使用 telnet 软件连接路由器,注意此时的IP地址要改为 192.168.1.1

  • 输入 wget url,注意将 url 替换为步骤4中复制的文件地址,回车。当出现进度条 [0%] 时,需要手动多次按enter键(貌似任意键都可以),将固件下载到路由器上。
    注意查看下载完成后路由器返回的信息,记下固件大小 0x5c0133 和固件保存位置 0x80000000 这两个信息,后续步骤会用到

  • 输入 falsh erase 0x140000 0x600000 擦除 flash原有数据。这里的 0x140000 表示 firmware 的地址,可以在 OpenWrt 官方的设备详情页面查看 openwrt.log 获取,0x600000 表示设定空间大小,这个空间大小必须大于固件大小 0x5c0133。

  • 输入 flash write 0x140000 0x80000000 0x600000 写入固件,这行命令的意思是在地址 0x140000 处将保存在 0x80000000 位置的固件写入到已分配好的空间 0x600000 中。

  • 输入 boot flash 0x140000 重启路由器,这行命令的意思是在 0x140000 处启动固件

  • 查看路由器指示灯,当指示灯由黄灯闪烁变为蓝灯时,浏览器地址栏输入 192.168.1.1,如果成功进入 openwrt 登录界面,代表固件已经成功刷入并启动了。此时先不着急配置网络,按住路由器的 reset 键,进入 breed

6. 设置环境变量

  • 在 Breed 界面中,启用环境变量功能,位置选择 Breed 内部,点击设置,然后重启路由器使设置生效
  • 再次进入 Breed 界面,编辑环境变量,增加字段 autoboot.command,值设为 boot flash 0x140000,表示从 0x140000 处启动固件,再次重启路由器

7. 重新写入固件

  • 通过浏览器输入 192.168.1.1 进入 OpenWrt 后台管理界面,初始会要求设置 root 密码。
  • 点击 System → Backup/Flash Firmware → Flash new firmware image,将刚刚刷入的 OpenWrt 再重新刷写一遍,然后点击 System → Reboot,重启路由器。这一步是为了将运行在 ram 中的固件真正地写入 rom 中,防止重启路由器后配置丢失。

8. 安装简体中文语言包

  • 重启后进入 OpenWrt,点击 System → Software → Update lists,等待大约半分钟,刷新软件包列表,然后搜索 luci-i18n-base-zh-cn 和 luci-i18n-opkg-zh-cn,安装简体中文语言包。

9. 注意事项

  • 必须准备一条网线,否则刷入breed后无法连接路由器后台
  • 不建议刷 snapshotes 版本,snapshpt 默认不包含 LuCI GUI,且安装软件包具有时间限制

有关小米路由器3C刷入Breed和OpenWrt的更多相关文章

  1. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  2. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

  3. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  4. ruby-on-rails - Rails - 从命名路由中提取 HTTP 动词 - 2

    Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba

  5. ruby-on-rails - 如何在 Rails 中设置路由的默认格式? - 2

    路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。

  6. ruby - cucumber 的路由问题 - 2

    我正在使用rails3和cucumber,除了这个小问题,一切都很顺利GivenIamonthe"editautomobile"pageNoroutematches{:controller=>"automobiles",:action=>"edit"}(ActionController::RoutingError)现在路径在paths.rb中设置为edit_automobile_path在routes.rb中我有汽车作为资源,我搭建了它所以请告诉我我遗漏了什么,清楚地定义了路线并且匹配,因为我运行了rake路线并看到了路线。请指出正确的方向 最佳答案

  7. ruby - Rails 路由 : Giving default values for path helpers - 2

    有什么方法可以为url/path助手提供默认值吗?我有一个可选范围环绕我的所有路线:#config/routes.rbFoo::Application.routes.drawdoscope"(:current_brand)",:constraints=>{:current_brand=>/(foo)|(bar)/}do#...allotherroutesgohereendend我希望用户能够使用这些URL访问网站:/foo/some-place/bar/some-place/some-place为了方便起见,我在我的ApplicationController中设置了一个@current

  8. ruby-on-rails - 将 Rails 路由助手作为类方法添加到类中 - 2

    我如何将像“root_path”这样的Rails路由助手作为类方法添加到像my_model.rb这样的类中?所以我的课是这样的:ClassMyModeldefself.fooreturnself.root_pathendendMyModel.foo以上不起作用,因为ClassMyModel不响应root_path这是我所知道的:我可以使用includeRails.application.routes.url_helpers,但这只会将模块的方法添加为实例方法我试过扩展Rails.application.routes.url_helpers但它没用请随时给我上课:)

  9. ruby-on-rails - 获取 ActionController::RoutingError(当尝试使用 AngularJS 将数据发布到 Rails 服务器时,没有路由匹配 [OPTIONS] "/users" - 2

    尝试从我的AngularJS端将数据发布到Rails服务器时出现问题。服务器错误:ActionController::RoutingError(Noroutematches[OPTIONS]"/users"):actionpack(4.1.9)lib/action_dispatch/middleware/debug_exceptions.rb:21:in`call'actionpack(4.1.9)lib/action_dispatch/middleware/show_exceptions.rb:30:in`call'railties(4.1.9)lib/rails/rack/logg

  10. ruby-on-rails - 在条件路由期间未在 Rails 3 中设置 request.subdomain - 2

    我正在尝试根据RyanBatesscreencastonsubdomains在Rails3中设置子域.但是它对我不起作用。我有以下设置:#routes.rbconstraints(Subdomain)doget'devices'=>'devices#all'end#lib/subdomain.rbclassSubdomaindefself.matches?(request)#binding.pryrequest.subdomain.present?&&request.subdomain=="admin"endend加载urladmin.localhost:3000/devices应该将

随机推荐