家庭网络 2015 年 1 月 20 日

一次曲折的小米路由Mini开启SSH经历

本篇文章介绍了作者购买小米路由MINI后,尝试获取SSH权限刷机的过程。作者按照官方教程操作多次失败后,通过串口监测发现刷机失败的原因是`miwifi_ssh.bin`校验没通过。经过验证,作者发现官方提供的下载链接被墙了,重新下载并校验后刷机成功。文章提供了一种通过串口监测错误信息的解决方案,对于类似问题的读者可能有一定的参考意义。
随着无线终端的增多,家里的WR703N似乎不够用了,高负载时偶尔会死机,影响上网的体验,于是考虑换一台路由器。
目前炒得火热的路由器大都是MT7620A方案的,在360路由、百度NEWWIFI和小米路由MINI之间徘徊了一下,最终还是选择了小米路由MINI。从网上的拆机图片来看,做工似乎不错,而且山寨TouchPad的外观看着也很舒服。 culiang wifi mini
买回来的第一件事当然是获取SSH权限,这样就可以换掉恶心的山寨ROM了。小米对发烧友似乎很友好,官方给出了完整的教程,看上去多感人啊!
get ssh
get ssh
照着教程上面的步骤操作几次之后,竟然一直失败。将miwifi_ssh.bin放到U盘上,按住reset键启动之后黄灯闪了几下之后就亮起红灯,意味着刷机失败。以为是操作错误,更换U盘文件格式为FAT、更换好几个版本的开发板ROM、尝试不同的reset键延时之后仍然无果。
各种失败的尝试浪费了近1个小时,最终突然头脑一热(难道这就是粗粮的真谛?为发烧而生),想起通过串口监测一下错误信息。于是拆机、接线。 serial
从Putty上获取的信息可以看到,刷机失败的原因是miwifi_ssh.bin校验没通过!
...
Rootvfatname: |miwifi_ssh.bin|
RootName: miwifi~1.bin, start: 0x4, size:  0x1170
Filesize: 4464 bytes
4464 bytes
gc - clustnum: 4, startsect: 640
Size: 4464, got: 4464
Using upgrade file miwifi_ssh.bin
CRC verify success!
In RSAVerify(): Padding check failed!
In RSAVerify(): Hash check failed!
rsa_verify_with_keynode_raw: RSA failed to verify: -13
RSA signature verify failed! Err code = 0xfffffff3
Image verify failed!
难道是小米在新固件上更换了密钥?在驱动之家下载了mwifi mini 开发板0.4.36版本的ROM之后,成功刷入miwifi_ssh.bin
...
Rootvfatname: |miwifi_ssh.bin|
RootName: miwifi~2.bin, start: 0x5, size:  0x1170
Filesize: 4464 bytes
4464 bytes
gc - clustnum: 5, startsect: 704
Size: 4464, got: 4464
Using upgrade file miwifi_ssh.bin
CRC verify success!
RSA signature verify success!
raspi_read: from:30000 len:10000
Erasing SPI Flash...
raspi_erase: offs:30000 len:10000
.
Writing to SPI Flash...
raspi_write: to:30000 len:10000
.
done
raspi_read: from:30000 len:10000
Erasing SPI Flash...
raspi_erase: offs:30000 len:10000
.
Writing to SPI Flash...
raspi_write: to:30000 len:10000
.
done
Rebooting...
看来粗粮在新ROM上的确使用了不同的密钥来签名,导致刷ssh包时校验失败!这样的话miwifi_ssh.bin根本就不可能刷入新的开发板ROM!也就是说这样的话官方的教程根本就是个骗局了!米黑+1。
启用SSH功能后建议参考s_x_g同学的帖子开启串口的输入功能,这样就可以通过串口终端进行操作了,以后修复问题也方便些。
root@XiaoQiang:/# nvram set uart_en=1
root@XiaoQiang:/# nvram commit
最后刷上PandoraBox.用着舒服多了!
openwrt PandoraBox
openwrt PandoraBox