whc2001 发表于 2020-12-19 22:08

网件PR2000随身路由器备份原厂固件以及刷这刷那

本帖最后由 whc2001 于 2020-12-26 02:53 编辑

之前在某淘宝店发现有卖这玩意16块钱一个(车已经开走了),MT7620N+16M+64M,没事干撸俩来玩,试图硬改结果工具不趁手玩坏了一个,剩下这个不拆了纯软件折腾,写个帖子给自己做一下备份

>备份原厂

用网件的传统艺能打开Telnet:顶部开关拨到Wired(靠近交流电插头一侧),黄色网口连接电脑,确认可以打开管理页面后(默认IP地址是192.168.168.1用户名admin密码password)浏览器访问 http://192.168.168.1/setup.cgi?todo=debug ,提示"Debug Enable!"说明已经打开Telnet端口,用对应的工具(我用的PuTTY)连入,用户名root,无密码,敲回车直接出现Ralink的Logo并出现命令提示符#

查看分区情况:执行# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "Bootloader"
mtd1: 00200000 00010000 "Kernel"
mtd2: 00020000 00010000 "English UI"
mtd3: 00020000 00010000 "Chinese UI"
mtd4: 00020000 00010000 "Russian UI"
mtd5: 00020000 00010000 "Portuguese UI"
mtd6: 00020000 00010000 "German UI"
mtd7: 00020000 00010000 "Other UI"
mtd8: 00010000 00010000 "WiFi Data"
mtd9: 00010000 00010000 "SC Private Data"
mtd10: 00010000 00010000 "POT"
mtd11: 00010000 00010000 "Traffic Meter"
mtd12: 00010000 00010000 "Traffic Meter2"
mtd13: 00010000 00010000 "SC Nvram"
mtd14: 00010000 00010000 "DPF"
mtd15: 00c60000 00010000 "Rootfs"
mtd16: 00010000 00010000 "Ralink Nvram"
mtd17: 00010000 00010000 "Reserved Block1"
mtd18: 00010000 00010000 "Reserved Block2"
可以发现里面东西不少,先全部备份一下吧,因为目前只有Telnet没法传文件,而机器上正好有个USB接口,那么找个不用的U盘格成FAT32插进去,之后/mnt/shares/这个路径底下应该会自动挂载上U盘,我这边是/mnt/shares/U这个文件夹,不知道为啥这个机器没有mtd,所以使用dd干活:备份第一个分区(Bootloader)
# dd if=/dev/mtd0 of=/mnt/shares/U/mtd0.bin
512+0 records in
512+0 records out

校验备份出来的文件
# md5sum /mnt/shares/U/mtd0.bin
d1022451fc2b39cc959cae97dca0c389/mnt/shares/U/mtd0.bin

校验分区内的数据,两者MD5应一致
# md5sum /dev/mtd0
d1022451fc2b39cc959cae97dca0c389/dev/mtd0
如法炮制备份所有分区,之后umount /mnt/shares/U卸载U盘,如果提示Device or resource busy那么可以保存一下之前所有mtd分区各自的MD5值以备查验,然后直接reboot

到此备份完成,可以折腾了

>刷入BREED

这个稍微麻烦一点,因为这个机器没有mtd,所以只能dd刷入

由于dd无法直接擦除分区,所以这里用了一个比较迷惑的方法:根据分区大小(0x40000=262144字节)创建一个二进制文件,之后将文件内容全部填充为0xFF(用你喜欢的方式,十六进制编辑器或写程序生成都可以),把这个文件dd进分区,就相当于对分区进行了擦除,这个文件我暂且命名为erase.bin

到H大的帖子里下载breed-mt7620-blank.bin,这里我将BREED的内容写入到了刚才那个擦除用的erase.bin的头部,也就是前面内容是BREED,后面全部是0xFF,这个文件应该就是刷入之后mtd0应该成为的状态,暂且命名为breed-padded.bin,获取一下它的MD5值作为刷入之后的校验,我这里得到的值是654F4C512AE249759BADFA1B2E0F22B3

把前两个bin文件(blank.bin和breed-mt7620-blank.bin)复制到U盘,插回USB口,回到刚才的Telnet,开始刷(注意这里写入的时候设备要用mtdblock0而不能用mtd0否则写不进去,我也不知道为啥):
刷入全是0xFF的erase.bin,清除分区所有内容
# dd if=/mnt/shares/U/erase.bin of=/dev/mtdblock0

刷入breed-mt7620-blank.bin,正式刷BREED
# dd if=/mnt/shares/U/breed-mt7620-blank.bin of=/dev/mtdblock0

校验一下分区内容,这里的输出应该是和刚才拼接起来的breed-padded.bin的MD5完全一致,否则有问题
# md5sum /dev/mtd0
654f4c512ae249759badfa1b2e0f22b3/dev/mtd0校验MD5正确之后就是激动人心的时刻,电脑IP地址调192.168.1.100,把网络适配器除了连机器的那个其他的全部禁用(重要,否则可能不能成功中断BREED启动,每次都忘),打开BREEDEnterPlus开始监听,Telnet敲reboot,等待一会,BREEDEnterPlus提示中断成功之后就可以打开Web界面了,建议第一时间去备份编程器固件以备不时之需

>检测各种GPIO


进入BREED的Telnet,执行btntst,发现GPIO63一直刷屏(可能是某种时钟信号),重启后先btntst disable 63再检测,发现RESET键是GPIO1低电平有效,启用并写入环境变量gpio.customized.reset=1L


另外机器上面那个电源开关有2档,反复测试发现拨动到Wired档(靠近交流电插头一侧)导致GPIO20为高电平GPIO21为低电平,拨动到Wireless档(靠近天线一侧)导致GPIO20为低电平GPIO21为高电平,理论上可以考虑在Op里写开机启动脚本还原原版固件的功能,但是暂时懒得搞

未完待续,接下来要编译和刷入Op,有空再说,咕咕咕

补个手头这个机器备份出来的完整固件(BREED备份出来的编程器固件和dd备份出来的各分区固件):https://pan.baidu.com/s/1FtXtDX-F_3T8vMnrGgDdBQ 提取码: ugm7

jshensh 发表于 2020-12-20 22:23

看了下 openwrt 官网是有支持网件 JWNR2010 v5 的,也是 MT7620N 的平台 https://openwrt.org/toh/hwdata/netgear/netgear_jwnr2010_v5

whc2001 发表于 2020-12-22 05:08

jshensh 发表于 2020-12-20 22:23
看了下 openwrt 官网是有支持网件 JWNR2010 v5 的,也是 MT7620N 的平台 https://openwrt.org/toh/hwdata/n ...

我用的Lean的仓库,找了一下没找到这个型号,倒是华硕RT-N14U的强行刷进去能起来,可以在这个基础上改,但是还要调整很多玩意

jshensh 发表于 2020-12-22 17:26

本帖最后由 jshensh 于 2020-12-22 17:32 编辑

whc2001 发表于 2020-12-22 05:08
我用的Lean的仓库,找了一下没找到这个型号,倒是华硕RT-N14U的强行刷进去能起来,可以在这个基础上改, ...
JWNR2010 目前还是 snapshot,官网有 dts https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/ramips/dts/mt7620n_netgear_jwnr2010-v5.dts;hb=d6cb50c7ba8447f018139401d0d3821069e5f389
刚搜了下 openwrt 支持的 mt7620n 设备其实还是挺多的,https://openwrt.org/toh/views/toh_extended_all?dataflt%5BSwitch*~%5D=MT7620N

Alameas 发表于 2020-12-25 00:29

头大,求一份eep

whc2001 发表于 2020-12-26 02:48

jshensh 发表于 2020-12-22 17:26
JWNR2010 目前还是 snapshot,官网有 dts https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=tar ...

有dts模板就好办了,之前用breed测了一下LED的引脚,eth是GPIO44,wifi是FPIO72,USB不知道为啥死活弄不亮,有空再研究研究,完事改个dts应该就舒服一些了

whc2001 发表于 2020-12-26 02:56

Alameas 发表于 2020-12-25 00:29
头大,求一份eep

传了,发链接要审核

jshensh 发表于 2020-12-27 02:42

whc2001 发表于 2020-12-26 02:48
有dts模板就好办了,之前用breed测了一下LED的引脚,eth是GPIO44,wifi是FPIO72,USB不知道为啥死活弄不 ...

snapshot 的这个 dts 不太全其实

jshensh 发表于 2021-9-25 14:02


可以了,朋友弄了个 dts https://github.com/openwrt/openwrt/pull/4247

ailun9020 发表于 2021-9-26 13:38

网件PR2000随身路由器备份原厂固件以及刷这刷那

zhangchaozjc06 发表于 2021-9-28 21:08

编译了一个纯净版的固件,只添加了中文翻译
可以使用breed刷固件,固件布局选0x40000
https://www.z2os.com/openwrt-21.02-r16297-1c95d78f08-ramips-mt7620-netgear_pr2000-squashfs-sysupgrade.bin

ysjd22 发表于 2022-9-3 08:00

可以出个系统的教程不?贴中的连接基本也都失效了

chuhen 发表于 2023-2-23 13:28

这个帖子中 居然都是新手ID 不可思议

Yon8 发表于 2023-3-1 19:49

jshensh 发表于 2021-9-25 14:02
可以了,朋友弄了个 dts https://github.com/openwrt/openwrt/pull/4247

求给编译好的固件链接 我什么插件都没添加的initramfs-kernel可以刷入,但是openwrt上升级squashfs-sysupgrade传到百分之六七十对话框就消失,再传两次直接崩溃重启,breed直接刷squashfs-sysupgrade无限重启,再次重新编译添加了两个插件,initramfs-kernel刷入也是无限重启,选择0x400的闪存布局或则公版布局都一样无限重启。:dizzy:

Yon8 发表于 2023-3-10 19:02

zhangchaozjc06 发表于 2021-9-28 21:08
编译了一个纯净版的固件,只添加了中文翻译
可以使用breed刷固件,固件布局选0x40000
https://www.z2os.c ...

求补链接
页: [1] 2
查看完整版本: 网件PR2000随身路由器备份原厂固件以及刷这刷那