本帖最后由 285858363 于 2011-1-14 14:00 编辑
一直以来对GP的USB速度很不满意。GP的USB口说是2.0,但用起来只有2-3M,只比一般的USB1.1强一点点。恩山上的大牛qwea(人称猫大)放出TP-Link 941n的USB改造后,我的眼前为之一亮。USB的速度基本可以跑满100M网络的带宽,这是多么的爽啊。
所以心里一直痒痒的,正好有个小兄弟要出个841n V3(电路板跟941n的基本一样)。所以收了回来进行改造。顺便说一句,在网上找了很久,没有一家可以一次性地配齐改机所需要的零件。到最后邮费都比零件贵,汗死…
改机当然首先把衣服脱光了,这是没脱衣服之前的靓照:
841N的前面板有三个卡扣,底部只有后面两个脚垫底下有螺丝,卡扣很难撬开,我费了好大的劲才弄开了:
左边的卡扣在收回来之前已经坏掉了。
拆开后就是换flash,内存。老规矩了,改机过程没拍照。下面是换好的8Mflash跟64M内存,另外把TTL也引了出来,方便刷机。USB供电用的跟猫大一样的3A模块,具体电路请参照猫大的贴子:
http://www.right.com.cn/forum/viewthrea … 8%AB%C7%F2
64M内存,换上就可以直接用了:
改好的USB和引出来的TTL接口:
至此改机完毕,开始刷机的过程。由于flash内已经刷了猫大的U-Boot,只要接上TTL线,用secureCRT建立连接,看到Hit any key to stop autoboot后随便按个按钮就可以进入U-Boot刷机了。
以下刷机的教程来自:
注:只能刷带“factory”的固件
http://www.right.com.cn/forum/viewthrea … #pid172690
rockily 引用: 把你电脑的Ip地址设置为192.168.1.254,打开tftp服务器,设置好路径。把网线连接到路由器的Lan口。并且关闭防火墙。确认路由器可以从电脑下载固件
输入命令:
ar7100> setenv serverip 192.168.1.254; setenv ipaddr 192.168.1.1
ar7100> tftp 0x80800000 wr941n_cn_3_4_5_up(081113).bin
出现如下提示:
set link to 100M full by lqm.
dup 1 speed 100
Using eth0 device
TFTP from server 192.168.1.254; our IP address is 192.168.1.1
Filename 'openwrt-ar71xx-tl-wr941ndv2-squashfs.uni'.
Load address: 0x80800000
Loading: checksum bad
checksum bad
checksum bad
checksum bad
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
######################################################
done
Bytes transferred = 3932160 (3c0000 hex)
继续输入命令:
ar7100> erase 0xbf020000 +0x3c0000
出现如下提示:
First 0x2 last 0x3d sector size 0x10000
61
Erased 60 sectors
继续输入:
ar7100> cp.b 0x80800000 0xbf020000 0x3c0000
提示:
Copy to Flash... write addr: bf020000
done
呵呵,很简单的几个步骤就搞定了,重启后就可以进入刷好的固件中。有了猫大这个U-boot,路由基本是刷不死的。不过不要高兴得太早,因为换了8M闪存后,还欠缺一个非常重要的步骤。如果没进行这个步骤的话,你的无线是不能使用的。这是为什么呢?
在恩山上有这样一个贴子解释这个问题:
http://www.right.com.cn/forum/viewthrea … #pid272829
kesunji 引用: 经过猫大解释,这一段0x007f0000-0x00800000 : "board_config"东西是原本无线模块的EEPROM在Flash中转存的地址,所以这个地址东西不对的话,无线就无法初始化。我今天终于把 8MFlash的DD弄好了,不过DD默认的版本换了Flash也没什么用,没有开放的空间,只有Nvram区可写,也无法使用USB,在新固件出来前, 我看换了也没什么意义吧。16MFlash更换前需用编程器写入整个固件和最后一段内容,因为默认UBoot只能访问8MFlash空间。
所以我们还需要再刷一个这个board_config的东东进flash。为了方便大家,我把board_config里面的内容已经提取出来了。如果大家需要的话,请到下面的地址下载:
941n_board_config.bin:
http://u.115.com/file/f51f92dfce
841n_board_confgi.bin:
http://u.115.com/file/f5514ce451
至于怎么刷,参照上面在U-Boot中刷固件的步骤就可以了,我在这里简单的给大家说一下:
把941n_board_config.bin放到tftp32的文件夹中,电脑IP设为192.168.1.254,打开tftp32。
进入U-Boot后,设置路由器IP及tftp服务器的IP:
ar7100>setenv ipaddr 192.168.1.1;setenv serverip 192.168.1.254
然后就可以把tftp32中的941n_board_config.bin复制到路由器的内存里:
ar7100>tftp 0x80800000 941n_borad_config.bin
再把闪存0x007f0000-0x00800000的内容擦除:
ar7100>erase erase 0xbf7f0000 +0x10000
最后把内存中的内容写到闪存里面就可以了:
ar7100>cp.b 0x8080000 0xbf7f0000 0x10000
大家看出来了吧,跟上面用u-boot刷固件是一模一样的,只不过写入闪存的地址跟大小有点变化而已。
写入后,重启一下路由。你就会发现路由的无线功能又回来啦。
由于DD-WRT不支持USB口,如果需要用的话需要刷OPENWRT,推荐用猫大的openwrt-ar71xx-tl-wr941nd-v2-squashfs-factory.bin,下载地址:
http://v4.u.115.com/file/f5d24943af
这个固件很好用,基本需要的东西已经集成在里面。
忙活了这么多,当然要试下USB口的速度啦。 哈哈,USB的速度果然不负所望:
写入速度:
读取速度:
注:我使用的是古老的40G IDE硬盘+山寨易驱线,写入跟读取速度刚好是直接电脑的一半。如果使用其它好的硬盘+硬盘盒的话,速度会更高。据说猫大读写的平均速度是11M/s,基本达到了100M有线网络的极限,以后脱机下载高清电影,根本不需要再拔硬盘再下载到电脑观看。
至此,841n改USB完满结束。本文的成果有赖于文中提到的各位高手的努力(特别鸣谢diywif.cn群的“猫大“,“过客”(人称无所不能的捣爷),"AVBIOS"等在改机过程中提供的帮助),这里只是简单地汇总了一下,希望对大家的改机有所帮助。
关于刷机后找回无线的补充:
上次sagephage的841n用了我提取board_config还是没有无线,网友老鹰也试过确实不行。原因可能出现在每个路由器的board_config都存在不同。为此跟老鹰交流过,老鹰给出了他的办法:
1.先不要着急换flash,先把841n/941n刷成DD,把原来的borad_config备份出来。
刷完DD后,telnet上路由,首先运行下cat /proc/mtd看下board_config的位置。
以下是老鹰openwrt里的截图,其中ART就是无线的board_config(DDWRT下应该是显示borad_config)。记住mtd4后面4这个数字,等下备份要用到。
然后我们就可以把board_config备份出来了。
备份命令:
dd if=/dev/mtd/4 of=/tmp/backup.bin
请注意红色的数字4,这里需要用刚才的数字代替。Openwrt跟ddwrt可能不同的。
运行后等一下,你的board_confg就已经备份到/tmp目录里。只要用winscp连上路由器就可以copy到本地硬盘了。(winscp的用法不说了,不明白先做功课)
2.备份完后就可以换8M的flash了,用编程器写入猫大的UBOOT(UBOOT只能用编程器写入了),把刚才备份的64KB的board_config写到flash的最后面。然后就可以通过上面的教程进行固件的刷写,这是一种方法。
当然,按照老鹰的办法通过DD写回去也是可以的,这个其实就是刚才备份的逆向过程。
下面也给出具体的办法给大家参考:
a.把备份的backup.bin上传到DD的/tmp目录下;
b. 运行命令:mtd -r write /tmp/backup.bin board_config 通过这两步的操作就OK了。
通过上面的步骤,无线就可以回来了。在此再次感谢网友老鹰给出详细的解决办法!
如果有改机成功的兄弟也上来贴一下USB的速度吧,谢谢!
|