The world’s worst embedded Linux device

Door rings, it’s the mailman to deliver a package I missed the other day and rescheduled. I ordered the D-Link DSL-G604T ADSL router and a Linksys WRT54GL. Both of these are (intentionally) running on Embedded Linux environments because I want to manage them remotely. They’re going to be at my parent’s place, I’ll be overseas.

What I want to do is establish an ADSL connection, run some WiFi and forward a couple of ports (temporarily) into an internal machine. Nothing that should be even remotely tricky on a Linux system and in fact is not. Now, I’m not going to write about the Linksys box at this point because I know for a fact that they run just great and I’m not planning to use the vendor firmware on it anyway. However, I will (for the sake of humanity) write a little about the shockingly appaling D-Link DSL-G604T that I received in the mail this morning.

I’ve managed to find the world’s worst ever Embedded Linux device! This little fucker is apparently based on some MVL variant and the underlying Linux is actually just fine – I mean, how could you honestly screw up busybox and iptables? Even D-Link didn’t manage to do that. No, logging in on the console is the only nice thing about it. Let’s see… the web interface is very simplistic, filled with (minor), annoying bugs and even the Advanced settings are trashy. Adding Port Forwarding rules shows them in the web interface, but iptables on the device (via the undocumented telnet) confirms that they don’t actually setup the rules right. Various fora suggest all kinds of fixes (and document other classical bugs) but none work. It’s just badly done.

I could just work around D-Link’s crappy product and script the device startup, but for the fact that there’s no free space on the flash by default and I’d have to remotely reconfigure it on every reset. That’s not a problem – I mean, you can’t assume that those buying your product will want to hack it in this way. BUT they could supply it in a way that meant it worked in the first place. I decided to look for a firmware upgrade. I used the nasty windows exe installer directly after several attempts at using the web interface – and that’s about the point when the device bricked itself. No amount of factory reset button usage is bringing this thing back from the dead at this point.

So, I’ve lost a few hours, I’ve got a brick. I’m going to return it, right? Actually no. I’ve decided I’m going to help out on the OpenWRT firmware and take this fucker apart/reflash it by hand. If D-Link won’t produce a device that works, then the least we can do is to provide an alternative – and hopefully kick some idiots into trying a little harder next time. Not impressed. Meanwhile, please don’t buy this product.


One Response to “The world’s worst embedded Linux device”

  1. I had exactly the same problem, and have managed to resurrect my router. If you go to and choose your product (the DSL G604T), then on the left menu go to “Troubleshooting, Router has stopped responding”, there are instructions which seem to work – at least partially. I used the new NZ firmware, as I’m currently in NZ – but looking at it, it’d probably be okay for the UK, etc.

    For me, when following the instructions I found that using the Corrupted Image Mode allowed the firmware updater to connect to the router (even though I couldn’t connect via IP) and after a few seconds the Status light on the router lit up. The firmware flashing failed, but by closing the updater, setting the NIC to DHCP and then re-running the updater in normal mode with the default IP (in my case,, but I guess just do an ipconfig and plug in the gateway address) and password (admin), the firmware update worked and after this the box was fine.

    Good luck with this!! I for one am fervently waiting for the OpenWRT AR7 port to work fully on the G604T, so am glad to hear of your intent to get it running.

Leave a Reply