Adventures with the Linksys WRT54GL – Part 2

So yesterday after the kid was tugged in, I thought it would be a great idea to update my WRT54GL router from OpenWRT Backfire (10.03.1) to OpenWRT Attitude Adjustment (12.09-beta). I saw one (*one*) post saying that there were problems with WRT54GL, but I thought I’d give it a go anyway. That turned out to be a less than clever decision.

So, flashing the device wasn’t actually an issue. I decided to be fearless and did it from the shell like this:

root@gateway:/sdcard# wget
root@gateway:/sdcard# mtd -r write openwrt-brcm47xx-squashfs.trx linux

One reboot later, and the router was up – all configuration went out the window, but that was good with me. One thing immediately struck me – this new firmware was *slow*. Often the web interface would time out and I would be unable to even see certain sections. A little while later, it turned out that is was also highly unstable and rebooted often – maybe in relation to the web interface timing out. I decided to downgrade to Backfire again, but was unable to finish uploading a new firmware through the web interface. Again, I was fearless and decided to pipe the output from a wget directly to the mtd firmware tool. The reason for piping was lack of temporary space on the device (around 3MB needed).

I’d be lying if I was surprised, but the router crashed around 62% through the download and firmware write. Since the router was now unresponsive, I gave it a reset and saw the power LED blinking continuously. I even did the 30/30/30 reset and again the result was a blinking power LED. According to the intarwebs, that means this particular device is stuck in the boot process. That makes perfect sense, if I only managed to write 62% of the new firmware. Luckily, this only means the router is half dead. To brick it completely, you apparently need to write some really outrageous data to the nvram.

Half dead means that you can often upload a new firmware to the device using the TFTP protocol. If you want gory details about that, check out this OpenWRT wiki page. I decided to go for the old OpenWRT Backfire, and loaded that onto the device through TFTP. It worked as expected, and the device was back up and running.

So, the decision was to stick with the old firmware for now. I moved on to the SD/MMC-card installation, but was surprised to see that the kmod-broadcom-sdhc package mentioned in part 1 was no longer available. As it turns out, I was now running the brcm47xx version of Backfire, and the original firmware before the Attitude Adjustment adventure was the brcm-2.4 version. The difference seems to be kernel versions, with the old one running 2.4 and the new one 2.6. Attitude Adjustment is using kernel 3.3. Anyway, the kmod-broadcom-sdhc module is only available for kernel 2.4, which means I had to run Backfire 10.03.1 brcm-2.4. A firmware upgrade later, and I was running the right version of Backfire and I was able to install bkmod-broadcom-sdhc again and could access my SD-card. Worth mentioning is that the driver actually works with a relatively new 8GB card. Since the device is seriously strapped for resources, mostly in the RAM department, I have no idea what to use 8GB for and decided to stick with the 512MB card from 2006.

Moving some or all of the root filesystem to the SD-card seems like a somewhat pointless exercise, since I’m seriously limited in what the device can run anyway. At this point I’m hoping to get something like CoovaChilli running on it, and that’s it. Alternatively I’m going shopping for a dirt cheap alternative with 128M RAM and an USB port. I’ve seen routers like this with 1Gb ethernet ports at around $80/€60.

In part 3 I’ll be diving into the magnificent wonders of setting up a hotspot on OpenWRT.

Posted Friday, October 26th, 2012 under Uncategorized.

Leave a Reply

You must be logged in to post a comment.