恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2024|回复: 4

AC-68u (TM-AC1900) 刷坏CFE加装SPI双启动

[复制链接]
发表于 2020-2-5 17:18 | 显示全部楼层 |阅读模式
本帖最后由 tony601818 于 2020-2-7 17:46 编辑

现在AC-68u(或者我这台TM-AC1900)已经不能入各位大佬的法眼了,但作为一个拖了快一年的人,最终还是把这个坏了很久的ac1900修好了,感觉很开心有必要发个帖说下过程,毕竟BCM4708/BCM4709的资料感觉还是比较少的(K3除外)。
当时刚坏掉的时候就在这发帖询问了(帖子在此https://www.right.com.cn/forum/thread-592090-1-1.html,第19楼有我当时拍的关键部分高清图)——恩山还是人才辈出,在此特别感谢两位大佬,@zhjook@suyulin75 的提点,我拖到现在才按照帖中方法成功恢复了这个刷坏了CFE的机器。

特别注意,修复过程需要一些动手能力,对自己烙铁技术没有信心的朋友不要强上,以免损坏CPU或者伤到自己。

步骤还是比较简单的,尤其是在有了具体方案的前提下几乎上只要照做就行。

前期准备(无图):

1. 拆机,拆铝制散热片——这个应该都没啥问题。
2. 拆CPU和内存的屏蔽盖(天线向上,右侧的屏蔽盖就是)——这步花了我一些时间,主要是暴力拆解比较慌。不过因为是去年拆的所以记不得具体过程了,只记得用小的一字起翘了半天……
3. SPI NOR闪存,容量无所谓,只要能放下CFE(<300KB)就行。
4. 将CFE通过编程器写入SPI闪存,这个坛子里资料很丰富了,确定写入成功即可。需要注意的是,我用的是原始备份的CFE(直接拷贝的mtd0,大小是512KB整,实级应该在200KB以内),后面没有出现问题。如果丢失原机CFE可能需要找一个对应型号的,然后改好MAC地址。如果用原始的CFE,在恢复完成后会发现CFE命令都无法使用,此时只能重新刷入破解好的CFE。为了避免后面麻烦,建议这一步到位,有原始CFE的朋友可以去这里做一个(解锁全频段+最大发专业网络模拟游戏专业网络模拟游戏专业网络模拟游戏专业网络模拟游戏射功率)——https://cfeditor.feng.si/

到这前期准备就结束了,可以拿出烙铁准备动手了。

真正动手(高清图请点开查看):

1. SPI焊上去,位置就在NAND的左侧(U12),1号角对上白色那个方块,也就是左下角应该是1号,如果不确定可以万用表找下接地。我这渣技术弄成下图:



2. 按照@suyulin75 在原帖24楼所说,在CPU下方中间那个引出飞线。我用了漆包线,实际上用铜丝也可,关键是要这个点接地。如果只是为了维修直接短接那两个就行,铅笔涂一下就可以(烧毁不负责)。



顺便在这回下25楼——我用万用表测过了,下面那三个焊点都是接地的,所以启动时短接估计就能从SPI启动。

3. 我为了以后能反复用(毕竟拆屏蔽盖很费事),所以把漆包线引出来了,正好有个小缝,反面一片随便哪个都是接地的。我打算弄个小开关方便随时切换,这个缝隙位置如下:



4. 上电开机。我这通过TTL得知机器是在反复重启的,可能是因为NAND里的数据损坏,所以启动时按住RESET可进入Rescue模式以避免重启——如果没有TTL直接按住RESET应该也可以。之后连上电脑,设置IP(我这的是默认的192.168.29.1),不出意外就会进入CFE Web。



现在已经可以正常使用了,之前是上电完全没反应,只有几个灯常亮。

5. 做个开关?

漆包线接地——SPI启动;漆包线断开——NAND启动。选择只在启动的瞬间进行。这个和K3大同小异,NAND搞坏了按下开关开机就切到SPI启动了。

NAND CFE恢复准备


取决于你刷上SPI的CFE是啥,这步可能会与我不一样。我是刷的原版CFE,因此用了TM-AC1900_3.0.0.4_376_1703-g0ffdbba这个固件,直接在网页里刷就行。

——如果这样的话,还是需要重新从AC1900的系统里刷上破解好的CFE(具体步骤见https://www.right.com.cn/forum/thread-340393-1-1.html,用mtd-write来更新bootloader(CFE)。为了避免不必要的折腾,可以看第一步中的红字一步到位。

怎么看CFE是不是破解好的旧版?

最简单的方法就是在CFE>命令提示后输入help,如果直接报错(提示*** command status = -1就是新版,下面的步骤都没法做。如果help打完后有帮助信息,则可以继续。

NAND CFE恢复

到这步就简单了,查看下启动时的IP,并把电脑设置到同一网段,然后运行TFTP服务器。


  1. Init Arena
  2. Init Devs.
  3. Boot partition size = 262144(0x40000)
  4. *** flash_nflash_init ***
  5. Found a AMD NAND flash:
  6. Total size:  128MB
  7. Block size:  128KB
  8. Page Size:   2048B
  9. OOB Size:    64B
  10. Sector size: 512B
  11. Spare size:  16B
  12. ECC level:   8 (8-bit)
  13. Device ID: ……
  14. DDR Clock: 800 MHz
  15. Info: DDR frequency set from clkfreq=1400,*800*
  16. et0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 6.37.14.86 (r456083)
  17. CPU type 0x0: 1400MHz
  18. Tot mem: 262144 KBytes

  19. CFE mem:    0x00F00000 - 0x01795660 (9000544)
  20. Data:       0x00F4DCBC - 0x00F4E188 (1228)
  21. BSS:        0x00F4E198 - 0x00F93660 (283848)
  22. Heap:       0x00F93660 - 0x01793660 (8388608)
  23. Stack:      0x01793660 - 0x01795660 (8192)
  24. Text:       0x00F00000 - 0x00F44374 (279412)

  25. Device eth0:  hwaddr 14-DD-A9-XX-XX-XX, ipaddr 192.168.29.1, mask 255.255.255.0
  26.         gateway not set, nameserver not set
  27. Null Rescue Flag.
  28. Hello!! Enter Rescue Mode: (by Force)
复制代码


上面这段里,192.168.29.1就是路由器的IP,电脑上设置192.168.29.10(我喜欢10,这个随意设置),网关192.168.29.1,启动TFTP,把要刷到NAND上的CFE准备好(假设名字是mtd0.img)。

在CFE命令行中运行命令:

  1. flash -noheader 192.168.29.10:mtd0.img nflash0.trx
复制代码


或者

  1. flash -noheader 192.168.29.10:mtd0.img nflash1.brcmnand
复制代码


特别注意,我这如果用直接制作好的CFE则无法刷入——会提示NAND没有boot区域,类似这样:

  1. CFE> flash -noheader 192.168.29.10:mtd0.img nflash0.trx
  2. Reading 192.168.29.10:new.img:
  3. TFTP Client.
  4. - last blk -
  5. - Last block -
  6. Done. 231882 bytes read
  7. .Download of 0x389ca bytes Completed
  8. Write bootloader binary to FLASH (0xbfc00000)
  9. Could not open device 'nflash1.boot'
  10. *** command status = -6
复制代码


我的解决方法是直接在mtd0.img最后加了空字节,填充文件到512KB整,这样CFE就不会认为这个文件是bootloader了。
使用修改过后的文件,如果刷入CFE正确,就会有如下输出:


  1. CFE> flash -noheader 192.168.29.10:mtd0.img nflash0.trx
  2. Reading 192.168.29.10:mtd0.img:
  3. TFTP Client.
  4. - last blk -
  5. Done. 524288 bytes read
  6. Download of 0x80000 bytes completed
  7. Write kernel and filesystem binary to FLASH
  8. Programming...copysize=524288, amtcopy=524288
  9. done. 524288 bytes written

  10. BCM47XX SYSTEM RESET!!!


  11. Digital core power voltage set to 0.9375V
  12. Decompressing...done
  13. Digital core power voltage set to 0.9375V

  14. SHMOO VER 1.13
复制代码

这一步最重要的是flash最后那个设备的选择,具体可以见4楼大哥@zhjook 的说明。
如果不确定的话,务必选择nflash打头,且offset为0的设备名。我的例子里用的就是nflash0.trx。我设备的情况在3楼。

最后断开飞线,切换回为NAND启动,之后可能会因为NAND里没有系统会报错。不过能看到这的朋友刷个系统应该小菜一碟,梅林或者官方的随便选。

到此,你就拥有了一台可以SPI/NAND双启动的TM-AC1900(RT-AC68u)。因为和k3是一个系列的,所以具体步骤可能有些眼熟。
不过我感觉华硕的做工明显还是好很多,颜值也高,电磁屏蔽做的也很到位。K3那个塑料网口简直了……



我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-5 17:41 | 显示全部楼层
进入cfe命令模式,如果能识别nand,用命令就可以刷nand了

点评

谢谢提示!因为SPI里放的是原始的CFE,刚刚失败了。 用mtd-write更新了SPI里的CFE,现在已经可以看到两个flash了,很有意思。  详情 回复 发表于 2020-2-5 18:00
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-2-5 18:00 | 显示全部楼层
afeng11 发表于 2020-2-5 17:41
进入cfe命令模式,如果能识别nand,用命令就可以刷nand了

谢谢提示!因为SPI里放的是原始的CFE,刚刚失败了。

用mtd-write更新了SPI里的CFE,现在已经可以看到两个flash了,很有意思。
  1. CFE> show devices
  2. Device Name          Description
  3. -------------------  ---------------------------------------------------------
  4. uart0                NS16550 UART at 0x18000300
  5. uart1                NS16550 UART at 0x18000400
  6. flash0               ST Compatible Serial flash size 8192KB
  7. flash0.boot          ST Compatible Serial flash offset 00000000 size 256KB
  8. flash0.trx           ST Compatible Serial flash offset 00040000 size 1KB
  9. flash0.os            ST Compatible Serial flash offset 0004001C size 7872KB
  10. flash0.nvram         ST Compatible Serial flash offset 007F0000 size 64KB
  11. flash1.boot          ST Compatible Serial flash offset 00000000 size 256KB
  12. flash1.trx           ST Compatible Serial flash offset 00040000 size 7872KB
  13. flash1.nvram         ST Compatible Serial flash offset 007F0000 size 64KB
  14. nflash0.trx          AMD NAND flash offset 0 size 1KB
  15. nflash0.os           AMD NAND flash offset 1C size 131072KB
  16. nflash1.trx          AMD NAND flash offset 0 size 65536KB
  17. nflash1.brcmnand     AMD NAND flash offset 4000000 size 65536KB
  18. eth0                 Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller
  19. *** command status = 0
  20. CFE> show clocks
  21. Current clocks: 800/666/200/100 Mhz.
  22. *** command status = 0
  23. CFE>
复制代码

点评

show device 可以看到几个flash ,准备个68u的cfe ,看一下pcb上HW的版本,t1900和68u 版本一样可以互刷 spi 启动后,通过ttl 中断后,参考k3的刷机命令配合tftp flash -noheader 192.168.1.100:/68cfe.bin nfl  详情 回复 发表于 2020-2-5 22:08
我的恩山、我的无线 The best wifi forum is right here.
发表于 2020-2-5 22:08 | 显示全部楼层
本帖最后由 zhjook 于 2020-2-5 22:15 编辑
tony601818 发表于 2020-2-5 18:00
谢谢提示!因为SPI里放的是原始的CFE,刚刚失败了。

用mtd-write更新了SPI里的CFE,现在已经可以看到 ...

show device 可以看到几个flash ,准备个能用的cfe ,看一下pcb上HW的版本,t1900和68u 版本一样理论上可以互刷
spi 启动后,通过ttl 中断后,参考k3的刷机命令配合tftp

flash -noheader 192.168.1.100:/68cfe.bin nflash1.brcmnand

刷入成功与否主要是看最后这个设备名

点评

这个后来搞定了,思路和k3是一样的,现在配合开关已经可以双启动了。 我晚上来更新下最后这部分。  详情 回复 发表于 2020-2-6 02:53
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2020-2-6 02:53 | 显示全部楼层
本帖最后由 tony601818 于 2020-2-7 17:50 编辑
zhjook 发表于 2020-2-5 22:08
show device 可以看到几个flash ,准备个能用的cfe ,看一下pcb上HW的版本,t1900和68u 版本一样理论上可 ...

这个后来搞定了,思路和k3是一样的,现在配合开关已经可以双启动了。
最后这部分更新好咯!
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2020-10-28 19:12

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表