极路由1S(HC5661A)刷机篇
概述
产品简介
极路由1S(HC5661A)是一款无线路由,无线传输率为300Mbps,支持4个Lan + 1个Wan。
硬件配置
Target: ramips
Subtarget: mt76x8
Package architecture: mipsel_24kc
CPU: MediaTek MT7628AN
CPU Cores: 1
CPU: 580 MHz
Flash: 16 MB
RAM: 128 MB
Ethernet 100M ports: 4
Antenna:5 dBi
刷机方法
刷入不死uboot(breed)
AR/QCA/MTK Breed,功能强大的多线程 Bootloader,感谢hackpascal大神。
注意:极路由1S-HC5661A的主芯片是mt7628而非mt7620,千万别选错固件了,否则变砖后果自负。
固件名称:breed-mt7628-hiwifi-hc5661a.bin 极壹S (HC5661A) 专用,波特率 115200,复位键 GPIO#38
通过SSH登录路由器:ssh -p 1022 [email protected]
下载固件到本地:cd /tmp && wget http://breed.hackpascal.net/breed-mt7628-hiwifi-hc5661a.bin
升级固件命令:mtd -r write /tmp/breed-mt7628-hiwifi-hc5661a.bin u-boot
不死uboot(breed)使用方法
(1) PC用网线连路由器LAN,设置为自动获取IP
(2) 路由器断电,按住reset 加电(不松开reset),保持按住reset 5秒左右,路由器灯闪。如果接了TTL,可以按回车进入命令行:
(3) PC网卡获取到192.168.1.x的地址 (如未获取到手工设置),浏览器访问 192.168.1.1。接着你就会看到一个uboot控制台的界面:
刷入OpenWrt固件
通过Breed Web恢复控制台的界面进行固件升级:
升级完成,可以通过串口或者Web页面确认:
在设备上升级/备份常用的命令
- 查看当前系统分区信息:
[email protected]:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 “u-boot”
mtd1: 00010000 00010000 “hw_panic”
mtd2: 00010000 00010000 “factory”
mtd3: 00f70000 00010000 “firmware”
mtd4: 0015f1f7 00010000 “kernel”
mtd5: 00e10e09 00010000 “rootfs”
mtd6: 00bd0000 00010000 “rootfs_data”
mtd7: 00020000 00010000 “oem”
mtd8: 00010000 00010000 “bdinfo”
mtd9: 00010000 00010000 “backup”
固件/分区备份
dd if=/dev/mtd3 of=/tmp/firmware_backup.bin
固件/分区恢复
mtd -r write /tmp/firmware_backup.bin firmware
仅备份路由器配置
sysupgrade -b /tmp/back.tar.gz
恢复路由器配置
sysupgrade -f /tmp/back.tar.gz
恢复默认设置
rm -rf /overlay/* && reboot 或者 mtd -r erase rootfs_data
通过命令行升级
先用winscp将固件文件xxx.bin传至tmp目录,然后:
sysupgrade /tmp/xxx.bin 或者 mtd -r write /tmp/xxx.bin firmware
OpenWRT固件自编译
源码下载:https://github.com/openwrt/openwrt,目前最新稳定版本为v18.06.2。
(1) 升级package
./scripts/feeds update -a // 更新最新的包
./scripts/feeds install -a // 下载安装所有包 目录package/feeds/
使用feeds.conf.default 默认配置进行软件包的更新与安装。参考文档: https://openwrt.org/docs/guide-developer/feeds
在Openwrt系统中,“feed”是一系列的软件包,这些软件包需要通过一个统一的接口地址进行访问。“feed”软件包中的软件包可能分布在远程服务器上、在svn上、在本地文件系统中或者其他的地方,用户可以通过一种支持feed机制的协议,通过同一个地址进行访问。
(2) 编译项配置
make menuconfig
Target System - 表示目标机器CPU型号
Target Profile - 表示目标机器设备型号
(3) 编译
make V=99 // V = verbose 全部都显示
第一次编译的话,因为要下载很多依赖的源码包,过程会比较长。最终生成的目标产物为:./bin/targets/ramips/mt76x8/openwrt-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin
参考资料
(1) OpenWRT 编译过程