update
2016.12.16:由于文章中的360 网盘的资源挂了,重新更新了tomato的刷机包的路径
缘由
小米路由器R1D已经使用了快一年,一直想刷机,主要因为:
- 后门问题,请搜索知乎“小米路由器 劫持”,虽然严格讲天朝人民是没有什么隐私,但被人强奸总是很郁闷的。
- 用了半年后,经常会掉网,很快就自动恢复,有时候莫名其妙手机就掉网开始走移动流量,很郁闷。
小米路由器R1D
小米路由器R1D是一款基于博通bcm4709( c )和OpenWRT深度定制的智能路由器。
准备工作
- 了解基本的linux 常用命令,ssh,root权限等。
- usb一个,用来制作usb刷机工具。
- 备份你的拨号账号密码。
- 一个备用的路由器,刷机有风险,一旦出现变砖,备用路由器至少可以让你继续使用网络,不至于影响正常的网络使用。
- 一米的短网线,用来直连路由器,当然理论上wifi也是可以的,但是某些rom在进入特定的刷机工具状态时wifi是不可用或者启动有延迟的,有线则方便很多。
刷机的ROM备选
小米路由器是深度定制版的OpenWRT,网上大概搜了一下,可选的有OpenWRT原生系统,DD-WRT和Tomato三种系统可以尝试。
OpenWRT
ROM
首先从官方的硬件支持列表我们并没有看到R1D的支持:https://wiki.openwrt.org/toh/start 。其次从小米论坛和google也没有找到明确支持的rom。
刷机
巧妇难为无米之炊。
结果:放弃
DD-WRT
ROM
从官方的支持列表中:http://dd-wrt.com/wiki/index.php/Supported_Devices ,我们并没有看到R1D的支持ROM。但是我们可以找到非官方的rom,例如:http://bbs.xiaomi.cn/t-10691878 。
刷机
刷机流程参见:http://www.right.com.cn/forum/thread-143121-1-1.html ,本人尝试多次,均在第6步失败,初步判断是tftp server没有正常启动。
分析原因:原博是在0.4.58的rom上做的验证,本人尝试0.4.58版的USB和web页面升级的方式,均失败。web直接校验失败,USB刷机后,路由器无法正常启动,于是只能采用的最新开发版来验证。猜想是小米硬件做了升级限制或者在软件层面有专门对这个漏洞做修复。
结果:失败。如果有最近刷机成功的兄弟,也望留言指教。
Tomato
ROM
AdvancedTomato是一套基于Tomato的路由器管理界面,其核心是tomato。这个是tomato对应R1D的下载路径:
本次刷机实际使用的是这个:http://bbs.xiaomi.cn/t-11522784 ,因为有人验证过,并且支持中文,相对风险会小些,实际效果有待日后进一步观察。
说明:
因为文章里面的360的网盘挂了,特将rom重新发布:
链接: http://pan.baidu.com/s/1o8TRooE 密码: qe4j
因为本人验证时已经是很久以前的事情了,所以建议看到的朋友在上面的路径下载最新的版本尝试。
刷机
- 升级到最新开发版 :http://miwifi.com/miwifi_download.html
- 开ssh,http://www1.miwifi.com/miwifi_open.html
- ssh 192.168.31.1,ifconfig得到网卡MAC地址(或者刷机之前在web页面记录下MAC)
- 下载tomato固件,见前面的rom部分内容 。
- 下载tomato刷机包 。
- 打开CFEEdit.exe,通过菜单打开cfe.bin,修改其中的MAC地址为你的小米路由器的MAC地址,改好后覆盖。
- 将cfe.bin、backup.sh、flash-cfe.sh这三个文件放入U盘,插入路由U口。
- ssh登录路由器,登陆的账户名和密码参见 http://www1.miwifi.com/miwifi_open.html 。执行:
nvram set boot_wait=on
nvram set wait_time=10
nvram commit
进入U盘目录:cd /extdisks/sdb1 ,此路径可能会不同,请自行确认。执行:
./backup.sh
./flash-cfe.sh
先备份系统文件,在必要时可以手动恢复。 - 电脑有线ip设置为192.168.1.1段,通过有线连接局域网端口。
- 重启路由,浏览器打开192.168.1.1,刷入tomato固件即可。
刷回小米系统
- 将miwifi-stock.bin和小米官网下载的小米路由器最新版U盘刷机包(改名我miwifi.bin)放到U盘中
- ssh登录小米路由器,执行命令:
mtd-write2 /mnt/U盘/miwifi-stock.bin linux - 按复位键,重新接电源,等黄灯闪烁后松开复位键
- 几分钟后黄灯常亮,拔下U盘
- 浏览器登录小米路由器,通过web页面更新最新开发版。
结果:成功。
启示:按照CFE的思路,理论上也可以来刷DD-WRT,但已经折腾一天了,改日有机会再试吧。
AdvancedTomato 基本安全配置
- 修改界面语言,修改管理员名称和密码:系统管理 - 管理员访问
- 设置宽带拨号,DHCP,wifi的SSID和密码:基础设置 - 网络
注意:
WAN设置:类别为PPPoE,不要勾选“使用DHCP”。
LAN:默认的DHCP是有问题的,要设置正确的值,客户端才能正确使用外网。
无线网络:设置WPA/WPA2密码。 - 如果为了进一步的安全,建议开启无线过滤:基础设置 - 无线过滤 - 允许以下客户端。手动添加需要wifi访问权限的设备,避免有人搞小动作
AdvancedTomato 服务配置
- USB&NAS
通过设置,我们可以外接USB硬盘了,这个对某些人似乎有点用。 - 文件共享
删除默认的共享,设置你要共享的目录,记得设置身份验证。这样你就可以在局域网使用路由器的1T硬盘了 - DLNA服务器
如果你想在bt下完电影后,直接通过电脑或者手机观看,就要设置这个。设置一下媒体文件的目录,设置完后,DLNA客户端就可以直接在局域网发现媒体资源了。如果需要ios的客户端,你可以在APP store搜索Arkuda。 - BitTorrent客户端
开启后,你可以通过路由器页面给路由器下发bt任务了,它会下载到你指定的路径,如果这个路径支持DLNA,那么下载完,你就可以直接观看大片了。 - DDNS+端口转发
如果你要在远程通过互联网来玩bt,那么就需要继续设置DDNS+端口转发。
最后
如果你是其他型号的路由器,只要是刷相同类型的rom,流程基本相似,希望有帮到大家,也欢迎大家交流。
最后,有图有真相:
刷完后,感觉整个世界都平静了。
其他参考
http://blog.icece.tw/Xiaomi-R1D-1TB-Flash-Tomato
补充:
- 关于发热的问题,我觉得原版其实就发热,我自己尝试的135的版本,刷机后感觉网速和发热并没有改善,期望新尝试的朋友继续反馈