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