OpenWrt Forum Archive

Topic: Developing Support for TPLINK WDR4900

The content of this topic has been archived between 5 Oct 2014 and 4 May 2018. Unfortunately there are posts – most likely complete pages – missing.

I'm going to buy a proper TTL cable today, wasn't hard to find one once I figured out they're advertised as Arduino cables. According to another post ( those values should be at 0x9F020040 and 0x9F020044... I'll probably try to find out what's in those locations on my device. Never really used u-boot before so if someone want to give me pointers feel free to.

I guess I don't need them to restore a new firmware but it's more for documentation/debugging reasons.

ryts & makro,

now I have the Web-UI - thank you both very much!

Both networks work well. The only problem I have with this router (also with the stock firmware from TP-Link) is the range-connectivity of the wireless networks (5,240GHz & 2,462GHz - they are also called like this to seperate them well).

I get the networks in the 1st, 2nd & 3rd floor (the router is on the ground-floor) but I get disconnected on every floor. I have also typed in 50m as the distance to farthest network member. As a consequence of this, I get mostly 100% signal strength when I'm connected on the ground-floor. But when I just go only one floor upstairs, I can connect to one of the networks (full wifi bar on the macbook) , but I get disconnected from both and I'm not able to transfer data from the internet. Near the router on the ground-floor, I get via speed-test 100mbit on the internet (what I actually got).

I bought the wdr4900 because i thought it would be better than my FRITZ!Box 7270 ( … WLAN_7270/) but it isn't and I'm wondering.

What about your connectivity? I got wifi-access on the 3rd floor with the FRITZ!Box on my mac but I'm not able to get connectivity via wdr4900 in the 1st floor.
What's wrong?

Feel a bit like a fool, I'd forgotten to disable hardware flow control, which was probably why I couldn't type yesterday.

But now I've successfully installed the openwrt image from last page, using the console command in the wiki. Very happy. Thanks for the help both here and whoever wrote the wiki.

I prefer to build a custom image though, anyone know what the last good git revision is for a stable image?

lastest should work ok.


I bricked my router.
First I installed ddwrt, but I didn't liked it and tried to install Openwrt, but that went all wrong.

Now i tried to recover it with the serial method.
But than I only get this:


Does someone has an idea if this can be fixed?

P.S. I am using Putty for the serial connection

(Last edited by lander1 on 10 May 2014, 16:28)


might be baudrate or connection problem ( hope not voltage level ! )

1. test the serial cable : reconnect from CPE - connect RX to TX cable - type some characters o putty - should show up on putty
     if fails - reset USB & putty prog
2. check if all connections are good RX-TX-Ground - make shure you to have RX -> TX  & TX->RX depending on label
3. check baudrate - Data 8 data 1stopbit  noparity no flowcontrol

should get readable character on boot


Please use Termite for serial connection!

Hi all,

I should have my router arriving in a couple of days time ( v1.3 EU). Could you confirm that the snapshots from are stable? By stable I mean can I install them without bricking the device? I have read about some problems with the v1.3 EU and now I'm worried I might brick it.



borbalint wrote:

I should have my router arriving in a couple of days time ( v1.3 EU). Could you confirm that the snapshots from are stable? By stable I mean can I install them without bricking the device? I have read about some problems with the v1.3 EU and now I'm worried I might brick it.

I cannot speak about the v1.3EU but please know that trunk is a moving target, with commits going in at odd times.  Breakage can occur - not highly probable but possible. So if someone advises that a build is good, you must get it before a new build is done to replace the previous.  If not possible, monitor the commits since the known good 'un to see if anything vital was changed.

I suggest you follow (via the rss feed perhaps). Lets you take the pulse of wots wot.

ryts wrote:

I suggest you follow (via the rss feed perhaps). Lets you take the pulse of wots wot.

Thanks, I'll keep a look out there.

All was fine for few weeks. Yesterday the network died, so I rebooted it. When it came back all what I had installed had dissapeared (luci, etc).
So, I updated to the latest trunk (r40783) , and did all again. But the wifi is dying after some minutes.
Configs are set to defaults, only wifi is changed to enable and set ssid /security/key


I see that wireless drivers are broken after r40780 and fixed in r40802

Today's trunk snapshot is still 40783. Compiling myself r70817...

Working fine! For anyone who needs it, here it is.
The only difference from Trunk is Luci added.
RAR file, no password … pgrade.rar

(Last edited by dabyd64 on 21 May 2014, 17:11)

Guys I need some help please. The router isn't working well (connectivity problems, I think a hardware problem). It wasn't also not working well with the original firmare and it's not with the openwrt aswell. Therefore I need to put the original firmware back on it, to send it back, but it's driving me nuts :-(

I found that link: … k.firmware

But I don't know where to put in the 1st command!

1. Download / copy with SCP or wget this firmware to the /tmp folder of the router: … )_beta.bin

2. Open a SSH session to the router, cd to /tmp
Can't open a connection to host (webUI LuCI is working) on port 23, connectionproblem

3. Execute the following command: mtd -r write wdr4900nv1_en_3_14_1_up(130304)_beta.bin firmware
I would like to execute it!!!

(Last edited by CrAzYLuKe on 22 May 2014, 14:18)

SSH is port 22, not 23.

Port 23 is telnet. You need to use SSH, not telnet.

(Last edited by qasdfdsaq on 22 May 2014, 15:14)

Or download this version … 4900v1.bin and flash from Luci, but do not use the "keep settings" tick box.

As always, at your own risk...

For the original method, if you use Windows, then there are tutorials linked below for using SCP and ssh to an OpenWRT box. SCP will get the .bin file into the /tmp folder on the wdr4900, ssh into the wdr4900 will get you the CLI (command line interface) that allows you to issue the "mtd -r write ...." command.

Many thanks guys. Now I installed PuTTY. I'm on it. I downloaded the current version.

The *.bin from ryts didn't work. Now I have following issue:

Usage: mtd [<options> ...] <command> [<arguments> ...] <device>[:<device>...]

The device is in the format of mtdX (eg: mtd4) or its label.
mtd recognizes these commands:
        unlock                  unlock the device
        refresh                 refresh mtd partition
        erase                   erase all data on device
        verify <imagefile>|-    verify <imagefile> (use - for stdin) to device
        write <imagefile>|-     write <imagefile> (use - for stdin) to device
        jffs2write <file>       append <file> to the jffs2 partition on the device
Following options are available:
        -q                      quiet mode (once: no [w] on writing,
                                           twice: no status messages)
        -n                      write without first erasing the blocks
        -r                      reboot after successful command
        -f                      force write without trx checks
        -e <device>             erase <device> before executing the command
        -d <name>               directory for jffs2write, defaults to "tmp"
        -j <name>               integrate <file> into jffs2 data when writing an image
        -s <number>             skip the first n bytes when appending data to the jffs2 partiton, defaults to "0"
        -p                      write beginning at partition offset

Example: To write linux.trx to mtd4 labeled as linux and reboot afterwards
         mtd -r write linux.trx linux

Many thanks in advance.

What is your issue? You pasted the help output of mtd - that is not an issue. Your not understanding the output may well be an issue, and if so, please write that. Now I must guess.

Get the image to the device via scp, ssh in, and in the folder where the .bin resides issue the command (as per the wiki article you referenced) "mtd -r write wdr4900nv1xxxxxx.bin firmware" (the xxx bit must have the dame details as does the bin file) and wait until the device reboots.

What failed when you tried that bin from within Luci? Was there an error message that the bin was in the wrong format? I want to follow it up with the developer of that site if it does not work.

(Last edited by ryts on 23 May 2014, 21:24)

ryts wrote:

Get the image to the device via scp, ssh in, and in the folder where the .bin resides

usually you MUST use the /tmp folder!

"Execute the following command: "mtd -r write wdr4900nv1_en_3_14_1_up(130304)_beta.bin firmware"
Wait until the router reboots"

The issue is, that the command line appears and nothing more...I'm in the tmp directory! And before I have downloaded the image file, I also went to it. Also tried it by not to going there before - no difference. Nothing happens.

When I tried the image via Luci, following message occured: The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform. 
The checkbox with the settings was disabled.

nebbia88 wrote:

usually you MUST use the /tmp folder!

Indeed; fortunately I wrote as much in my post before the quoted. Should have mentioned it again.

CrAzYLuKe wrote:


mtd -r write wdr4900nv1_en_3_14_1_up(130304)_beta.bin firmware

The issue is, that the command line appears and nothing more...I'm in the tmp directory!

Thanks for the info re the failed Luci firmware flash.

So you scp'd it across to /tmp.  You ssh in, cd to /tmp and try the command and nothing happens?

Please confirm that the firmware is present in /tmp by logging in with ssh and typing

ls -al /tmp

(with an enter afterwards).  That should show many files BUT include the .bin file.

If it is there, the command with mtd should work as long as you type it out correctly.

You can also try

mtd -r write wdr4900nv1_en_3_14_1_up(130304)_beta.bin mtd7

(Last edited by ryts on 23 May 2014, 01:01)

What's the problem? After r40802 wifi is fine again, all is stable smile

(Last edited by dabyd64 on 23 May 2014, 01:20)

ryts wrote:

You can also try

mtd -r write wdr4900nv1_en_3_14_1_up(130304)_beta.bin mtd7

It will fail at least because of parenthesis characters in the filename like this:

-ash: syntax error: unexpected "("

So the filename should be enclosed in quotation marks or the file itself should be renamed.

Perenthesis characters in the filename have been deleted before! File was renamed to "wdr4900nv1_tether_en_3_14_7_up_boot.bin" and has been put on my on fileserver. It's the newest image from the tp-link website (1.3). I have also taken the beta from the other description, but no success with it aswell.

Here's the "ls -al" filelist. I have only taken the image line out of it.

-rw-r--r--    1 root     root       4390912 May 22 23:23 wdr4900nv1_en_3_14_1_up130304_beta.bin
-rw-r--r--    1 root     root      16646656 May 22 23:20 wdr4900nv1_tether_en_3_14_7_up_boot.bin
root@OpenWrt:/tmp# mtd -r write wdr4900nv1_tether_en_3_14_7_up_boot.bin mtd7
Could not open mtd device: mtd7
Can't open device for writing!

Then I tried unlock, but nothing happens.

root@OpenWrt:/tmp# unlock
-ash: unlock: not found
root@OpenWrt:/tmp# unlock wdr4900nv1_tether_en_3_14_7_up_boot.bin
-ash: unlock: not found

what should I do next?

Many thanks for your help so far!

(Last edited by CrAzYLuKe on 23 May 2014, 13:14)

I have reinstalled Lucy, after holding 5 sec the reset button, there was no more login possible. After setting the password new again (and nothing more!) I tried following steps again:

1. Open PuTTY
2. Connect to it via SSH Port 22 (like I already did before the whole time above)
3. Login like on Luci
4. Went to cd /tmp
5. wget http://....../wdr4900nv1_tether_en_3_14_7_up_boot.bin
6. mtd -r write wdr4900nv1_tether_en_3_14_7_up_boot.bin (mtd7)
7. still the same error
8. ls -al still shows the file
9. going insane!