ubnt解决方案
查看: 43877|回复: 68

[原创] 【最简单的JTAG】使用JTAG修复SMC无线硬盘盒(MGB100)

[复制链接]

198

回帖

5618

积分

70 小时

在线时间

中校

Embedded Linux砖家

注册时间
2008-10-23
金币
4923 个
威望
55 个
荣誉
12 个

尚未签到

发表于 2008-12-22 22:30
本帖最后由 lintel 于 2010-5-31 20:12 编辑

虽然MGB100提供了Recovery Mode恢复固件,但是,假如你在Recovery Mode下用TFTP刷新新的固件(比如WAP-0007的固件)的时候,突然断电或者网卡断线了,会怎么样?!!
显然,你的机器会变成转头,开机的时候全部灯都是亮的,不能启动,Recovert Mode也没能启动!!没办法,你的恢复模块也损坏了,只能用JTAG了。废话到此为止,下面切入正题。
在开始JTAG之前,我们必须做以下准备:

1.JTAG线一个,可以自制,也可以买一个,RDC的JTAG的JTAG线和XILINX的JTAG线是一样的。
2..TTL线,这个可以使用老式手机的COM数据线代替,我用的是索尼爱立信J系列的数据线。
3..RDC Loader,就是JTAG软件。
4..Red Boot,就是你们说的CFE。Redboot是开源的,你自己也可以编译一个。
5..把电池和Flash芯片中间的R24连接上,注意,不能直接连接上,需要用4K7的电阻.(其实也不一定要4K7,这个电阻用来缓冲的。)
6.TFTP32,这个是TFTP服务器。
7..一个完整的4M Flash芯片备份。可以使用编程器备份。
一切准备就绪就可以开始了。

以下是JTAG的接线图.




其中:

    1. GND  o  oTDI
     Ser_Tx o  o  TCK
   Ser_DTR o  o  Ser_Rx
          TDO o  o  TMS
        +3V3 o  o  Ser_RI

JTAG连接只需要:
GND
TDI
TDO
TMS
+3V3

串口TTL只需要:
Ser_Tx
Ser_Rx
GND

注意!!!TTL是交叉的。Rx→Tx  Tx→Rx !!!

JTAG线电路图:


弄不到JTAG线的兄弟,需要自己制作。可以使用最简单的JTAG线。

关于使用最简单的5线JTAG线
来自csclee兄弟的帖子

原帖地址:http://forum.anywlan.com/viewthread.php?tid=27791&highlight=jtag
首先硬件部分。把LPT(打印口)的2 3 4 13 25 焊上线,然后对应板子上面的 2 4 8 7 1.
找一个4k以上的电阻,我从废旧硬盘上拆了一个下来,焊到板子上电池和mx那个芯片中间。有个编号R24的电阻,现在那里是空的,焊上去就行了。
现在硬件部分就全部完成了。

注意。1.板子上面的电阻位置很小。焊的时候要小心。 2接线的顺序,ltp多针的向上,焊点向着自己右边开始数,13是最左边的。 25要把下面那排左边开始向右8个焊到一起。板子上是反面最右侧2排10个焊点
1(lpt25) 2(lpt2)
3(空)          4(lpt3)
5(空)          6(空)
7(lpt13)     8(lpt4)
9(空)          0(空)


这样的关系。







下面的是我的机器连接图:



当你连接好后,在BIOS中设置LTP打印机端口运行模式为EPP模式而不是ECP!!!

完成上面的设置后,安装附件中的RDC Loader,打开后会有下面的界面:



但是,如果你接错的话,就会有下面的提示信息:



确认连接没有问题后,我们开始加载Redboot(由于某些特殊的原因,我们不能使用RDC Loader 中的Flash Tool来写FLASH芯片)。

点击FILE--openfile...打开redboot.bin。
点击Start Loading,写入RedBoot.bin
完成后,会有这样的界面:




完成连接后借上网线。设置本地IP地址为固定,比如:192.168.1.7,
打开并设置好TFTP32如下图。



完成RFTP32设置后,下载附件“完整的完整的Flash镜像.rar”
把解压的文件:mtd.bin放到C盘的根目录。

完成后,打开Windows自带的超级终端,连接到MGB100连接到的端口,在这里我用的是COM1,设置波特率为:38400.其他的默认。
返回RDC Loader,点击Go开始运行。
然后迅速返回超级终端,按Ctrl+C.
如果没有错误的话,应该会出现下面的界面:



当然,你也可以使用Pu TTY等软件:




现在,我们执行下面的命令:

(设置IP地址为192.168.1.5)
ip_address -l 192.168.1.5

(从TFTP服务器下载固件,MTD.bin)

load -r -v -m tftp -h 192.168.1.7 -b 0x400000 mtd.bin




同时,我们可以看到,tftp32已经开始发送mtd.bin了。



完成最后一步,也是最关键的一步。

(加载完成后,开始刷新Flash)

fl -s 0x400000 -d 0xffc00000 -l 0x400000




(重新启动机器)
reset

可以看到,机器已经成功救活,看到linux的启动画面了。



当然,没有TTL的兄弟你也可以通过TELNET的方式访问盒子:
redboot的默认IP是192.168.1.123,端口9000
使用下面的命令:
telnet 192.168.1.123 9000

到这里就解决了,希望能帮助到那些刷死机器的兄弟

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
承接OpenWrt.AirOS,DD-WRT 移植‘修改等项目。

289

回帖

682

积分

126 小时

在线时间

中尉

注册时间
2008-11-30
金币
352 个
威望
2 个
荣誉
0 个

尚未签到

发表于 2008-12-23 00:47
竟然能给我抢到传说中的沙发!

355

回帖

4215

积分

146 小时

在线时间

少校

注册时间
2008-10-14
金币
3748 个
威望
19 个
荣誉
0 个
累计签到:22 天
连续签到:0 天
[LV.50]初入江湖
发表于 2008-12-23 12:13
ls的抢沙发没用!
用不到刷!

198

回帖

5618

积分

70 小时

在线时间

中校

Embedded Linux砖家

注册时间
2008-10-23
金币
4923 个
威望
55 个
荣誉
12 个

尚未签到

发表于 2008-12-23 20:27
终于完成了,继续下一个

11

回帖

15

积分

2 小时

在线时间

新兵上阵

注册时间
2008-12-27
金币
3 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2008-12-27 10:09
嘿嘿,lintel在这里碰见了,打个招呼,给你补充点资料,加加油~~~~~

不知道大家的电子工程方面的技术怎么样?可是我是被JTAG卡住了,自己想做这个东西还是挺困难的



按照网上的原理图,主要是那个1SS133和A1048一般不好找,用什么替代也不知道。

所以也一直没敢动这个盒子,去老外的网站上问了下,可以用下边的原理图的接口来替换
也就是说,找这种现成的接头就可以,淘宝上有卖的。

看lintel的接头也是这种,呵呵。

然后就是这个板子默认是屏蔽JTAG的,就是在FLASH旁边的R24,上边少了个电阻,可以用阻值在4.7k-10k的替换。可是这个地方实在是太太太小了,不建议直接找贴片焊接,我的就是把电路板焊起皮了,好在是靠近flash的那侧的,建议使用特别特别细的那种排线,硬盘的80阵的线就行,取一点,引出flash的40脚和这个电阻的左边的引脚,焊接后,用热缩管做个套套,拿热熔胶贴在旁边就可以了,电池旁边的位置还是挺大的。我做的太丑了,就不上图了。

lintel下一步有什么打算啊?

我想把这个盒子该成跟mss一样,可以直接跑debian的!嘎嘎,那就发达了~~~现在卡在redboot不像uboot可以直接引导硬盘,有没有什么好的建议或者想法啊?

11

回帖

15

积分

2 小时

在线时间

新兵上阵

注册时间
2008-12-27
金币
3 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2008-12-27 10:14
嘿嘿,对lintel的jtag和TTL转串口的头有兴趣,特别是串口的头,小版做的很不错,哪里买的啊?你的jtag是Altera ByteBlasterII还是和我上面的原理图一样的xlinix III的?主要是不知道Altera ByteBlasterII的能不能用在这个盒子上,你知道吗?

198

回帖

5618

积分

70 小时

在线时间

中校

Embedded Linux砖家

注册时间
2008-10-23
金币
4923 个
威望
55 个
荣誉
12 个

尚未签到

发表于 2008-12-27 12:44
运行Debian已经搞定,你可以参考下面的帖子,
http://forum.anywlan.com/thread-18052-1-1.html
承接OpenWrt.AirOS,DD-WRT 移植‘修改等项目。

198

回帖

5618

积分

70 小时

在线时间

中校

Embedded Linux砖家

注册时间
2008-10-23
金币
4923 个
威望
55 个
荣誉
12 个

尚未签到

发表于 2008-12-27 12:47
TTL转接头是也是在淘宝上掏的,我记得是10块左右,你搜索TTL 下就可以看到。
下面的连接给你参考
http://auction1.taobao.com/aucti ... 5f920d7e6c34d.jhtml
承接OpenWrt.AirOS,DD-WRT 移植‘修改等项目。

198

回帖

5618

积分

70 小时

在线时间

中校

Embedded Linux砖家

注册时间
2008-10-23
金币
4923 个
威望
55 个
荣誉
12 个

尚未签到

发表于 2008-12-27 12:49
Redboot是开源的,同时RDC也提供了一个例子,只要整合ITE IDE RAID卡的驱动就可以了,另外,似乎RDC也提供了一个Uboot.
承接OpenWrt.AirOS,DD-WRT 移植‘修改等项目。

37

回帖

224

积分

4 小时

在线时间

少尉

注册时间
2008-12-14
金币
54 个
威望
22 个
荣誉
2 个

尚未签到

发表于 2008-12-27 15:54
JTAG,串口都找到了,不错。顶顶

11

回帖

15

积分

2 小时

在线时间

新兵上阵

注册时间
2008-12-27
金币
3 个
威望
0 个
荣誉
0 个

尚未签到

发表于 2008-12-27 16:02
对你说的uboot的例子有兴趣,Redboot的源码和补丁已经有了~~~

不知道怎么能传上去,大家一般使用什么方式比较方便?大概15M

还有就是你实现的debian是用chroot的方式,其实内核还是在flash里边,能不能实现出来,内核文件加载在硬盘里边,方便更新,这样这个板子的可玩性就能更高一些了~~~~

198

回帖

5618

积分

70 小时

在线时间

中校

Embedded Linux砖家

注册时间
2008-10-23
金币
4923 个
威望
55 个
荣誉
12 个

尚未签到

发表于 2008-12-27 17:06
对你说的uboot的例子有兴趣,Redboot的源码和补丁已经有了~~~

不知道怎么能传上去,大家一般使用什么方式比较方便?大概15M

还有就是你实现的debian是用chroot的方式,其实内核还是在flash里边,能不能实现出来 ...
gavin27 发表于 2008-12-27 16:02


那你说说WD的My book是怎么实现的。
承接OpenWrt.AirOS,DD-WRT 移植‘修改等项目。

站点统计 | Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2024-12-23 11:50

返回顶部 返回列表