dan forys

blog

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:

Screenshot of TIupdate running

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:

Windows network settings screenshot

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:

Screenshot of the D-link firmware program

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!