Fixing a bricked D-Link DSL-G624T
Posted on 2010-01-22 - Comments
My Parents have a D-Link DSL-G624T ADSL modem/switch. Unfortunately, my brother decided to update its firmware, crashing it in the process. After a bit of remote debugging over the phone, we thought the best option was to send it to me.
The symptoms were as follows: The power LED came on as normal, the status LED was flashing as normal – indicating that it was at least booting up. The LAN link LEDs would light up when an ethernet cable was plugged in. However, its web administration panel couldn’t be reached on http://192.168.1.1 and it couldn’t be pinged either.
After a lot of searching, reading and failed attempts at repairing it, I have found a method to reset the firmware without the web interface. Quite why D-Link make it so awkward for their UK customers, I don’t know.
DISCLAIMER Follow these instructions at your own risk; these instructions worked for me, I make no guarantees it will work for you.
I did this on a revision ‘A’ device – you’ll need to download different firmware if you have a revision ‘B’ or ‘C’ device.
I reproduce all the steps to manually recreate the firmware update package below. For convenience, I have packaged everything up. If you use my D-Link G624T rescue package, you can skip straight to steps 4 and 5.
Step 1: Download the Australian firmware package for the G604T.
At the time of writing you can find it on their FTP server. It’s important to get the EXE version which contains the program to reset the device.
Extract the .zip archive and run the program. A window will appear asking you for the device’s IP address. At this point, open an explorer window and navigate to your user’s ‘temp’ folder (in my case C:\Documents and Settings\Dan\Local Settings\Temp – you will need to turn on ‘show hidden files’ to see it). In here will be a randomly named folder (something like ‘ckz_DE0G’) with a program called TIupdate.exe in it:
Take a copy of the files in the folder and put them in a folder on your desktop called ‘update’. Once you’ve taken a copy, you can close the program.
We won’t need the Australian firmware files, so delete config.DLinkAU_DSL-G604T.img
and DLinkAU_DSL-G604T_singleimage_kernel_fs_V2.00B12.AU_20070509
.
You should be left with the following:
external_boot.bin
tiupgrade.exe
tiupgrade.ini
tiupgrade.scp
Step 2: Download the UK firmware
Grab the latest DSL-G624T firmware from the D-Link support site and extract it on your desktop.
From the resulting files, copy the two files inside the ‘image’ folder into the ‘upgrade’ folder you created previously. Also, open the mtd-4m.txt file in Notepad, you’ll need this in a moment.
Step 3: Set the firmware uploader to use the UK firmware
In the ‘upgrade’ folder, open the ‘tiupgrade.scp’ file in notepad. You should see something like the following:
setenv mtd0 0×90091000,0x903f0000
setenv mtd1 0×90010090,0×90090000
setenv mtd2 0×90000000,0×90010000
setenv mtd3 0x903f0000,0×90400000
setenv mtd4 0×90010000,0x903f0000
setenv autoload 1
setenv StaticBuffer 120
setenv modulation MMODE
setenv autoload_timeout 15
setenv StaticBuffer 384
setenv SW_FEATURES 0X8000
reboot
reconnect 3
put config.DLinkAU_DSL-G604T.img mtd3
put DLinkAU_DSL-G604T_singleimage_kernel_fs_V2.00B12.AU_20070509 mtd4
setenv autoload_timeout 5
reboot
This is a script telling the firmware uploader how to apply the firmware to the router. You need to amend this with the contents of the ‘mtd-4m.txt’ you have open. You also need to amed the two ‘put’ lines to reflect the filenames of the UK firmware.
After editing it, my tiupgrade.scp looked like this: (edited lines in bold)
setenv mtd0 0x900a1000,0x903f0000
setenv mtd1 0×90010090,0x900a1000
setenv mtd2 0×90000000,0×90010000
setenv mtd3 0x903f0000,0×90400000
setenv mtd4 0×90010000,0x903f0000
setenv autoload 1
setenv StaticBuffer 120
setenv modulation MMODE
setenv autoload_timeout 120
setenv StaticBuffer 120
setenv SW_FEATURES 0X8000
reboot
reconnect 3
put config.DLinkUK-A_DSL-G624T.img mtd3
put DLinkUK-A_DSL-G624T_singleimage_kernel_fs_V3.10B01T02.UK-A.20070523 mtd4
setenv autoload_timeout 5
reboot
Save the file and you’re almost ready to go.
Step 4: Set up your network
To ensure your PC can talk to the router correctly, you need to make sure you have a static IP address on the same subnet. By default, the UK version of the router is on 192.168.1.1.
Go into your LAN properties: Start -> Control Panel -> Local Area Connection (or similar). Right click and choose ‘properties’. Double click on the ‘Internet Protocol (TCP/IP) in the list to bring up the IP properties. Set a static IP address on the same subnet as the router, for example:
Step 5: Upload and activate the firmware
Now for the easy bit. Plug the router into your computer with an ethernet cable and ensure the router is switched on. Run the ‘tiupgrade.exe’ program. You should see a window like this:
Ensure the ‘Corrupted-image mode’ checkbox is checked, then click ‘Next’. The program will prompt you to power-down the router, wait 10 seconds, then click ‘Next’. Carefully follow these instructions and the firmware update should start automatically (It takes a few minutes).
Once you’ve done that, the router should reboot, and hopefully work again. It will have been reset back to factory settings, so you should be able to log in at http://192.168.1.1 with username ‘admin’ and password ‘admin’.
Good luck, I hope this helps someone!
- Next generation console wishlist 2013-02-18
- Digital conversations preserved 2011-02-21
- Pastel de Nata recipe 2011-01-10
- Fixing a bricked D-Link DSL-G624T 2010-01-22
- Learning PHP - Part 6: functions 2009-11-03
- Learning PHP - Part 5: your first dynamic web page 2009-11-03
- Learning PHP - Part 4: controlling flow 2009-11-02
- Symptoms of a Wordpress hack 2009-11-02
- Learning PHP - Part 3: array basics 2009-10-26
- Learning PHP - Part 2: variable basics 2009-10-25
- Learning PHP - Part 1: introduction 2009-10-24
- Unsetting HTTP headers in PHP 2008-08-06
- Intermittent 1px gap in Firefox 3 2008-07-30
- Understanding Linux file permissions 2008-07-29
- Step by step: Moving code between Subversion repositories 2008-07-23
- Novell client on OpenSuse 10.3 2007-10-08
- Removing Windows from Apple's Bootcamp 2007-10-01
- HTTP authentication in PHP 2007-06-12
- Microformats and me 2007-06-11