在我通过读带有符号的反汇编代码,写了TL-WR941N 固件 fixsum 工具后,通过TL-WR941N的管理页面上传修改后的固件或者第三方固件成为可能。我最初的目的是想让 dd-wrt 开发者给 dd-wrt 增加对 TL-WR941N 的支持,但是 dd-wrt 的开发者对 TL-WR941N 的兴趣并不大,在 dd-wrt 上迟迟没有动作。
2月19日,TP-Link 发布了新的 GPL 源代码,其中包括了 u-boot 源代码。OpenWrt 的开发者 jusohg 之后就利用 fixsum 和TP-Link 发布出来的源代码完成了对 WR941N 的支持。今天我测试了 dev snapshot build,局域网、无线都能正常工作了(我使用的是 WPA2 EAP-TLS)。相信不久以后,正式版本就能出来了。
TL-WR941N 使用了一个修改过的 u-boot,在最初发布的源代码中并不包括 u-boot 源代码。虽然我的 fixsum 能对头部做必要的处理,但使用其他的内核启动时,总是会跳出内核启动步骤,返回到 u-boot 提示符,没有任何有用的提示。我一直以为是 u-boot 对内核做了 checksum 检查(因为在头部还有另外一个没有用到的 checksum),但在 u-boot 的二进制映像中,并没有找到相关的痕迹。今天 jusohg 告诉我是因为 kernel entry point 需要修改,真是够简单的问题。头部中另外一个 checksum 是干什么用的,还是一个未解的谜。
OpenWrt 的 Web 界面 LuCI 没有中文翻译,我有空的话(做梦)会去翻译一下。
更新:目前的 ath9k 驱动有问题,我测试的时候,在没有 rx 的情况下,tx 丢包,所以还不能算正常工作。
强烈支持!!
找到几颗 MX25L12805DMI-20G Lark要的话我去翻出来给你。
8M SPI flash 我有,多谢你的热心
4M 有点紧张,装了 luci-admin-full 以后,tcpdump 就装不上了。如果能支持 USB,4M 就不是问题了,可以插个 U 盘。
我们强烈期待站长到时推出高速稳定版固件出来,在此感谢了!
不是我推出,谢谢抬举。我现在只是参与测试和继续研究针对WR941N的硬件hack。
我也看中了这款路由。感觉性价比挺好的,遗憾是国外的第三方固件制作者只发展国外品牌(搞得这些配置一般路由在国外炒得老鬼),支持博主的尝试,希望国产路由也能有高性能固件
作为一个普通用户,实在帮不上忙了只能精神上支持了,哈哈
还有些问题想请教一下:
1.941N如果要用OpenWrt这些第三方固件一定要自己改Flash rom吗?(偶不会啊啊5555..)
2.tp最近发了新的Firmware,增加QoS等功能,而且性能提升了不少,博主有试过不?好像蛮吸引的,测试连接:http://www.hkepc.com/forum/viewthread.php?tid=1133186&extra=page%3D1
期待能够有机会出来强悍的固件,最好支持中文,o(∩_∩)o…哈哈好贪心哦
941N 装 OpenWrt 不需要改 flash,目前的空间足够安装 LuCI 图形管理界面了,但想装其它的东西就比较难了。官方固件对于普通人使用来说,是足够了;目前官方固件很稳定,性能也足够好,而 OpenWrt 因为 ath9k 驱动的关系,还不能正常使用。
搞这个是主要是出于兴趣。目前正在抄图,准备把 USB 的供电电路反推出来。有了 USB,OpenWrt 就很有意义了。
我个人就是把路由器当 AP 用,家里有服务器(你正在访问的这个就是放在家里),附加功能对于我一点意义都没有
好久没来了,过来打听下:941N的Openwrt的固件有了吗?(偶英语太烂了….)
感觉TP的QoS实在有点烂,想试试第三方的
另外,博主推出USB线路打算怎么用? 脱机下载?打印服务器?供电怕不够哦?
现在 941N 的OpenWRT 固件还不好用,主要问题是 ath9k 驱动丢包。
USB 口弄好的话,主要应用应该是外接 U 盘和做打印服务器,前者电流要求不大,后者不需要 USB 供电。
lark你好。这两天朋友送了台水星牌的路由,说是tp的下属厂家并与其941N一致的硬件,没事搜了全世界找开源固件便找到你这里了。我现在有个疑问就是,若果此水星可以刷上941的官方固件,则届时openWRT针对941N的正式版本出来后我是否可直接刷上去。或者是说,在我当前硬件情况与941一致的情况就可以直接写入openWRT固件了呢。
谢过先。
这个我不太清楚,需要打开盒子看一下确认。最好能照一个高分辨率的线路板照片。
国内的东西不知道有没有 FCC-ID?
如果有就容易查了
加油啊!
TP-link 在澳洲的用户似乎很多, 站长不妨推一推.
TP-link 在北美连大卖场的门都没进, 一般人也没机会见到.
Dlink 和 TrendNet 已经算很便宜很滥的货了, TP-link 就更不用说
http://groups.google.com/group/mi424_openwrt?hl=zh-CN&pli=1
我也很感兴趣 OpenWRT
但是我没有玩 TP-LINK的东西, atheros的硬件不是很简单.
现在 ATHEROS 5416已经能正常工作,但是速度还是上不到 300M的样子.
madwifi驱动可以驱动,但是只是54M.
有空聊下, 我QQ 四1八一441O
现在最新的源码里面有u-boot了~~
我刷了openwrt-ar71xx-tl-wr941ndv2-squashfs.uni ,发现无法开启LUCI web界面,于是想刷回原厂固件,我该怎么做呢?TFTP似乎不行,开启不了TFTPD。Web界面现在进入不了。看了您在国外论坛的留言,希望得到您的帮助
串口你弄好了吗?不弄好串口的话,也可以远程登录进去用 dd 刷,但是偏移量要正确,否则损坏 u-boot 就变砖了。如果有串口,操作相对安全。
您好,今天买好TTL线.我的板子是rev 1.1,serial按照您说,p1=rx p2=tx,p3=gnd,p4=VCC,连接上后,secureCRT没有收到信息。您说要短路两个设备,是什么呀,怎么操作呢?还有,我插串口线以后,插电源,指示灯都不亮了,难道烧掉了其他线路?但是如果把串口插上,灯还可以亮,不知道怎么回事情,谢谢您的帮助
原电路串口 TTL 电路上 RX 的 RC 滤波没有焊上,所以是不通的。RC 滤波可以省掉,所以短接就可以。请参考我在论坛上的帖子。理论上插错了位置或者短路是可以引起串口烧坏的,但芯片内部还有保护电路,烧坏串口别的功能应该还是正常的。
您好,最近不在?实在没有明确,打搅您,是短路R356和R355吗(我的板子版本是1.1)?如何操作呢?有图片吗?急需您的帮助
时间很长了,我也记不太清楚,请参考在相关论坛上的帖子(我这里有链接过去)。帖子都写得很清楚的。
Lark studied your photos and says with confidence: P1 is RX, P2 is TX. R356 is all you should need to bridge.
这是我在论坛上找到的解决方案,一个BBB老外网友就是按照你的研究成功进入U-boot。如果按照您的这个办法,是不是就是把R356的两个小焊点连接起来?还是R356和其他零件(例如R355)短路?
R356 的焊点短路就可以,如果怕焊接不好,也可以用导电银浆。
谢谢
现在941n v4出来了,支持桥接了,高手能修改刷到v2版本上吗?
我手上没有 V4 硬件,无法判断两个硬件的区别。两个版本也许采用了不同的 flash 或 switch chip,所以不能保证 V4 的能用于 V2。
刷英文版的固件,就能支持wds了,我现在就在用941n v2英文版的,有wds的
我也试了下新的fw,果然增加了wds的功能,谢谢rek
http://downloads.openwrt.org/snapshots/trunk/ar71xx/
在这个上面看到:02-Jan-2010 19:34 这个时间出了:
openwrt-ar71xx-tl-wr941nd-v2-squashfs-universal.bin
不知道稳定了没有,哪位大侠用过呢,都有些什么功能的?
多谢指教
openwrt最近在ar71xx平台上面的开发,超级活跃,三个小时前还更新了这个驱动
看来wr941很快就稳定了,
https://dev.openwrt.org/browser/trunk/target/linux/ar71xx/files/drivers/net/ag71xx
5号又放出了新的固件
http://downloads.openwrt.org/snapshots/trunk/ar71xx/
我不知道博主什么时候会出现,现在我刷OpenWRT还原原厂固件的时候把系统刷爆了,但是用串口连接进去发现UBOOT启动后没有中断启动的按键提示,2008年的Uboot是可以使用TP来中断,但是我的是2009的,没有任何提示,对于源代码完全不在行,想问问博主在源代码中启动中断的按键实际上是什么????
在启动内核以前有一秒钟的停顿,这个时候输入。你试试 tpl 三个字母 (信息来源: http://www.dd-wrt.com/forum/viewtopic.php?t=58195 )
谢谢博主现身指教,确实使用TPL3个字母中断了启动。
TP的官方固件都是包含一个头的,和OpenWRT的固件有区别,我原先是直接把官方固件刷回去,结果爆了,现在去掉了头就可以了。
路由器已修复,谢谢博主。
博主usb改造好没?
没精力弄了。我拿到了一个 atheros 的 USB 电路的参考设计,另外又让一个朋友帮忙抄了电路板;但很早我就没再捣腾这个了。对于普通用户,意义不是很大,自己悍 SMT 元件是很困难的。
OpenWrt3月14日又更新了941的固件,博主有刷吗?
没有刷过。官方固件本身比较稳定,我当 AP 用,没有刷固件的需要。我找个时间测试一下 OpenWRT 的。
我很是想刷,怎么刷回官方的比较不懂,还没尝试。
你好 941N 怎么设置AP模式 麻烦说下 谢谢了
上面写错了 是V2的板子 设置WDS
刚刚出来wr941n v2的英文版固件才能支持wds的
openwrt-ar71xx-tl-wr941nd-v2-squashfs-sysupgrade.rar 刷了这个可我不知道进去的用户名密码==||不太会弄。。请教了-0-||
试试 telnet 登录,用户名 root,密码应该是空的。
没办法不对,还是进不去,真杯具==难道要我拿去返修了==||不知道要多少钱=-=||
请问一下博主,国内销售的 TL- WR941N v4版(ar9132的cpu),可否刷wr941nd v4版的openwrt固件(此固件在openwrt的ar7xxx目录)?
https://forum.openwrt.org/viewtopic.php?pid=109068
博主救命啊。我因为贪手多把941n的32m的内存更换成64m的内存,谁知道开机后变砖,lan口和wan口灯全亮,无法通过自检,就一直亮着,然后我把原来的内存更换回去后还是一样的问题。救命啊。怎么办啊。求救。
同情,你看看是不是哪里搭线了
博主又来打扰你,今天冒险把941N v4版的刷了openwrt官网的openwrt-ar71xx-generic-tl-wr941nd-v4-squashfs-sysupgrade.bin固件,现在的状况是DHCP正常,WAN口接有线通可以给内网分配192.168.1.x的IP地址,可以上网,电源、WAN、LAN口灯正常,就是192.168.1.1的web配置页面打不开,可以telnet,telnet后显示的信息如下
=== IMPORTANT ============================
Use ‘passwd’ to set your login password
this will disable telnet and enable SSH
——————————————
BusyBox v1.16.1 (2010-05-21 13:33:47 CDT) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.
_______ ________ __
| |.—–.—–.—–.| | | |.—-.| |_
| – || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (bleeding edge, r21528) ——————
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
—————————————————
root@OpenWrt:/#
请问博主,我该如何打开web配置页面,或如何刷回原厂固件?
刷回原厂固件
Terminal Upgrade Process •Login as root via SSH on 192.168.1.1
•Use the following commands to upgrade.
cd /tmp/
wget http://PATH_TO_YOUR_FRESHLY_BUILT_IMAGE.uni
mtd -e firmware write /tmp/imagefile.uni firmware && reboot
博主你好,我不小心运行了passwd命令,设置了密码,现在只能用winscp登陆路由,现在请教一下该怎么安装web界面呢?
我很久没碰过了。如果系统里面有 ipkg 这个命令的话,需要用 ipkg 安装 luci-web。官网上有 ipkg 和 luci-web 的说明。ipkg 是debian dpkg 的一个简化版,网上关于 ipkg 的资料比较多,中文的也有不少。不过,v4 的 flash 是多大?4M 的 flash 装 luci-web 可能比较勉强。
本人用的是迅捷FW150R的一个款路由器,当初买的时候就知道是TP的下线子牌子,和水星,迅捷,tp都是一样的硬件。
最近看到OPEN更新了741N的固件,也想搞搞,可是由于不是TP的提示固件型号不对, 请大侠破解一下其中的校验啊,能让我的迅捷先刷成TP-link的固件,然后再跳到OPEN=WRT.请大侠破解一下其中的校验啊
破解固件校验需要有路由器实物做测试,还要采用一些硬件的方法;抱歉我没有相关硬件,无能为力。
dd-wrt已经支持wr941n v2了
DD-WRT支持941n的固件已经发布
http://www.dd-wrt.com/dd-wrtv2/down.php?path=downloads%2Fothers%2Feko%2FBrainSlayer-V24-preSP2%2F06-12-10-r14594%2Ftplink_tl-wr941ndv2/
我想问问,TL-WR941Nd哪个版本对应国内TL-WR941N v4?本来我以为nd和d版本是相对应的,可是我在OpenWrt上看到说是nd v4版硬件改成AR7240了,所以我迷惑了
我的941n V2刷了dd-wrt,可以正常运行,但感觉不太稳定,无线部分总爱掉线。现在想刷回 941n V2的TP-LINK的官方版本,但不知如何操作,请指导,谢谢!
非常感谢能提供fixsum源代码,但是我在移植到水星路由器时遇到问题,水星的md5key与tplink的肯定不一样(tplink看上去全系列的md5key都是相同的),请问如何能得到水星的md5key?貌似是预定义到程序里面的,那这16byte的key是如何得到的呢,急盼回复,非常感谢!!!
已经弄清楚了,水星、迅捷、tplink的md5key都是相同的,现在还有一个问题是如何从dd-wrt刷回原厂固件?按道理说u-boot区没有被覆盖的话是可以刷回的,但是实际又不行,请问如何才能从web刷回?
在dd-wrt下用 mtdblock 设备 dd 即可。做之前先要确认一下 mtdblock 的映射,把 firmware 对应的部分 dd 进去。u-boot 里面也是可以烧写的。
Hi Lark,
I know you have hacked completely the TL-WR941ND routers. I have a strong unsolved issue with them and as I am a totally newbie in this field I am lost. Below is the complete description what I did.
I wanted to upgrade to OpenWRT , but didn’t know that I have HW revision 3.2 that doesn’t save settings. I upgraded to OpenWRT but as soon as I saved some settings there the router blocked and I needed to get serial access to it and then issued the command firstboot to reset it to defaults.Now I am struggling and fighting to go back to Original Firmware but I can’t. I read all over the forums Openwrt.org and dd-wrt.com and some user’s managed to return to original firmware, but I can’t. I tried all the possible solutions found on these forums but none is working. When I write original firmwares through TFTP and serial console and I restart the router I always receive the same error message GUNZIP ERROR – must RESET board to recover. I managed to boot through TFTPboot some images but all of them halted at Kernel Panic except one openwrt Ramdisk image which boots successfully and makes the router operational. From this RAMdisk image loaded via TFTP I tried then to reflash from there the original firmware to router but still unsuccessful. I am thinking that nobody is giving the correct flash addresses to write original firmware as it says GUNZIP ERROR – must RESET board to recover. Can you help me recover the router through TFTP. I would be very grateful for this help.
话说 ath9k 到底什么时候 不出错误
DD-WRT
已接收的 (RX)2194531 OK, no 錯誤
已傳送的 (TX)2369545 OK, 944 錯誤
这个错误 是 SSID廣播的问题 还是其他的
过了这么久了 有什么进展吗
除了这些以外 倒是挺稳定
fixsum用交叉编译工具编译后,要在mips系统上运行马?在i386上提示,bash: ./fixsum: cannot execute binary file?
最新的版本是支持 i386 上执行的,不需要交叉编译也可以用。
请问最新的fixsum我们怎么得到?在那里下载?用fixsum更新了固件的头,就可以在相应的路由上刷自己的固件了?
fixsum 一直没有更新,也没有必要更新。请在 http://download.lark.nte.cn/wr941n/hack/ 下载。
没有uboot的dd-wrt是不是直接用fixsum这个就可以了?
我有一个wr740n v3/v4的router,但是dd只支持v1的。
fixsum 只是让自制/修改版的固件能通过官方固件里上传界面的检查。固件如果有问题或不匹配,能上传也没有意义。
请教一下lark
fixsum编译出来后怎么用
比如我准备把固件头修改成841v5的
那对应的0×08410005 应该加什么参数或者输入什么命令才能修改原始的固件头为这个呢?
谢谢!新年快乐~
这个工具是更新固件头部的校验信息用的。所以你要准备一个适当的固件,放在当前目录下,重命名为 wr941n.bin,然后运行 fixsum。如果是用于 841v5,可能需要修改源代码中的 check_version 处的那个值然后重新编译,941n V2 是 0×09410002。
你可以把原厂固件用修改过的 fixsum 处理一下,然后看看能不能通过验证
说的很清楚!谢谢~
之前不会用,不论是用man还是在fixsum后加-help都没有任何帮助信息
还特地google到了你在ddwrt论坛和sash和BS聊的那个帖子
从你开头准备买941到后来买了回来搞了fixsum出来希望BS能增加对941的支持
帖子看完了也没看到里面有用说怎么用- -!
刚才按你的指点试了一下
先把需要改的固件重命名成wr941n.bin
然后./fixsum
出来 read image 4063744/4063744
version not match
应该没有修改,查看文件时间也是之前的,没有改动过…
请问lark,是我编译的fixsum有问题还是什么?
fixsum通过默认的make用交叉编译出来的是mips用的
我自己是用gcc编译得到的fixsum
为了测试
源码没有改动 把固件名改好就直接测试了。。。
看源代码 sum.c 里面的 check_version:
if (*(int *)(buff + FW_OFFSET_VERSION) != ntohl(0x09410002)),应该是需要修改这里的。Makefile 你也可以稍微修改下,这个工具其实不需要交叉编译了。非常感谢那么晚还替我解答疑问~
ntohl(0×09410002)这个我修改后也编译过
用默认什么都没有改的也编译过
什么都不改 用原始的make和源码编译出来过
用修改过这个值的也编译过
用的ubuntu自带的gcc
gcc -c md5.c -o md5.o
gcc -c sum.c -o sum.o
gcc -o fixsum md5.o sum.o
这样通过ubuntu自带的gcc编译出来后
按你的指点
把固件文件名修改成wr941.bin
然后直接运行同目录的fixsum
出来的就是上面写的
read image 4063744/4063744
version not match
提示版本不对后就退出了
检查固件也能发现没有改动过
请问lark到底是我的哪个步骤有问题呢
早点休息吧 有时间的时候再回复我好了~
以为是固件的权限问题
所以还特地查看了固件的权限
权限没有问题 有write权限
所以应该不是固件文件的权限导致fixsum没法修改
这样我就不知道问题出在哪了…
我提供的 header.bin 是 wr941 用的。你先拿 wr841 的原厂固件,用改过的 fixsum 处理,然后做一下比较,应该是没任何改动才对。另外一个问题是我定义的 md5Key 和 md5Key_bootloader 可能只适合 wr941,需要从 wr841 的固件头部把这两个值提取出来。
你把固件下载地址告诉我,我看看头部和 wr941 有什么区别。
我搞定了
http://www.right.com.cn/forum/thread-45486-1-1.html
要修改固体相对应的位置(如0×09410002的内容)
我的941nd板子是v1.2的 firmware版本是v3.6
之前用web介面刷ddwrt时刷坏了
好不容易接上console之后波特率设置115200
就可以看见u-boot讯息
但是kernel部份显示一堆乱码
附上图片
求您帮我看看该怎么作才能刷回原厂firmware
http://imageshack.us/photo/my-images/339/941nd.jpg/
u-boot 和 kernel/console 的波特率是不一样的。在 u-boot 提示启动前输入“tp”或“tpl”来进入 u-boot 命令行,然后可以通过 tftp 刷 firmware。
我在u-boot下打printenv出现以下讯息
bootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),5120k(rootfs),1024k(uImage)
bootcmd=bootm 0xbf020000
bootdelay=1
baudrate=115200
ethaddr=0×00:0xaa:0xbb:0xcc:0xdd:0xee
ipaddr=192.168.1.10
serverip=192.168.1.169
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
Environment size: 339/65532 bytes
估计kernel的波特率也该是115200才是?怎么会出现一堆乱码呢?
好不容易照著网站让我的941ND重新work了
在此分享给有同样问题的朋友~~
http://open-wrt.ru/forum/viewtopic.php?id=22835&p=2#48
另外请教lark大,我想加入线上注册mac功能,给要使用wireless的人注册后才能用,请问我该具备哪些条件?能否给点建议?
我的wr941N刷了openwrt后挂了,要怎么恢复啊