因城施策 2017-3-1 19:45
拆解并修复一台小米路由器R1D![7P]
[align=left]前几天在隔壁电子发现一只尸体小米路由器,据说是开机不亮灯,原装硬盘也被原主拆掉了,不过看成色并不很差,就成功的再次捡垃圾,今天到手拆一拆修一修,也给大家图个乐呵。
机器到手看上去还是蛮新的,没有多少划痕,但是灰尘比较大,于是迅速想办法拆开,外壳就丢到洗衣房水池子泡着去了,主板清扫一下还是蛮清爽的。
(这幅图忘了拍照,借用隔壁拆机图)
[img=960,1280]http://p3.pstatp.com/large/17f200034f486c78d17b[/img][/align]
[align=left]
找了一块硬盘插上开机,电源接通后硬盘不启动,三颗led均不亮,usb电源输出一瞬间后下跌到0.35v,测量sata电源口的5v电压为0,初步怀疑启动过程出错或者硬件有故障
板子上带有一只ttl串口,理论上uboot和内核日志都会从这里输出相关信息,尝试接一个串口线读取,发现上电瞬间uboot的初始化信息已经输出,但是进入引导后出现了大量乱码,最后停在某句话后再也不动,更换波特率后乱码部分正常解析,得到最后一句话是某程序的语法有错误(undefined reference to xxxxxx)
这句话很奇怪,因为理论上引导过程是一个非解释性过程,而且我插入的硬盘是空白的,小米的路由器在板载flash内的系统镜像应该会引导机器进入安全模式,重点怀疑这只flash内部的程序出现错误。
[img=450,800]http://p3.pstatp.com/large/17f30006617028aa01ad[/img]
拆下flash放到编程器读取,这只flash是mxic的mx25l12835f,128mbits/16mbytes的spiflash
读出后很明显找到了问题
[img=800,429]http://p3.pstatp.com/large/185200028ce17382cacc[/img]
Pandorabox,是openwrt的一个同源分支,那么下面就能解释这台机器的故障原因了,个人想法是原主尝试用网上流传的方法刷写Pandorabox固件,但是出现了错误机器无法开机,修复不成功于是拆下还可以利用的硬盘,将机器出售。
找到同样拥有一台r1d的小伙伴,借来他的路由器,将他的路由器的flash拆下并且读出,小米的路由器和极路由很像,在固件里保存了一个sn码,开机的时候会验证是否正确,但是都是采用明文保存,所以进行简单的替换即可
[img=800,520]http://p3.pstatp.com/large/185200028cde49fbd5be[/img]
在这只路由器的底部找到铭牌上的sn,写入到固件里,如图,然后继续用编程器写回flash,[img=450,800]http://p1.pstatp.com/large/17f30006616d2a814ece[/img]
原样装回去
[img=450,800]http://p1.pstatp.com/large/185100028cdf878c1d66[/img]
顺便之前在检测各路电源电压的时候打开了主芯片的屏蔽盖,照一下晶亮的芯片~
[img=800,450]http://p3.pstatp.com/large/18570000fe1df2b9dcef[/img]
尝试开机,这回故障灯(黄色)亮起,检测usb和sata电压依然是一瞬间消失,但是等机器运行不到十秒钟后突然恢复正常,用小伙伴的机器也验证了这个状态,应该是开机前几秒有一个初始化过程,之后才会正常启动。
按照小米的说明下载了系统镜像,用U盘刷入,机器正常开机。
至此这台路由器恢复正常功能~赶紧去水池刷外壳去[/align]