Tech: Linksys WRV54G

2022, Aug 14    

The outlook for today, technical with a hint of WRT and some custom scripting :-)

In my early years I spent a considerable amount of time and effort tinkering with routers/access points from different vendors, as back then the security of the firmware was an afterthought for the most part and with a few careful REST commands you could gain access to the platform (in some cases without a serial cable).

After working on quite a few devices the one thing that always frustrated me was the lack of performance. By this I mean attempting to do anything interactive over the serial port, even with all other processes terminated and the device being next-to idle. The common trend with all of these (other than my expectations being too high) was that of the MIPS architecture.

It was at a car boot where I came across the Linksys WRV54G access point, which stood out for 2 very simple reasons:

  • It didn't look like a standard access point
  • It was cheap (£10 from memory)
As I love a bargain (and new toys) it was too good to say no to, and so the next tech project of the time began (and one I was glad for!)

Some research into the device showed that for the most part it ran a standard Linux kernel (with the usual smattering of patches for compatibility), and the specs were actually more than the other devices I had experimented with. The big difference by far was that this device used Intel's IXP4xx (I believe IXP425 from memory) chipset, which was significantly faster than I expected.

Some soldering and a serial cable later and I was on the device, and in truth I was genuinely impressed by the speed. It didn't feel laggy, commands were responsive, and for the first time I felt like I'd actually got access to a device that was working properly. Given its impressive speed, it was clearly time to tinker...

With a few tweaks to my code I had a solid build platform that allowed me to build a custom kernel and OpenWRT variant that was compatible with the device. Everything still needed to be kept slim, but now the possibilities were significantly improved. For starters, it was time for a new WiFi card...

Seeing that the WiFi adapter was mini-PCIe based was a great starting point, allowing me to remove the standard adapter and fit a higher-power card from Atheros. The custom card had significantly more capability than the onboard, not to mention it allowed for the next part, penetration testing tools.

Getting the software compiled and functional was a little tricky at the time due to the CPU architecture, but a few patches later and things genuinely looked good. Tools like aircrack-ng / kismet were functional and could leverage the new WiFi adapter. As a bonus I managed to port my dissertation software to the device and have that functional as well.

Despite the lack of RAM by todays standard (as it only had 32MB), the device was genuinely capable. It worked great as a wireless bridge/NAT gateway and even ran a custom UI that I spent (too much) time creating. I can honestly say I was impressed with what the device could do, and depressed thinking about the time I had wasted on earlier devices (I'm looking at you Livebox).

While newer devices have significantly more functionality (and speed), I can honestly say that it was this device which gave me hope for modifying these types of devices to achieve more than they were set out to. I've worked on a few never devices since this one, but this is the one that I enjoyed the most.

Despite digging through my photo archives I only have the one photo of this device, seemingly as I was about to solder the wires for the serial port access. At least there is something to remember it by :-)

WRV54G 01
Sadly the only picture, but a good memory none the less