抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

红米 AC2100 开启 SSH 以及坏块检测

背景

想增加内网传输速度加快时间机器备份速度,换掉了以前的百兆3A,手上的 WIFI6 只有米11一台,就随便搞个 WIFI5 用用,找一找便宜的千兆路由,也就红米 AC2100了。网上说红米参差不齐,有坏块的建议退货,于是~

准备工作

既然要检查坏块,就得开启 ssh,不然就得拆机,那还是 code 来得快。

开启 ssh 是使用 web 注入漏洞,需要降级到支持 web 注入漏洞的固件版本,版本为2.0.7 ,网上找下,这里不提供。

下载后直接从后台手动上传固件并降级,不需要清除数据。

web 注入步骤

管理页面登录后地址栏链接应为:

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/web/home#router

<STOK>是一串字符,作用就是登录凭证,一个口令。

在浏览器地址栏中输入以下链接代码,注意替换掉<STOK>部分,否则无效:

http://192.168.31.1/cgi-bin/luci/;stok=<STOK>/api/misystem/set_config_iotdev?bssid=Xiaomi&user_id=longdike&ssid=xxx

默认返回{"code":0},然后 mac 终端登录即可:

ssh root@192.168.31.1  

密码的话,去这里填 SN,一整串包括/,SN 可以在路由机器背后找到。

该链接已失效

得出的密匙可用于 ssh 登录,登录成功会有 Are you ok 字样。

检测坏块

因为刚刚刷固件重启过,所以不必要特意重启。

dmesg | grep '[B|b]ad.*block'

或者这个也行:

dmesg | grep eraseblock

总之,结果就是很正常尴尬。。。

root@XiaoQiang:~# dmesg | grep '[B|b]ad.*block'
[    3.000000] Scanning device for bad blocks
[    3.010000] Bad eraseblock 14 at 0x0000001c0000
[    3.020000] Bad eraseblock 15 at 0x0000001e0000
[    3.330000] Bad eraseblock 768 at 0x000006000000
  • 执行指令没有返回任何信息,翻日志也没找到任何闪存相关信息,重启下路由再找一次。
  • 执行后返回信息中有ESMT字样,翻日志也没有显示坏块信息的是ESMT闪存,没有检测到坏块。
  • 较为正常东芝闪存返回信息:坏块768。但刷固件一切正常。
  • 是东芝闪存而且有问题的路由返回信息如图,坏块90+768,根据调查“90”这个数字还有其他值,推测跟东芝闪存体质有关。
  • 坏块为14 15以及768可能无法刷入20M大小以上的openwrt系统,如存在以上坏块且需要使用openwrt系统,建议尽快退换货。

完美命中。

不知道是因为京东退货的人多,然后我拿到的这个有问题还是本来就大多数有问题,不过这不重要,到底要不要换货呢?万一换来的还是不行呢?麻烦!但实际上我没有要折腾的心思,duck 不必,还是让树莓派继续服役吧,以后再换个好路由。

后续

考虑到一些信息比较旧,再查了下,找到 openwrt linux 内核高于4.10 则已经支持屏蔽坏块,参考提交:

https://github.com/openwrt/openwrt/commit/527832e54bf3bc4d699a145ae66f34230246f0a9

但我未验证。从原理上讲,坏块是固定的,屏蔽掉并不是难事,或许现在的固件早已支持。原帖:红米AC2100的坏块问题 

坏块的意思其实就是内存某个位置无法记录数据,导致无法读写或者读写后不会成功,如果系统某个核心数据需要用到该块,而恰好这个块为坏块则可能无法开机,或者系统检测到坏块会触发自动重启之类。

参拷

红米(小米)AC2100无需Telnet刷入Breed和Padavan固件教程
红米(小米)AC2100Breed和Padan固件教程及刷回官方教程


本站由以下主机服务商提供服务支持:

0条评论

发表评论