小米CR660X/TR60X系列,获取SSH权限后刷openwrt系统
一、背景介绍
目的是为了使用openwrt系统做网络相关的应用,利用手上的小米路由器来实验,看了相关资料,将 实际操作的过程以及踩坑进行记录。
需要刷固件首先就需要解决ssh权限问题,只有解决权限问题才可以进行刷机操作。
二、解锁ssh权限
两种方式:串口方式、openwrt系统辅助方式
1. 串口方式
该方法比较简单,推荐使用,需要有usb-ttl模块,下文主要描述这种方式
参考资料: https://www.bilibili.com/opus/870238271997739025
1.1 usb 转 ttl模块,需要安装驱动, 驱动链接
1.2 拆机后对应的串口接线,只接TX,GND,RX的触点,注意USB转TTL模块接上去时它的RX与路由器的TX接,TX和RX接,GND接GND,不要接错了,不然打开串口会一堆乱码或者连接不上。
1.3 使用xshell或者mobaxterm打开对应的串口,波特率设置为115200
双击左边你刚设置好的会话便可以连接(⚠️ 注意:连接 TTL 的时候,要先插上路由器电源,不然无法连接)
跑码完成后按下回车,就会显示这个界面,如果无法显示“ARE U OK”,请转到最后看下QA
1.4 终端中输入下面命令
nvram set ssh_en=1
nvram commit
sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear
/etc/init.d/dropbear start
2. 辅助方式
参考链接:
https://www.right.com.cn/forum/thread-6322650-1-1.html
https://www.right.com.cn/forum/thread-8372060-1-1.html
https://openwrt.ai/cr660x-%E8%8E%B7%E5%8F%96ssh%E5%88%B7pb-boot%E4%B8%8Eopenwrt%E6%95%99%E7%A8%8B/
三、刷入pb-boot
3.1 刷入pb-boot
执行完毕后我们就可以连接ssh了,SSH的IP是路由器的IP,用户名root,密码(密码需要根据设备sn生成, 网址)
WinSCP,新建一个会话按刚刚说的填写,填写完毕后把电脑的网口连接到路由器的LAN口,查看电脑网口所获取的网关ip,如果路由器有DHCP,一般就是路由器的ip(注意路由器wan口先别接);或者使用windows上自带的scp命令
打开后把pb-boot.img上传到路由器/tmp目录里面
打开ssh输入这个刷入指令,reboot重启
mtd write /tmp/pb-boot.img Bootloader
重启后在终端中ifconfig看下网段信息,电脑通过网线连接路由器LAN口,固定IP,与路由器在一个网段上,浏览器输入192.168.xxx.1 就是刷好的pb-boot。
pb-boot链接:
链接:https://pan.baidu.com/s/1pzfPvB6yLu4EoQsXI04_kg?pwd=gr2x
提取码:gr2x
四、刷入正式的openwrt固件
参考资料:https://openwrt.ai/
路由器会自动重启, 等蓝灯常亮后 浏览器 输入 10.0.0.1 进入OpenWrt底包后台
小米CR660x 固件定制和下载地址 OpenWrt固件下载与在线定制 (openwrt.ai)
五、QA
1、串口无法输入解决办法
参考资料:https://blog.csdn.net/humphreyandkate/article/details/127328785
由于开机后boot环境变量setenv uart_en为0导致。参考大佬解决方法如下:
1.1 路由器正常运行时,按住RESET按钮不放,直到重启
1.2 重启后仍然不要放,持续十五秒钟,直到出现如下字符“BOOTP broadcast”,这时候路由器进入恢复模式。
1.3 多次按下Ctrl+C以打断恢复模式
1.4 此时路由器将会正常BOOT,在开始BOOT后立刻断掉路由器的电源
1.5 此时准备好在插入路由器电源后立刻插入串口线(这个顺序不能错,且串口需要拔掉再插入),并立刻按下键盘回车键
1.6 如果足够及时就会出现如下界面, 此时就可以操作UBOOT了。
1.7 依次输入
setenv uart_en 1
saveenv
boot
1.8 然后等待路由器引导,大约几十秒后,输入回车就可以出现“ARE U OK”
开启串口输入只有当次启动有效,尽快根据上文开启ssh。