Marc's Public Blog - Linux Hacking


All | Aquariums | Arduino | Btrfs | Cars | Cats | Clubbing | Dining | Dinners | Diving | Electronics | Exercising | Flying | Hiking | Linux | Linuxha | Public | Rc | Sciencemuseums | Snow | Solar | Trips

This page has a few of my blog entries about linux, but my main linux page is here
Picture of Linus


Table of Content for linux:

More pages: October 2016 August 2016 July 2016 June 2016 February 2016 January 2016 May 2015 March 2015 January 2015 October 2014 May 2014 April 2014 March 2014 January 2014 November 2013 September 2013 May 2013 March 2013 January 2013 December 2012 August 2012 May 2012 March 2012 January 2012 December 2011 August 2011 July 2011 January 2011 October 2010 August 2010 June 2010 April 2010 March 2010 January 2010 December 2009 November 2009 September 2009 August 2009 July 2009 May 2009 January 2009 December 2008 November 2008 October 2008 January 2008 November 2007 August 2007 July 2006 January 2006 August 2005 April 2005 November 2004 March 2004 February 2004



2010/03/13 DD-WRT on my WRT600N
π 2010-03-13 00:00 in Linux
My wireless router was acting a bit flaky so I rebooted it and it came back without mounting its USB key. So, I try again and this time it doesn't reboot.
Argh: my main wireless router and internet gateway gone...

Ok, in my case it's not that bad since I have 3 wireless gateways, all of which can do the job (they work in parallel), and 2 internet gateway.

But still, I had to fix it. I figured the flash got corrupted, so I figured I'd flash a more recent build (I was running some ancient 10923 from almost 2 years ago).
Unfortunately, flashing it wouldn't bring the router back, but I was able to see the CFE boot loader for a few seconds at a time and could tftp a new build (after doing the 30-30-30 nvram reset).
A few hours later, I realize that my router isn't coming up at 192.168.1.1, which it's supposed to do after a wipe/flash, but eventually I notice it still comes up as my old wireless network, which is supposed to be impossible afer 4 nvram flashes.

Some time later, I finally realize that it's actually my power supply that is goign bad, which explains why the unit was still booting, even flashing, but failing to do a full boot most times. Strangely enough the flaky power also prevented an nvram wipe/flash.

A new power supply later, I finally get the unit to flash and boot. I install the recommended 13064 from the wrt firmware recommendation page. This is where wrt goes wrong, I know dd-wrt somewhat but their docs and organization just sucks:

  • the build that was recommended on their main page is actually not that good a build according to some forum FAQ which I found much much later. The so called peacock thread is also a good read.
  • there are [regular brainslayer stable uilds, and then special eko builds or eko's builds of BS's snapshots, kernel 2.6 builds, VINT builds, NEWD builds, and NEWD2 builds.
  • Oh, did I mention that if you really pick the wrong one, you can brick your router? Nicely the WRT600N can't be reflashed by serial port via a special JTAG cable you'd hand connect on the motherboard, but it seems that it's better at giving a tftp boot to reflash even if the current firmware won't work (some other routers will just require serial flashing then).
  • after that you have the micro builds, the mini builds, the nokaid builds, the voip builds, the usb builds, the BS mega builds, the eko big builds and the eko mega builds. What does each build exactly do? This the full list is really documented nowhere. The wikipedia dd-wrt page actually has some info since the main dd-wrt page doesn't in obvious places, but even then all mega builds aren't the same: it's per router and per version. *Update*: this page actually has good info on which build has what now.
  • my old mega build was 5.3MB, the new one is 7.6MB or just enough to fit in my 8MB flash
  • Now, the build comes with jffs2 but jffs2 requires around 364KB for its data structures (that's huge BTW), so this is the second time I get a dd-wrt build with jffs2 where I end up with exactly 0KB free on my jffs2 filesystem, making it 100% useless. Really, a jffs2 build that doesn't leave ANY room for any jffs data? On a 8MB router no less?
  • from there I can use the standard build without really knowing what I'm going to lose in the 3.3MB of missing code, or try a special eko build. But which one? Now you start looking in the forums to see which build of the day may actually be not too bad (this can be several hours worth of reading).
  • Now, you still don't know which build really has what, but you just flash the biggest one that will fit and hope for the best.
  • In my case, I thought I needed everything and ended up putting the mega build since I realized that I didn't realy need jffs2 afterall since I had USB and a USB key that I could just mount at /jffs.

    But I wasn't out of the woods, the release I got had issues with wireless code as pointed out later to me on the forum where I was told that I misread one of 4 FAQs that apparently fix some of the incorrect information on the main site.

    Long story short, it was over 10 hours of work.

    DD-WRT rocks for features, but its main documentation sucks and getting the "right build" can really be pain in the butt if not an exercise in futility when you need several things to work all at once (in the upgrade 802.11N over 2.4GHz started sucking for me, I only get 2.6MB/s when I used to get 6MB/s).
    Thankfully the board members are helpful but the poor guys are probably overwhelmed by both people who don't know or understand anything and then the people who do but have problems with getting the wrong build off the web site, or being just plain confused as to which build will actually work for them.

    Now, back to features, the list is nothing short of amazing. As much as it can often suck to find the optimal build and make it work, as much as the featureset dd-wrt gives you is absolutely impressive:

  • full wireless routing of course
  • 802.11N with channel width for 2.4 and 5GHz (when it works at least)
  • support for most wireless routers out there
  • full USB support on my WRT-600N including installing mips debian software from a huge repository on my USB flash key, or USB printing, USB storage of all kinds of course, and even USB serial support (I run minicom in a screen session to monitor my other server)
  • thanks to the above, I replaced the built in DHCP and DNS with full ISC DHCP and DNS so that I can slave my zones and static mappings from my other linux server
  • DDNS, all kinds of revenue generating hotspot setups
  • BGP (!)
  • ssh, sshd, syslogd, telnet, http, https, ftpd, 802.11x
  • jffs2 if you have enough flash, MMC hack soldered on GPIO pins on the board
  • nfs, cifs, plus any kernel module you can find compiled on the net
  • full IPv6, tunnels, ethernet over IP tunnelling.
  • channel bonding, WAN port assignment per port
  • full firewalling, UPnP port forwarding, rate limiting, port knocking, and more
  • nstx (IP over DNS), wake on lan for your other machines
  • etc...
  • Nothing beats dd-wrt there, but you have to earn your dues by finding the right build and getting it installed :)


    More pages: October 2016 August 2016 July 2016 June 2016 February 2016 January 2016 May 2015 March 2015 January 2015 October 2014 May 2014 April 2014 March 2014 January 2014 November 2013 September 2013 May 2013 March 2013 January 2013 December 2012 August 2012 May 2012 March 2012 January 2012 December 2011 August 2011 July 2011 January 2011 October 2010 August 2010 June 2010 April 2010 March 2010 January 2010 December 2009 November 2009 September 2009 August 2009 July 2009 May 2009 January 2009 December 2008 November 2008 October 2008 January 2008 November 2007 August 2007 July 2006 January 2006 August 2005 April 2005 November 2004 March 2004 February 2004