路由器基本常识_冰色阳光的博客-CSDN博客_路由器bootloader是什么
https://www.right.com.cn/forum/thread-3191610-1-1.html
刷入OpenWrt/LEDE后,似乎路由器的Reset键不起作用。
路由器在启动时,正常会先运行引导程序Breed,然后Breed再去启动OpenWrt/LEDE操作系统。所以如果需要进入Breed,请抓紧刚刚上电时那一小会儿功夫去访问http://192.168.1.1页面,再晚一点OpenWrt/LEDE系统就会启动了。
博主也是刚入坑的小白,正在寻找解决方案~
路由器Antbang A3s V2.0
土豪金CH341A编程器、焊接工具
用于烧写路由器Flash芯片的硬件设备。
用于烧写路由器Flash芯片的软件。在下载链接处会有编程器驱动和本软件的使用说明。
Windows系统下免费的16进制编辑器。
适用于mt76x8芯片的Breed启动引导程序。
适用于mt7628芯片的OpenWrt/LEDE系统的二进制文件,版本17.01.7。
使用撬片拆开路由器的外壳,Antbang A3s V2.0路由器的外壳没有使用螺丝固定,可以放心拆卸。拆开外壳后,使用螺丝刀卸下固定电路板的螺丝,小心地将电路板翻面。电路板如下所示。
将箭头处的Flash芯片拆焊,然后转接到CH341A编程器上。我的路由器原先的Flash芯片型号为EN25Q32B,容量4MB。该Flash属于25芯片,注意不要插错位置哟~
将编程器插入电脑。打开NeoProgrammer 2.2.0.3,点击“检测”按钮,选择我们的Flash型号EN25Q32B(我给路由器换过Flash,所以下图Flash型号不同,仅供参考)。
点击带有绿色箭头的“读取”按钮,将Flash中存储的原始内容读取出来,作为备份。
等待进度条走完。读取成功后,点击“保存”按钮,将Flash芯片中的原始内容保存为二进制文件,命名为flash.bin。
EEPROM:路由信号校验数据。每个路由唯一,各路由间不通用。该数据一旦丢失,将严重影响路由无线信号质量。
我们接下来在原始的Flash内容flash.bin中提取EEPROM数据。使用HxD编辑器打开flash.bin文件。
Antbang A3s V2.0的EEPROM数据存放于地址0x40000到0x4FFFF,我们选中这个范围。
我这里EEPROM的数据以0x28 0x76开头。
将选中的区域另存为一个新的二进制文件eeprom.bin,里面存放着重要的路由信号校验数据,之后我们需要使用到它。
路由器的CPU芯片型号是MT7628,我们下载最新的breed-mt76x8-blank.bin作为路由器的启动引导程序。
切换回NeoProgrammer,首先点击黄色的文件夹按钮,打开刚刚下载的Breed引导程序二进制文件。
我们准备将刚才下载的程序写入Flash。将下图中的所有内容打上勾,点击该按钮后将从上往下依次执行这些操作。
所有步骤执行完毕并且没有错误的话,应当会输出“正在写入/编程及校验 成功”的字样。确认烧写过程正常结束后,我们可以将编程器拔出。恭喜你,你已经成功地将Breed引导程序写入Flash中了!
我们在下一步中会让电脑有线连接烧写好Breed的路由器。趁现在电脑还有网,我们先准备好OpenWRT/LEDE系统固件,一会儿要通过Breed上传进路由器中。
根据恩山论坛的这位前辈所述,我们应当使用lede-17.01.7-ramips-mt7628-mt7628-squashfs-sysupgrade.bin作为合适的系统固件。将该系统的二进制文件下载到本地。
离开电脑,拿起你的焊接设备,小心地将Flash焊接回路由器上。注意哟,一定要确保8个引脚全部焊上了,否则给路由器上电的时候灯是不会正常发光的。
用网线连接电脑与路由器的LAN口,给路由器上电,路由器灯应当会明显地亮起。等待几秒后,在电脑浏览器中访问http://192.168.1.1,进入Breed引导程序的Web交互界面。
将我们刚刚下载的系统文件以及之前准备好的原生EEPROM文件,通过Breed提供的Web界面,上传到路由器的Flash中。
上传完毕后,路由器会自动重启。等待十几秒后访问http://192.168.1.1页面,唰!期待已久的OpenWRT/LEDE系统界面!
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道rubyonrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim
我的项目布局如下:-Project-css-import.scss-_sass/main.scssimport.scss的内容是:------@import"main.scss";我期望发生的是将main.scss导入到import.scss中,然后,import.scss将在生成的_site/目录中编译为import.css。相反,我收到以下错误Conversionerror:Therewasanerrorconverting'css/import.scss'.jekyll2.0.3|Error:InvalidCSSafter"-":expectednumberorfunction,
我想在AmazonOpsWorks上使用Ruby2.0,所以我正在尝试以下操作:选择自定义Recipe并将它们设置到我的forkhttps://github.com/aws/opsworks-cookbooks在此处更新所有版本号https://github.com/aws/opsworks-cookbooks/blob/master/ruby/attributes/ruby.rb到2.0值。虽然这似乎没有任何效果。自定义说明书是否会覆盖其内置的说明书?OpsWorks是否使用Recipe中的Ruby配方来进行基本的Ruby设置?同样的问题也适用于Nginx-我可以通过更改Recipe
我正在尝试将Ruby1.9.3应用程序升级到2.0,除了一个小问题外,一切似乎都很顺利。我写了一个模块,我将其包含在我的模型中以覆盖activerecorddestroy。它将现有的destroy方法别名为destroy!,然后覆盖destroy以更改记录上的deleted_at时间戳。仅当我升级到ruby2.0时,destroy!不再破坏记录,但其行为就像我的新覆盖方法一样。知道为什么会这样吗?下面是更相关的代码部分。完整要点here.defself.included(base)base.class_evaldoalias_method:destroy!,:destroyalia
如果我在ruby中有一个接受命名参数的方法...defsmoosh(first:nil,second:nil)first+secondend如果键匹配,将散列传递给该方法的最简单方法是什么:params={first:'peanut',second:'butter'}smoosh(params)以上会产生参数错误。更新:这似乎是Sinatra参数工作方式的问题。当我这样做时:get'a_sinatra_route'dohash=params.clonehash.symbolize_keys!smoosh(hash)end它工作正常。仅自行传递参数时,它不起作用。(即使您可以使用符号
在ruby2.0.0/247或head上试过这个:require'objspace'ObjectSpace.trace_object_allocations->undefinedmethod`trace_object_allocations'forObjectSpace:Module文档说它应该可以工作http://www.ruby-doc.org/stdlib-2.0/libdoc/objspace/rdoc/ObjectSpace.html知道我错过了什么吗? 最佳答案 对于更高的ruby版本,您仍然可能会遇到如下错误:
所以从Rails4.1.x开始,似乎有一种推荐的方法是在应用程序文件夹下使用rails。而不是传统的:railsserverRails官方指南推荐使用bin/railsserver看起来bin/rails正在引用带有附加内容的rails。与rails相比,使用bin/rails的额外好处是什么?第二个问题是——我习惯于使用railsserver、railsconsole等,而不是bin/railsserver、bin/railsconsole。如果不使用bin/rails,我会丢失任何东西吗(比如误加载一些库等)?谢谢。 最佳答案
我正在学习RubyKoans中的练习在about_proxy_object_project.rb中有这段代码:classProxydefinitialize(target_object)@object=target_objectend#Thismethodwasaddedbymedefmethod_missing(method_name,*args,&block)@object.sendmethod_nameendend这样调用:deftest_tv_methods_still_perform_their_functiontv=Proxy.new(Television.new)#Tel
为什么RubyEnumerator默认情况下不像Enumerator::Lazy那样?有没有人想要使用非惰性Enumerator的情况?已编辑:下面是对向后兼容性答案的评论,解释了为什么我还不相信:假设我们已将这些“重大”更改添加到Ruby2.0.0,这是一个主要版本,您将在进行切换之前彻底测试您的代码(特别是如果您要生产),不是吗?编辑#2我怀疑它与效率有关(如果有任何问题请告诉我),所以我做了以下基准测试:(当然有些地方惰性更好。这可能是为了证明为什么Ruby不是一直在使用lazy?)require'fruity'require'prime'comparedolazy{g=Prim
我记得在Ruby2.0的case语句中允许使用procs,但我无法用google搜索它。我尝试检查Ruby2.0.0NEWS和HowtowriteaswitchstatementinRuby.我还访问了http://ruby-doc.org,但它的关键字链接是针对Ruby1.9,而不是Ruby2.0。case语句中是否允许proc? 最佳答案 是的。2.0.0p0:001>lamb=->(x){x%2==1}#=>#2.0.0p0:002>case3;whenlambthenp(:yay);end:yay#=>:yay2.0.0p0