本文链接: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
下面正式进入教程:
浏览器输入192.168.31.1(小米路由器默认后台管理地址,如有更改输入修改后的IP即可),输入管理员密码,进入路由器后台管理界面,手动“升级”为官方开发版固件。

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

打开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)

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

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


点击地址栏右侧的 Copy to clipboard,复制文件地址
在 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
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上找到一个类似的问题
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的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
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
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
路由有如下代码: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个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。
我正在使用rails3和cucumber,除了这个小问题,一切都很顺利GivenIamonthe"editautomobile"pageNoroutematches{:controller=>"automobiles",:action=>"edit"}(ActionController::RoutingError)现在路径在paths.rb中设置为edit_automobile_path在routes.rb中我有汽车作为资源,我搭建了它所以请告诉我我遗漏了什么,清楚地定义了路线并且匹配,因为我运行了rake路线并看到了路线。请指出正确的方向 最佳答案
有什么方法可以为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
我如何将像“root_path”这样的Rails路由助手作为类方法添加到像my_model.rb这样的类中?所以我的课是这样的:ClassMyModeldefself.fooreturnself.root_pathendendMyModel.foo以上不起作用,因为ClassMyModel不响应root_path这是我所知道的:我可以使用includeRails.application.routes.url_helpers,但这只会将模块的方法添加为实例方法我试过扩展Rails.application.routes.url_helpers但它没用请随时给我上课:)
尝试从我的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
我正在尝试根据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应该将