Netgear CG3000D cable modem keeps resetting

I published a previous blog entry about how my Netgear CG3000D cable modem had apparently failed.  I wrote up a detailed description here about the problem.  That blog entry was mistaken - the modem was fine all along.

I got an experienced Cox technician on site and we came up with what we think is a reasonable explanation for why the modem kept resetting.  Apparently there was some user setting in the NVRAM (flash) which had been saved by a previous version of the modem's firmware.  Cox upgraded the firmware in the background and when the new firmware started up, it read the settings, and found something incompatible.  The Netgear programmers who wrote the firmware decided the best way to handle this situation was to reboot.  As long as the NVRAM contained the same binary string of user settings, this cycle would repeat without ending.

The actual cable modem part was fine, but the router part wasn't able to work with the "corrupt" or incompatible settings.  This is the main problem with integrated cable modem/router combo devices.  If I had a standalone cable modem I would have been able to stay online, and I can just use my wizzy Linux server as the router.  I'm very capable to debug problems with the Linux server.  Not so much with "black box" devices like this Netgear device.

The only way to make the thing stable again was to clear the NVRAM with a full factory reset (hold down the reset pin for 30 seconds, no less than 30 seconds), then wait for it to come back up (the process takes 5+ minutes), then re-enter all the user settings.  I do have to thank the only Tier 2 support person at Cox that I was able to speak with for suggesting this.  Once I realized that the problem had to do with the user settings, it was easy to figure out.

In summary, here is how I got this problem and how to resolve it:

  • The cable modem/router shipped with some firmware version from Netgear.
  • I set several custom user settings for port forwarding, etc., using the original firmware version.  These settings were saved to the NVRAM.
  • Cox upgraded the firmware at some point.  They do this invisibly and in the background and there is no notification or warning or anything. The only way to tell this happened is to check the router frequently to see if it has a new software version number.
  • By the way, the Cox sooper secret login username/password for the Netgear CG3000D router is MSO/changeme.  This information is not really that secret since I found it on a Cox technical support web page.
  • The new firmware apparently has a different "format" or byte-string or something for the arrangement of binary digits (bits) representing the user settings in the NVRAM.  There is no way in their software QA testing that they could try all of the possible combinations of bits that could be in the NVRAM, so this is an honest mistake, but if I was the designer I would have tried to make it backward compatible.
  • When the new firmware was installed it caused a reboot.  On reboot, the firmware read the user settings out of NVRAM and found them to be corrupt.
  • The reboot cycle repeated endlessly until I cleared the NVRAM.

I guess the lesson learned from all this is that I should have tried a "factory reset" of the NVRAM the first time I noticed it rebooting.

The modem is fine and has been online with Cox ever since I resolved the NVRAM issue.  Well it's fine, other than having really crappy (read: generally unusable) wifi hardware.  Most people who have the CG3000D turn off the wifi and use another access point device.