TFTP flash
From DD-WRT Wiki
Revision as of 16:50, 11 April 2009 (edit) Sash (Talk | contribs) ← Previous diff |
Revision as of 03:05, 12 April 2009 (edit) (undo) Alvin (Talk | contribs) m Next diff → |
||
Line 1: | Line 1: | ||
'''Guys i didnt created this page to have an "how to flash my asus router" instruction! Nor other specific models. It was created to have an how to flash in gereral for all platforms! so remove the specific stuff and move it to the, existing related router pages. If its not done i will delete it without comment.''' | '''Guys i didnt created this page to have an "how to flash my asus router" instruction! Nor other specific models. It was created to have an how to flash in gereral for all platforms! so remove the specific stuff and move it to the, existing related router pages. If its not done i will delete it without comment.''' | ||
11.04.09 Sash | 11.04.09 Sash | ||
+ | |||
+ | In my opinion general descriptions are only usefull if they have specific examples. And as you may notice, the steps for TFTP flashing the different makes described below, are very different. | ||
+ | Also the new Router database points users of some routers directly to this page, for guidance to make an initial flash. You will notice that the mentioned Asus Routers, all need to have initial flasing done the way its described. | ||
+ | Who has access to enough different routers that they can make a general description that will fit all. | ||
+ | Specific Asus steps can be moved to an Asus flashing page, no problem, giv me a few days. However, I still find that all routers that are directed from the new Supported Router database to this page, needs to be mentioned here, or directed to a different router specific page from the Router Database system.<br> | ||
+ | 12.04.09 MrAlvin | ||
+ | |||
__TOC__ | __TOC__ |
Revision as of 03:05, 12 April 2009
Guys i didnt created this page to have an "how to flash my asus router" instruction! Nor other specific models. It was created to have an how to flash in gereral for all platforms! so remove the specific stuff and move it to the, existing related router pages. If its not done i will delete it without comment. 11.04.09 Sash
In my opinion general descriptions are only usefull if they have specific examples. And as you may notice, the steps for TFTP flashing the different makes described below, are very different.
Also the new Router database points users of some routers directly to this page, for guidance to make an initial flash. You will notice that the mentioned Asus Routers, all need to have initial flasing done the way its described.
Who has access to enough different routers that they can make a general description that will fit all.
Specific Asus steps can be moved to an Asus flashing page, no problem, giv me a few days. However, I still find that all routers that are directed from the new Supported Router database to this page, needs to be mentioned here, or directed to a different router specific page from the Router Database system.
12.04.09 MrAlvin
Contents |
General
This article describes how to do an initial flash or a TFTP recovery flash for your device.
- Make sure you have a TFTP client installed on you PC (see TFTP_tools below)
- Connect your PC to one of the router's LAN ports using an ethernet cable
- Make sure that your PC has a fixed IP address in the same network as your router, eg. Router: 192.168.1.1, PC: 192.168.1.2 (example w/picture)
- Get the latest dd-wrt release here (plz use the mini version for devices with 4mb flash & the micro version for 2mb flash devices). Use the Suported Hardware database to find the recommended files for your router.
TFTP tools
With TFTP, all of the information about the transfer is specified during the initial command/setup; there is very little client/server interaction compared with standard FTP.
Windows
- WinXP Command Line TFTP: tftp client is by default enabled
- Vista Command Line TFTP: You need to enable it in Control Panel -> Programs and Features -> Windows Features -> check mark : TFTP Client
- Windows GUI TFTP Utilities:
- Simple Windows GUI TFTP Utility - quick user guide:
- - The Server/IP address is that of the router being flashed.
- - Leave the Password blank.
- - Navigate and select the firmware you wish to flash.
- - Set retries to 10.
- No-nonsens open source TFTP tool, Tftpd32 includes TFTP client as well as DHCP, TFTP, SNTP and Syslog servers
Linux
- Ubuntu: install TFTP client with command sudo apt-get install tftp
Mac OS X
- OS X ships with a command-line TFTP client.
Windows
Command Line
Asus WL-500 series example
These steps are the same for :
- WL-500g Deluxe
- WL-500g Premium v1 & v2
- WL-500W
Requirements:
- conneting PC and Router through wired connection!
- TFTP program
- file wl500g-clear-nvram.trx
- file wl500g-recover.trx
- file dd-wrt-v24_mini_asus.trx (or file as shown on Supported Hardware - type wl5 to get the list)
- file dd-wrt-v24_xxxx.bin (or file as shown on Supported Hardware - type wl5 to get the list)
Principle steps:
- a) set PC to static IP: 192.168.1.2
- b) set router in recover-mode and load wl500g-clear-nvram.trx
- c) set router in recover-mode and load wl500g-recover.trx
- d) set router in recover-mode and load dd-wrt-v24_mini_asus.trx file
- e) from with-in dd-wrt-mini web-GUI load any suitable dd-wrt-v24_xxxx.bin file shown on Supported Hardware list
Detailed step-by-step guide:
Preparations
- Step 1: Copy the four files mentioned above to a folder on your pc. Could be c:\dd-wrt
- Step 2: Make sure you have a TFTP client available on you pc.
- Step 3: Connect your computer via Ethernet cable to a LAN port on the router
- Step 4: Set your PC to static IP 192.168.1.2
- Step 5: Turn off the firewall on your PC - you need the TFTP program to be able to connect out through the firewall area to the router.
- Step 6: Open a command prompt window, and goto the folder with the four files. Command could be cd \dd-wrt
Set router in recover-mode and load wl500g-clear-nvram.trx
- Step 7: Unplug the power cord from the router
- Step 8: Wait 20 seconds
- Step 9: Press and hold the reset button on the back of the router - Note that the reset button is recessed and you need a pen or paper clip to press it in. The button protruding from the back is the EZ Setup, which is not what you want to press.
- Step 10: While holding the reset button, plug the power cord into the router. Continue to hold the reset button until the power light starts flashing. Let go of the reset button
- Step 11: Use tftp to transfer wl500g-clear-nvram.trx to the router. The commands are as follows:
- in Windows:
tftp -i 192.168.1.1 put wl500g-clear-nvram.trx
- on a Linux box:
user@box:$ tftp 192.168.1.1 > mode binary > put wl500g-clear-nvram.trx
- Step 12: Tftp should report a successful file transfer in 7-15 seconds. This means the file is transfered to RAM.
- Step 13: Wait 5 minutes for the file to be stored to FlashRAM. Then unplug the power from the router.
Set router in recover-mode and load wl500g-recover.trx
- Step 14: Unplug the router, wait 20 seconds. Hold the reset button and plug the power cord into the router, continuing to hold the reset button until the power light flashes. Release the reset button.
- Step 15: Use tftp to transfer wl500g-recover.trx to the router. Same method as above, just change the file name.
tftp -i 192.168.1.1 put wl500g-recover.trx
- Step 16: Wait 5 minutes after tftp reports a successful file transfer before unplugging the router.
Set router in recover-mode and load dd-wrt-v24_mini_asus.trx file
- Step 17: Unplug the router, wait 20 seconds. Hold the reset button and plug the power cord into the router, continuing to hold the reset button until the power light flashes. Release the reset button.
- Step 18: Use tftp to transfer the DD-WRT firmware .trx file to the router. MAKE SURE YOU USE THE CORRECT FILE. It should be be called something like dd-wrt.v**_asus.trx - Do not upload a .bin file yet.
tftp -i 192.168.1.1 put dd-wrt-v24_mini_asus.trx
- Step 19: Wait 5 minutes after tftp reports a successful file transfer before unplugging the router. Unplug the power cord from the router, wait 20 seconds, and plug the power cord back into the router.
Load any suitable dd-wrt-v24_xxxx.bin file
- Step 20: From with-in dd-wrt-mini web-GUI load the dd-wrt-v24_xxxx.bin file
- - Open a web browser to 192.168.1.1 (set your preferred root user name and password)
- - Click tab Administration -> Firmware Upgrade
- - at "After flashing, reset to" select "Reset to Default settings"
- - at "Please select a file to upgrade" point to the dd-wrt-v24_xxxx.bin file
- - Click Upgrade
- - Wait until the router reboots on it own. Recommended: DO NOT TOUCH YOUR COMPUTER UNTIL ROUTER HAS REBOOTED. And under NO circumstances move the web browser away from the upgrade process, or you could brick your router. This whole process takes some five minutes, so go get some coffe - or go kiss your girlfriend/wife - I'm quite sure she will be happy to get this kind of indicator that you are now flashing your router. Who knows, maybe she'll start asking you to go flash your router more often - to get those kisses - one can always hope :-)
Belkin f5d130uk example
The following example is for a belkin f5d130uk after a bricked update... NOTE: they already have a bootloader built in, no need for redboot...
- ping the router permanently, by running in Start > Run:
ping -t 192.168.2.1 -t
and see if it is responding, e.g. like this
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=2.90 ms 64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.264 ms 64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=1.44 ms
- reboot the router via web-if or powercycle (the ping response will stop)
- if you see the the first ping response again ...
From 192.168.2.1 icmp_seq=1 Destination Host Unreachable From 192.168.2.1 icmp_seq=2 Destination Host Unreachable 64 bytes from 192.168.2.1: icmp_seq=3 ttl=128 time=2.90 ms 64 bytes from 192.168.2.1: icmp_seq=4 ttl=128 time=3.50 ms 64 bytes from 192.168.2.1: icmp_seq=5 ttl=128 time=0.90 ms
... you will have to start the tftp upload in binary mode immediately after the first pings responses. the ttl of the boot tftp server will be 100 or 128. It usually does 5 pings responsed, after that it will boot the firmware in flash, this is the right time to flash (the ttl of ddwrt is only 64). if the upload doesn't work the first time, then you have to try the first steps again. you have to be very fast! ;-) maybe you will have to reset the device via reset button a few times to get the tftp-boot working (siemens, belkin and similar hw).
tftp -i 192.168.2.1 put dd-wrt.vXX_XXX.XXX
- wait a few seconds (be patient! dont reset the router! keep waiting!) when the upload is successful, change your computer IP to 192.168.1.10, and the router will start responding at 192.168.1.1 with dd-wrt
- username: root / pw: admin
- always do a hardware factory reset after the successful flashing!
Linksys TFTP GUI
Linksys has a GUI flash utility which may be tftp.exe on ftp://ftp.linksys.com/pub/network and can set the number of retries. It works with many other brands of routers too, not just Linksys.
Here are the setup and use instructions for the TFTP utility. An updated copy can be found here TFTP2
- Set your computer hardware adapter to a Static IP address within the same subnet as the router's original firmware (ex...set a static of 192.168.11.10 if your router's default IP is 192.168.11.1). Set the Mask to 255.255.255.0.
- Start the TFTP utility.
- The Server/IP address is that of the router being flashed.
- Leave the Password blank.
- Navigate and select the firmware you wish to flash.
- Set retries to 10.
- Now plug the Ethernet Cable from your computer into a LAN port of the router.
- Unplug the router....plug it back in...immediately hit the Upgrade button on the TFTP utility.
- If the router does not flash immediately....stop the attempts and vary the timing from when you plug the unit in...to the time you hit the start button. I have had good luck flashing within the first 1/2 second of reapplying powering the device.
- Tip: Ping the router continuously. Start > Run > ping -t 192.168.x.x -w 10 Power cycle the router (or tap the reset button) then press Upgrade as soon as you get the first ping reply.
- Once it flashes and you receive the Success message....wait for a full 2 minutes while the new firmware flash configures itself...DO NOT depower the router!
- After the 2 minutes are up....do a Hard reset or 30/30/30 on the router...then configure at 192.168.1.1 (dd-wrt's default IP address). The default dd-wrt Username/Password is root/admin.
Linux and Mac OS X
OS X ships with a command-line TFTP client.
In Linux, tftp can generally be installed with whatever package manager your distribution uses.
on suse:
smart install tftp
on fedora:
yum install tftp
on ubuntu
sudo apt-get install tftp
etc.
The tftp client for Linux and OS X is very similar. When invoked, it gives the user a prompt and takes commands from the standard input.
Binary mode can be set with command-line flags - in OS X, the "-e" flag sets binary mode (among other things which are less important), and in Linux "-m binary". Binary can be set from the prompt in either (this is done below for consistency).
Typical usage looks like:
tftp 192.168.x.x > binary > put dd-wrt.vXX_XXX.XXX
Because the transfer must be initiated in a narrow time window during the router's bootup, tftp's retransmit option is useful. In the following sequence of commands, tftp will retry to send the file every second for one minute. This can be issued just before the router is booted, so that it will retry to send every second while the router boots.
tftp 192.168.x.x > binary > rexmt 1 > timeout 60 > put dd-wrt.vXX_XXX.XXX
If it worked, it will say something like "Sent 1769472 bytes in 9.0 seconds"
If it didn't work, it will say "Transfer timed out." This is often because it cannot connect to the IP. Make sure you have manually set your computer's IP to one in the router's subnet.
You can quit tftp with the 'quit' command or hitting ctrl+D.
Many Linksys routers require a special version of tftp that has a simple form of authentication. You can download and compile a special version of tftp that works on these routers from: http://redsand.net/projects/linksys-tftp/linksys-tftp.php (you will need to unpack the tarball and compile the program)
Another way of doing this is using atftp. You can search it in your package manager. On Ubuntu:
sudo aptitude install atftp
On Debian (as root):
aptitude install atftp
On Fedora (as root):
yum install atftp
On Suse (as root):
smart install atftp
Then you go to the folder where you downloaded the official Linksys firmware, for instance if you downloaded it in your desktop:
cd ~Desktop
Unrar the file, for instance if the file is WRT54GL_v4.30.11_012_ETSI_EN_code.rar
unrar x WRT54GL_v4.30.11_012_ETSI_EN_code.rar
Rename the firmware to code.bin.
cp WRT54GL_v4.30.11_012_ETSI_EN_code.bin code.bin
Then you prepare this command (do not press enter yet):
atftp --option "mode octet" --option "timeout 60" --verbose --trace -p -l code.bin 192.168.1.1
Disconnect all your network cables from your router, only leaving one from the computer to the router. Then open another terminal and ping to 192.168.1.1
ping 192.168.1.1
Then unplug and plug back the energy supply and when you see the first ping response from the router you must hit enter in the atftp terminal. Good luck! If everything is allright, you should see a lot of output, from all the transference. At the end you should see the orange/yellow light up. Then you should wait a couple more minutes (you never know what's happening there :D) and then try the Hard reset aka 30/30/30
About the atftp command: we are putting (-p) a local file (-l) called code.bin to the IP 192.168.1.1 asking for fully information (verbose) and showing all packages (trace), also that it must be trying for one minute (timeout 60) and in octet mode. Remember, if you get "code pattern error", try with the official Linksys firmware. More information:
man atftp atftp --help
Important: you should allways try atftp with the official firmware and then flashing to dd-wrt with the HTTP webpage on Administration, "Upgrade Firmware"; specially if you get "code pattern error".
Note: if you use Gnome or KDE you can get problems while trying to put your static IP. Most of the times, applications like NetworkManager (aka nm-applet) or knetworkmanager will try to get a dynamic IP, so you should first kill them. For example:
sudo killall NetworkManager
or
sudo killall nm-applet
If something goes wrong
If your router fails to reboot (power light doesn't stop flashing, no web interface, etc) you will need to Recover from a Bad Flash.
Related Links
TFTP Flashing a Belkin F5D7230 - more detailed notes on flashing the F5D7230 (v1000, specifically)