I bought a linksys WRT-600N wireless ABGN router, and it's actually
a quite capable linux box. Thankfully, because it was not a telco
product like a cell phone :) and because they were able to put the radio
firmware in a way that open source people won't mess with it and break
FCC rules, some folks started writing better firmware for routers of
that class several years ago now.
End result, the excellent dd-wrt firmware turned that wireless internet
router into a full linux box but with very low power use, form factor
and heat dissipation.
It's now using 8 times less power than the old AMD K6 350Mhz linux box
it's replacing, frees up a lot of room in my closet, no noise, and
removes any worries of failing hard drives.
The only thing that router was missing for me was usb serial support
so that I could monitor booting of my other PC server and/or debug the
server remotely if networking goes down, or whatnot. I wanted to keep a
config where I had two internet facing hosts I could ssh into, and use
any of the two to get to my internal network, as well as use one to get
the boot messages from the other one.
The problem was that dd-wrt didn't have usb-serial support, it was doable
but the bits were missing. I also wanted to make a contribution to the folks
who do the dd-wrt software, so
I put out bounty to get usb serial working
and it was fixed and added with 24H, woot!
And I'm sure when dd-wrt started out, people wondered why you'd want to replace the firmware on a router that came with already working and written firmware, kinda of why I initially wondered why some guy in sweden thought it would make sense to write a new firmware for the archos mp3 player back in the day (and later I found out how it turned out to be awesome).