TP-Link TL-WR841ND

这是一个802.11n路由器,拥有以下配置

  • 2个可拆卸天线
  • 4个100/10 交换口
  • 1个100/10 wan口
  • 4 MB Flash
注意:TL-WR841N与TL-WR841ND硬件除了天线以外完全一致。TL-WR841N天线不可拆卸。
注意:V5.4,v5.2 等皆算作v5。唯一区别仅在于出厂时的固件。

支持型号

版本/型号 序列号 OpenWrt版本支持 与型号相关的注意点
v3 - 10.03 Report
v5 - 10.03 Report
v5 - 10.03.1-rc4 工作的很好
v5.x - Trunk r24535 trunk版本工作得很好
v7.1 - Trunk r23134 飞碟外形,trunk版本支持
v7.2 - Trunk r27340 飞碟外形,trunk版本支持,但wifi led不工作

硬件参数

CPU 内存 Flash 网络接口 USB Serial JTag
AP81@400MHz 32MB 4MB 4x1 No Yes N/A

Installation

(有人写到)我只在路由器上试了Backfile(10.03),它工作的很好。OpenWRT既可以通过TP-Link的web界面安装(OEM安装)或者通过串口使用TFTP安装。

(另有人写到)10.03.1rc4有很多无线驱动的升级,并且比10.03更加稳定。PPPoE拨号貌似也能正常工作了。

(本页面译者写到) V7.2已经亲测可用,目前为止没有任何不稳定,由于不清楚是从哪个trunk版本起支持V7.2的,所以写的是2010/07/2上的snapshot对应的版本。

OEM easy installation

- (v5版本限定)既然10.03.1 rc版本看上去更加稳定了,我推荐使用 http://downloads.openwrt.org/backfire/10.03.1-rc4/ar71xx/openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin 或者你也可以在这里下载不太稳定的版本 http://downloads.openwrt.org/backfire/10.03/ar71xx/openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin

- 登录到路由器的web界面,进入软件升级页,然后选择你下载的固件并上传。

- 坐等安装成功吧。成功之后就可以通过telnet访问192.168.1.1(telnet只有初次登陆可用,进去之后修改密码,之后只能用ssh)

TFTP install

注意!这种安装方式需要自己修改硬件,从而配置出一个TTL串口。同时还需要一个TFTP服务器。除非你有足够的软硬件经验或者极为渴望挑战新方法,否则不宜轻易尝试^ ^。

此方法多少借鉴了 https://forum.openwrt.org/viewtopic.php?id=24203 的方法,感谢dl3daz。

以下方法为U-boot命令,如果熟悉U-boot可自行处理。 - 下载 http://downloads.openwrt.org/backfire/10.03/ar71xx/openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin 到你的TFTP服务器。

- 将路由器WAN口接入你的网络环境。

- 接好串口,并按照下面“串口”章节获得串口访问。

- 现在我们需要配置路由和TFTP服务器的IP(这里叫做ROUTERIP和SERVERIP,实际使用时请替换成实际ip),在串口中敲入如下命令:

setenv ipaddr ROUTERIP
setenv serverip SERVERIP
printenv
- 再次检查printenv所输出的IP地址是否是你刚才设定的。现在我们可以使用如下命令通过TFTP启动了"tftpboot 0x80000000 openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin":
ar7240> tftpboot 0x80000000 openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin
Using eth0 device
TFTP from server 192.168.32.253; our IP address is 192.168.32.246
Filename 'openwrt-ar71xx-tl-wr841nd-v5-squashfs-factory.bin'.
Load address: 0x80000000
Loading: checksum bad
#################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################################################
done
Bytes transferred = 3932160 (3c0000 hex)
- 记住最后一行的"3c0000"(可能因为固件大小不同而不同)。现在执行如下命令(记住将其中的3c0000替换成你所看到的数字)
ar7240> erase 0x9f020000 +0x3c0000
...
ar7240> cp.b 0x80000000 0x9f020000 0x3c0000
ar7240> bootm 0x9f020000
- 完成了,像现在OpenWRT将会启动,之后配置就可以按照正常步骤进行了。 U-Boot 1.1.4 (Apr 9 2009 - 12:29:57)

刷回原厂固件

  • 从TP-Link官网下载原版固件(注意!!:下载固件版本中*没有*'boot'这个词,比如wr741nv1_en_3_9_18_up_boot(100104).bin就不行),(如果压缩过)解压文件,并重命名为你喜欢的短小精悍的名字,比如tplink.bin。
  • 使用scp将固件传送至路由的/tmp上。
  • ssh连接至路由,并敲下列命令:

mtd -r write /tmp/tplink.bin firmware

注意: 这只在 TP-Link WR841ND v5上测试过,尽管理论上可行,但我并不保证在v3或者v7上通用

串口

DIY一个串口在TL-WR841N(D)上并不难。你需要一个MAX323或者同级的逻辑电平转换器。针脚如下 RX - TX - GND - +5V (电源接口)

Serial port on a version 3.2 model Serial port on a version 5 model Serial port on a version 7.2 model

v5版本串口波特率是115200 8N1。 v3.2版本的U-boot在bootloader阶段波特率为9600,内核切换至115200波特率。

设置成功后,你如看到如下U-boot界面:

AP93 (ar7240) U-boot
DRAM:  
sri
#### TAP VALUE 1 = 9, 2 = 9
32 MB
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7014
eth0: 00:03:7f:09:0b:ad
eth0 up
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
ATHRS26: resetting s26
ATHRS26: s26 reset done
eth1 up
eth0, eth1
Autobooting in 1 seconds
现在你有一秒钟时间敲入"tpl"(不包括引号),之后你就能进入U-boot了。

无线止于130Mbps? 解放至300Mbps

这可能违反当地法规

TL-WR841N v7.2测试无效

1. 用ssh/telnet链接至路由。

2. 进入/etc/config文件夹

cd /etc/config
3. 用vim编辑wireless文件。(vim都不会的你就别装openwrt了吧)
vi wireless
4. 在config 'wifi-device' 'radio0'下面添加
option 'noscan' '1'
5. option 'htmode' 的值应该被修改成HT40+ 或者 HT40-(原作者只测试了 HT40+)
option 'htmode' 'HT40+'
6. 保存并退出。

7. 重启无线(wifi up) 或者直接重启设备。

8. 享受你的300Mbps吧。

通过多余的QSS按钮来开关无线

在WR741ND的wiki上发现并复制过来的。同样能在WR841ND上工作。

(感谢obsy) QSS按钮开关无线 在/etc/hotplug.d/button/下船创建一个新文件取名为01onoff

vi /etc/hotplug.d/button/01onoff

复制如下内容:

#!/bin/sh

[ "$BUTTON" = "BTN_1" ] && [ "$ACTION" = "pressed" ] && {
 SW=$(uci get wireless.@wifi-device[0].disabled)
 [ $SW == '0' ] && uci set wireless.@wifi-device[0].disabled=1
 [ $SW == '0' ] || uci set wireless.@wifi-device[0].disabled=0
 wifi
}

保存并退出。

基础配置

1.) Backfire(10.03)的交换模块驱动有问题,会导致WAN口崩溃。交换模块驱动在10.03.1中被重写了,所以不会有问题。在10.03版本可以通过修改mtu来防止WAN口崩溃:

uci set network.wan.mtu=1400
uci commit network

当然也可通过修改配置来永久生效:

vi /etc/config/network

在"config interface wan"区域中增加

option mtu 1400

硬件

版本 v3 v5 v7.1 v7.2
构架: MIPS MIPS MIPS MIPS
厂商: Atheros Atheros Atheros Atheros
Bootloader: U-Boot U-Boot U-Boot U-Boot
SoC: ? ? ? AR7241-AH1A
CPU频率: 400 Mhz 400 Mhz 400 Mhz 400 Mhz
Flash芯片: ? ? ? cFeon F32-100HIP (?)
Flash容量: 4 MiB 4 MiB 4 MiB 4 MiB
RAM芯片: ? ? ? Zentel A3S56D40ETP-G5
RAM容量: 32 MiB 32 MiB 32 MiB 32 MiB
无线: ? ? ? Atheros AR9287-BL1A 2.4ghz 802.11bgn
有限: ? ? ? ?
USB: ? Unpopulated ? ?
串口: Yes Yes Yes Yes
JTAG: ? ? ? ?

USB1.1口

在WR841n_v5.1上测试成功

主板全貌:

锡焊 (有红线的表示D+)。R185 和 R183 可以被短接,之后D+/D-就会出现的J1上。

为了让USB正常工作,需要修改下列文件:(当然,前提是你得编译内核和工具链)

1. 修改 target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr841nd.c

    在#include "dev-leds-gpio.h"后增加一行 #include "dev-usb.h"
    在ar71xx_add_device_mdio(0x0)前增加一行ar71xx_add_device_usb();

2. 修改 target/linux/ar71xx/files/arch/mips/ar71xx/setup.c

   在ar71xx_detect_mem_size();前增加一行ar71xx_pll_wr(0x08, 0x00001030);

3. 修改 target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig:

config AR71XX_MACH_TL_WR841N_V1
        bool "TP-LINK TL-WR841N v1 support"
        select AR71XX_DEV_M25P80
        select AR71XX_DEV_PB42_PCI if PCI
        select AR71XX_DEV_DSA
        select AR71XX_DEV_GPIO_BUTTONS
        select AR71XX_DEV_LEDS_GPIO
        select AR71XX_DEV_USB
        default n

可以使用L7805和470uF 100uF 电容来从电源处获得5V供电。

注意: 使用v5.1版本的时候,WR741N的某些文件需要做上述修改,而不是WR841N_N1的对应文件(Kconfig, mach-tl-wr741nd.c)。

如何自己编译固件


Back to top

zh-cn/toh/tp-link/tl-wr841nd.txt · Last modified: 2011/07/14 04:16 by adam900710