1 (edited by oneru 2011-01-21 19:30:05)

Topic: running OpenWrt on a TP-Link WR841N V7.1

Edit:
Openwrt now supports this router. Because of the timing, there aren't yet "official" binaries. It's possible that they will be included in 10.03.1. Until that happens, I am hosting a set of working binaries for this router:

http://oneru.dyndns.org/openwrt/

Edit2:
After a new server and a reconfigured network, I am hosting updated binaries at the same location. This is trunk 25042. please comment and report any bugs.

Original post content:

TP-Link has upgraded their WR841N/D routers. I have 3 v7.1s. My understanding is that the only change is the shape, but that may not be correct.

I tried the V5-factory.bin firmware in the 10.03.1-rc3 directory. The router complained that the name was incorrect. Obviously it would be good to support this new revision.
Let me know if I can do anything to help.


A picture from the DD-wrt forums: http://img704.imageshack.us/img704/4783 … vers71.png

Thanks,
Jonathan Bennett

2 (edited by oneru 2010-09-18 19:10:34)

Re: running OpenWrt on a TP-Link WR841N V7.1

OK, so I've started hacking on this router. It has a serial port, but requires a modification to use. The serial port has 4 pins. There is a white box printed around it with a thicker line at one end. That end is the TX port. From there it is TX RX Ground +3.3. To get the serial port running, you have to insert a resistor (I used 10K) between the TX and +3.3 ports, then connect as normal.
It's 115200 8n1
Here's the boot spew from the default firmware:

U-Boot 1.1.4 (May 28 2010 - 11:12:30)                                      

AP99 (ar7241 - Viri#### TAP VALUE 1 = 0xf, 2 = 0x10 [0x0: 0x1f]
32 MB
id read 0x100000ff
sector count = 64
Flash:  4 MB
Net:   ag7240_enet_initialize...
No valid address in Flash. Usi
Virian MDC CFG Value ==> 4
: cfg1 0xf cfg2 0x7014
eth0: 00:03:7f:09:0b:ad
eth0 up
Virian MDC CFG Value ==> 4
: 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
... OK

Starting kernel ...

gcc version 3.4.4) #2 Mon May 31 19:04:36 CST 2010
flash_size passed from bootloader = 4
CPU revision is: 00019374
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
User-defined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
Built 1 zonelists
Kernel command line: console=ttyS0,115200 root=31:2 rootfstype=squashfs init=/sbin/init mtdparts=ar7240-nor0:128k(u-boot),10M
Primary instruction cache 64kB, physically tagged, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, linesize 32 bytes.
Synthesized TLB refill handler (20 instructions).
Synthesized TLB load handler fastpath (32 instructions).
Synthesized TLB store handler fastpath (32 instructions).
Synthesized TLB modify handler fastpath (31 instructions).
Cache parity protfor 'wait' instruction...  available.
NET: Registered protocol family 16
PCI init:ar7240_pcibios_init
usbcore: registered new driver usbfs
Reset button pressed.
usbcore: registered new driver hub
Returning IRQ 48
AR7240 GPIOC major 0
squashfs: version 3.3 (2007/10/31) Phillip Lougher
squashfs: LZMA suppport for slax.org by jro
Initializing Cryptographic API
io scheduler noop registered
io scheduler deadline registered
HDLC line discipline: version $Revision: #1 $, maxframe=4096
N_HDLC line discipline registered.
Serial: 8250/16550 driver $Revision: #2 $ 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x0 (i0x00020000-0x00120000 : "kernel"
0x00120000-0x003e0000 : "rootfs"
0x003e0000-0x003f0000 : "config"
0x003f0000-0x00400000 : "art"
->Oops: flash id 0x1c3116 . 
Port Status c000004 
ar7240-ehci ar7240-ehci.0: ATH EHCI
ar7240-ehci ar7240-ehci.0: new USB bus registered, assigned bus number 1
ar7240-ehci ar7240-ehci.0: irq 3, io mem 0x1b000000
hcc_params addr 0xbb000108 val 0x6 hcs_params addr 0xbb000104 val 0x10011
ar7240-ehci ar7240-ehci.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
ar7240wdt_init: Registering WDT  binary
Algorithmics/MIPS FPU Emulator v1.5
ip_tables: (C) 2000-2002 Netfilter core team
ip_conntrack version 2.4 (256 buckets, 5120 max) - 244 bytes perinsmod: cannot open module `/lib/modules/2.6.15/kernel/flashy
insmod: cannot open module `/lib/modules/2.6.15/kernel/harmony.ko': No such file or directory
Now flash open!
 1
AG7240: Max tx descriptor count    80
AG7240: Max rx descriptor count    252
AG7240: fifo cfg 3 01f00140
sys_mode=0 mac:81060000 ag7240_macs[0]:0 ag7240_macs[1]:81060000sys_mode=0 mac:81c1c000 ag7240_macs[0]:81c1c000 ag7240_macs[0
1
ag7240_ring_alloc Allocated 1280 at 0x81345000
ag7240_ring_alloc Allocated 4032 at 0x81c4f000
Virian MDC CFG Value ==> 4
Setting PHY...

 (none) mips #2 Mon May 31 19:04:36 CST 2010 (none)
(none) login: ag7240_ring_alloc Allocated 1280 at 0x803bb800
ag7240_ring_alloc Allocated 4032 at 0x81cd5000
Virian MDC CFG Value ==> 4
ATHRS26: resetting s26
ATHRS26: s26 reset done
Setting PHY...
device eth0 entered promiscuous mode
ag7240_ring_free Freeing at 0x803bb800
ag7240_ring_free Freeing at 0x81cd5000
ag7240_ring_alloc Allocated 1280 at 0x81d63800
ag7240_ring_alloc Allocated 4032 at 0x81cd5000
Virian MDC CFG Value ==> 4
Setting PHY...
ip_nat_pptp version 3.0 loaded
ath_hal: module license 'Proprietary' taints kernel.
ath_hal: 0.9.17.1 (AR5416, DEBUG, REGOPS_FUNC, WRITE_EEPROM, 11D)
wlan: 0.8.4.2 (Atheros/multi-bss)
ath_rate_atheros: Copyright (c) 2001-2005 Atheros Communications, Inc, All Rights Reserved
ath_dfs: Version 2.0.0
Copyright (c) 2005-2006 Atheros Communications, Inc. All Rights Reserved
ath_dev: Copyright (c) 2001-2007 Atheros Communications, Inc, All Rights Reserved
ath_pci: 0.9.4.5 (Atheros/multi-bss)
DFS min filter rssiThresh = 18
DFS max pulse dur = 131 ticks
wifi0: Atheros 9287: mem=0x10000000, irq=48 hw_base=0xb0000000
wlan_me: Version 0.1
Copyright (c) 2008 Atheros Communications, Inc. All Rights Reserved
wlan: mac acl policy registered

TP_Flags:6****
The selected channel is 9
Country ie is US 
Country ie is US 
maxrate = 300000
Country ie is US 
ag7240_ring_free Freeing at 0x81d63800
ag7240_ring_free Freeing at 0x81cd5000
br0: port 1(eth0) entering disabled state
ag7240_ring_alloc Allocated 1280 at 0x81cf0000
ag7240_ring_alloc Allocated 4032 at 0x81cd5000
Virian MDC CFG Value ==> 4
Setting PHY...
device ath0 entered promiscuous mode
br0: port 2(ath0) entering learning state
br0: topology change detected, propagating
br0: port 2(ath0) entering forwarding state
br0: port 2(ath0) entering disabled state
Country ie is US 
br0: port 2(ath0) entering learning state
br0: topology change detected, propagating
br0: port 2(ath0) entering forwarding state
br0: port 2(ath0) entering disabled state

TP_Flags:6****

TP_Flags:0****
Country ie is US 
br0: port 2(ath0) entering learning state
br0: topology change detected, propagating
br0: port 2(ath0) entering forwarding state
+++ GE0 RX DMA ENABLE
Inteference detected
rx_clear=100, rx_frame=0, tx_frame=0

Re: running OpenWrt on a TP-Link WR841N V7.1

Just for kicks, I followed the tftp flash procedure from http://wiki.openwrt.org/toh/tp-link/tl-wr841nd

It did correctly copy the image across. (I used the 10.03.1 rc3 wr841nd v5 image) The kernel boots but hangs when it tries to mount the filesystem.

U-Boot 1.1.4 (May 28 2010 - 11:12:30)

AP99 (ar7241 - Virian) U-boot
DRAM:  
sri
ar7240_ddr_initial_config(133): virian ddr1 init
#### TAP VALUE 1 = 0xf, 2 = 0x10 [0x0: 0x1f]
32 MB
id read 0x100000ff
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
No valid address in Flash. Using fixed address
Virian MDC CFG Value ==> 4
: cfg1 0xf cfg2 0x7014
eth0: 00:03:7f:09:0b:ad
eth0 up
Virian MDC CFG Value ==> 4
: 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
## Booting image at 9f020000 ...
   Uncompressing Kernel Image ... OK

Starting kernel ...

Linux version 2.6.32.16 (openwrt@ampere) (gcc version 4.3.3 (GCC) ) #1 Wed Aug 25 15:20:15 PDT 2010
bootconsole [early0] enabled
CPU revision is: 00019374 (MIPS 24Kc)
Atheros AR7241 rev 1, CPU:400.000 MHz, AHB:200.000 MHz, DDR:400.000 MHz
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal   0x00000000 -> 0x00002000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00002000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: rootfstype=squashfs,yaffs,jffs2 noinitrd console=ttyS0,115200 board=TL-WR741ND
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
Writing ErrCtl register=00000000
Readback ErrCtl register=00000000
Memory: 29304k/32768k available (2109k kernel code, 3464k reserved, 398k data, 152k init, 0k highmem)
SLUB: Genslabs=7, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:56
Calibrating delay loop... 266.24 BogoMIPS (lpj=1331200)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
MIPS: machine is TP-LINK TL-WR741ND
registering PCI controller with io_map_base unset
bio: create slab <bio-0> at 0
PCI: fixup device 0000:00:00.0
pci 0000:00:00.0: PME# supported from D0 D1 D3hot
pci 0000:00:00.0: PME# disabled
PCI: mapping irq 48 to pin1@0000:00:00.0
Switching to clocksource MIPS
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
yaffs Aug 25 2010 15:11:02 Installing. 
msgmni has been set to 57
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
console [ttyS0] enabled, bootconsole disabled
console [ttyS0] enabled, bootconsole disabled
Atheros AR71xx SPI Controller driver version 0.2.4
m25p80 spi0.0: unrecognized JEDEC id 1c3116
ag71xx_mdio: probed
eth0: Atheros AG71xx at 0xba000000, irq 5
eth0: unsupported chip, ctrl=00000000
eth0: Atheros AG71xx at 0xb9000000, irq 4
Atheros AR71xx hardware watchdog driver version 0.1.0
TCP westwood registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Cannot open root device "<NULL>" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Anyone have a suggestion of where to go from here?

4 (edited by oneru 2010-09-19 21:02:46)

Re: running OpenWrt on a TP-Link WR841N V7.1

I checked out the latest svn and chose the wr841n v5 configuration:

## Booting image at 9f020000 ...
   Uncompressing Kernel Image ... OK

Starting kernel ...

Linux version 2.6.32.20 (oneru@Gimli) (gcc version 4.3.3 (GCC) ) #1 Sat Sep 18 22:12:24 CDT 2010
bootconsole [early0] enabled
CPU revision is: 00019374 (MIPS 24Kc)
Atheros AR7241 rev 1, CPU:400.000 MHz, AHB:200.000 MHz, DDR:400.000 MHz
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal   0x00000000 -> 0x00002000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00002000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200 board=TL-WR741ND
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
Writing ErrCtl register=00000000
Readback ErrCtl register=00000000
Memory: 29488k/32768k available (1970k kernel code, 3280k reserved, 364k data, 148k init, 0k highmem)
SLUB: Genslabs=7, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:56
Calibrating delay loop... 266.24 BogoMIPS (lpj=1331200)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
MIPS: machine is TP-LINK TL-WR741ND
registering PCI controller with io_map_base unset
bio: create slab <bio-0> at 0
PCI: fixup device 0000:00:00.0
pci 0000:00:00.0: PME# supported from D0 D1 D3hot
pci 0000:00:00.0: PME# disabled
PCI: mapping irq 48 to pin1@0000:00:00.0
Switching to clocksource MIPS
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
msgmni has been set to 57
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
console [ttyS0] enabled, bootconsole disabled
console [ttyS0] enabled, bootconsole disabled
Atheros AR71xx SPI Controller driver version 0.2.4
m25p80 spi0.0: en25f32 (4096 Kbytes)
Searching for RedBoot partition table in spi0.0 at offset 0x3fe000
Searching for RedBoot partition table in spi0.0 at offset 0x3ff000
No RedBoot partition table detected in spi0.0
spi0.0: no WRT160NL signature found
Creating 5 MTD partitions on "spi0.0":
0x000000000000-0x000000020000 : "u-boot"
0x000000020000-0x000000160000 : "kernel"
0x000000160000-0x0000003f0000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
mtd: partition "rootfs_data" created automatically, ofs=362000, len=8E000 
0x000000362000-0x0000003f0000 : "rootfs_data"
0x0000003f0000-0x000000400000 : "art"
0x000000020000-0x0000003f0000 : "firmware"
ag71xx_mdio: probed
eth0: Atheros AG71xx at 0xba000000, irq 5
eth0: unsupported chip, ctrl=00000000
eth0: Atheros AG71xx at 0xb9000000, irq 4
Atheros AR71xx hardware watchdog driver version 0.1.0
TCP westwood registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
Freeing unused kernel memory: 148k freed
Please be patient, while OpenWrt loads ...
gpio-buttons driver version 0.1.2
input: gpio-buttons as /devices/platform/gpio-buttons/input/input0
Button Hotplug driver version 0.4.1
eth0: link up (100Mbps/Full duplex)
- preinit -
Registered led device: tl-wr741nd:green:system
Registered led device: tl-wr741nd:green:qss
Press the [f] key and hit [enter] to enter failsafe mode
- regular preinit -
jffs2 not ready yet; using ramdisk
mini_fo: using base directory: /
mini_fo: using storage directory: /tmp/root
- init -
eth0: link down

Please press Enter to activate this console. eth0: link up (100Mbps/Full duplex)
device eth0 entered promiscuous mode
br-lan: port 1(eth0) entering forwarding state
Compat-wireless backport release: compat-wireless--2010-09-02-9-gf63dbfd
Backport based on wireless-2.6.git v2.6.36-rc4-47529-g4697e4e
cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
PPP generic driver version 2.4.2
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
ip_tables: (C) 2000-2006 Netfilter Core Team
NET: Registered protocol family 24
nf_conntrack version 0.5.0 (463 buckets, 1852 max)
CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack module option or
sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
xt_time: kernel timezone is -0000
IMQ driver loaded successfully.
        Hooking IMQ before NAT on PREROUTING.
        Hooking IMQ after NAT on POSTROUTING.
jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
jffs2_build_filesystem(): unlocking the mtd device... done.
jffs2_build_filesystem(): erasing all blocks after the end marker... done.
mini_fo: using base directory: /
mini_fo: using storage directory: /overlay



BusyBox v1.17.2 (2010-09-18 21:29:40 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, r23084) ------------------
  * 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:/#

No wireless, and only the WAN port works. (Though it shows up as eth0 internally. The firmware thinks it's the lan port)

It looks like they have dialled the cpu down to 266 to make it run cooler.

Re: running OpenWrt on a TP-Link WR841N V7.1

To update, lspci returns:

00:00.0 Ethernet controller: Atheros Communications Inc. AR5008 Wireless Network Adapter (rev 01)

This chip should be in the Ath9k driver stack. (http://wireless.kernel.org/en/users/Drivers/ath9k)

Not yet sure why it's not showing up in ifconfig, but working on it.

Re: running OpenWrt on a TP-Link WR841N V7.1

Keep going your work.
It seems TP-Link WR841N is a very good router.

It can be deployed as repeater in multi-router environment, where central router is say TP-Link WR1043ND.
As it has 2 antennas (and those antennas are detachable in TL WR-841ND), quality of signal should be very good with extra-gain antennas.

Re: running OpenWrt on a TP-Link WR841N V7.1

OK, a bit of news. I've flashed the router back to the stock firmware. (Downloaded from tp-link)
On the serial port, one can hit enter and login with user: root password: 5up

On the wireless front, on the stock firmware, 'cat /proc/bus/pci/devices' returns:
0000    168c002e        30      10000004        00000000        00000000        00000000        00000000        00000000    0
0000000 00010000        00000000        00000000        00000000        00000000        00000000        00000000        ath_pci

Running Openwrt I get the following:
0000    168cff1c        30              10000004                       0                       0                       0     
              0                0                       0                   10000                       0                     
  0                    0                       0                       0                       0

juhosg asked for a flash dump of the stock firmware.  I'm having a spot of trouble dumping the flash. The first technique that comes to mind is to copy openwrt to ram and then boot it from there. I can then use dd to rip a copy of the flash partitions. My only problem is that when I try to boot the image, gzip complains that it can't decompress the image.


ar7240> bootm 0x80000000
## Booting image at 80000000 ...
   Uncompressing Kernel Image ... Error: Bad gzipped data
GUNZIP ERROR - must RESET board to recover

Resetting...

Any thoughts or suggestions?

@vplessky: Thanks for the encouragement. The WR841 is capable of a lot. The only downside is the 4 megs of flash, but it's still quite capable.

8 (edited by oneru 2010-09-27 19:30:48)

Re: running OpenWrt on a TP-Link WR841N V7.1

Now supported in trunk! Juhosg did the actual work, I was just the moral support. wink

Just to note: I had to run a "make distclean" after I updated trunk in order to see the new target in menuconfig.

Re: running OpenWrt on a TP-Link WR841N V7.1

Hi, I'm actually immacoolguy from the dd-wrt forums who posted the internal picture.

I was digging into dd-wrt and just starting to get my head around it- but apparently they have a much slower turnover than you guys.

Is there a guide to setting up openwrt on this router? Do I need a serial cable?

Thanks in advance for any help, sorry for the n00b questions.

10 (edited by oneru 2010-09-30 04:12:06)

Re: running OpenWrt on a TP-Link WR841N V7.1

No problem, and thanks for the pictures.

You do not need serial access to flash to this router. Our binaries will install using the stock http interface. We don't have pre-built firmware for this router, since it's so newly supported. I have a working build here, though. http://oneru.dyndns.org/openwrt/

Grab the "...factory.bin" image if you are still running the factory Firmware. If you ever update the router to a newer version of openwrt, use the "...sysupgrade.bin" firmware.

In the HTTP interface, choose "System Tools" and then "Firmware upgrade".  Hit "choose file", and then select the firmware you just got from my server (or from openwrt.org, once we release official binaries for it.). Hit upgrade, and sit back and wait for it to finish. It'll be at 192.168.1.1 once it reboots, btw.

Edit: If you run into any problems or instabilities, please let us know. I'll help you as much as I can.

11 (edited by immacoolguy 2010-09-30 19:01:09)

Re: running OpenWrt on a TP-Link WR841N V7.1

Well, I did the firmware upgrade, and it appeared to be working for a minute and brought me to the username/password box on 192.168.1.1

However, I didn't know the default passwords (tried admin/default variations) and had to disconnect. When I found them (root/passwd) and tried to reconnect, my box wasn't putting out a wireless signal to connect to. When I connected via physical ethernet cable, my computer says the default gateway is 192.168.1.1 and it gets a quick response from pinging, but typing 192.168.1.1 in the browser only brings up a "page unavailable" page.

The hard reset on the router doesn't seem to do anything no matter how long I hold it.

I'm going to look into if I can telnet the router, and post if anything develops.

Edit: I can telnet into the router, not sure as of yet what to do from there.

Edit #2: I changed the password and connected via SSH (through putty) and this is where I am:
http://img709.imageshack.us/img709/9483 … status.png
My router only has the two leftmost lights on (power and a gear symbol) and the status light for the port I am connected to.

Re: running OpenWrt on a TP-Link WR841N V7.1

*smacks himself*

So, somehow I neglected to include the web interface in that firmware image. (I knew the image seemed small... doh) 

Hang on, I'll recompile the image, then give you the details on how to reflash.

Re: running OpenWrt on a TP-Link WR841N V7.1

Ok, thanks smile

Re: running OpenWrt on a TP-Link WR841N V7.1

OK, here we go. I'm actually doing this as a write it, so it should work this time. smile

The router will need internet access. Plug the wan port on the router into your network. Openwrt will get an IP via dhcp. Plug your computer into one of the lan ports on the router. Make sure the router is fully booted up, and make sure you can get to the internet.

SSH into the router.

run "cd /tmp"
(We don't have enough room on the flash chip to store the new firmware, so we switch to a directory that exists only in ram.)

run "wget http://oneru.dyndns.org/openwrt/openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-sysupgrade.bin"
(This downloads the new Firmware. It's sysupgrade because we already have Openwrt running.)

run "sysupgrade openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-sysupgrade.bin"
(this automatically handles flashing the new firmware to the device.)

It'll take a few minutes, then automatically reboot the router. Once that happens and it finishes booting, you should be able to access the web interface on 192.168.1.1
It should save the password that you set earlier, so try that first.

Let me know how it goes.

Re: running OpenWrt on a TP-Link WR841N V7.1

Unfortunately, I don't have readily access to a root internet connection. I either use the internet at my workplace, internet via tethering from my phone, or a friend's wireless internet connection from my home. Is there a way to wget the file without internet access to the router?

Re: running OpenWrt on a TP-Link WR841N V7.1

There is another way to go about it, yes. Download the file to your computer. Also go out and grab pscp from the putty website. (http://www.chiark.greenend.org.uk/~sgta … nload.html)
Plug in to the router and open a command line on your windows machine. Navigate to where you downloaded these two files.

Run "pscp openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/"
This will copy the firmware file to the router using the ssh protocol. It will ask for your password, use the one you set earlier.

SSH into the router, and go to the tmp directory. ("cd /tmp")

Follow the sysupgrade instructions from earlier.

17 (edited by immacoolguy 2010-09-30 22:31:06)

Re: running OpenWrt on a TP-Link WR841N V7.1

It asks me for the password and then spits out these errors:
ash: /usr/libexec/sftp-server: not found
unable to initialise SFTP: could not connect

Edit: Screenshot: http://img837.imageshack.us/img837/566/ … tfound.png

Re: running OpenWrt on a TP-Link WR841N V7.1

Try using this command instead:
"pscp -scp openwrt-ar71xx-generic-tl-wr841nd-v7-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/"

Re: running OpenWrt on a TP-Link WR841N V7.1

It worked perfectly! I can connect to the web interface.

Enabled, configured, and connected to the wireless connection perfectly.

Thank you so much!

Re: running OpenWrt on a TP-Link WR841N V7.1

Yay! \o/

Glad to hear it.
smile

Re: running OpenWrt on a TP-Link WR841N V7.1

Excellent news.
When we can expect release of "official" build?
And what set of features is supported/tested - does for example WDS works?

I was considering buying Linksys WRT160NL, but it seems 2x units of TP-Link WR841N, working in WDS, would provide better coverage at the same or lower cost. :-)

Re: running OpenWrt on a TP-Link WR841N V7.1

I don't have two units to test it on- although I would like to try it as a wireless repeater if possible smile

Let me know if you want me to check anything on my working unit.

Re: running OpenWrt on a TP-Link WR841N V7.1

If the devs release a RC4, it will be included there, and be released as stable. If RC3 becomes 10.03.1, then you'll have to wait till the next release.

Wireless, Wan, and LAN are all working. I don't know about WDS. VLAN's aren't quite working yet, but I think it's very doable.

I do have two units. I'll try to find the time to test it out in the next few days.

Re: running OpenWrt on a TP-Link WR841N V7.1

Does default OpenWRT support PPTP Client aka PPTP Site to Site VPN?

Re: running OpenWrt on a TP-Link WR841N V7.1

Thank you a lot for info!

There is another question - about revisions.
Just checked international site - it has photo of TL-WR841ND which looks like small UFO:
http://www.tp-link.com/products/product … TL-WR841ND

TL-WR841ND which is available here looks different - more like a traditional SOHO router box:
http://tp-link.su/product.php?product_id=73

Oneru, immacoolguy - which versions of WR841ND do you have, and what's exactly written on back side of router - FCC ID, revision version, etc.?

I also checked shop which I used to buy TP-Link antenna and Wi-FI USB adapters.
TL-WR841ND - http://www.oldi.ru/catalog/element/0134868/
It looks the same as on international TP-Link.com web site (small "UFO")

It's also interesting to note that TP-Link introduced Access Point(s) similar to router range.
TL-WR841ND  <--> TL-WA801ND
http://www.tp-link.com/products/product … TL-WA801ND
http://tp-link.su/product.php?product_id=81
http://www.oldi.ru/catalog/element/0145669/
Case of this AP looks identical on all pages - and similar to "old" WR841ND.

Does some one has such Access Point?
My understanding is that hardware is similar to WR841ND, with exception that AP has 1x RJ-45 instead of 4x RJ-45 on Router.
If someone has intention to use wireless router as Repeater or for WDS, I think "pure" Access Point can do job just fine.