The folks at AdMob got me an N810 as a going away present:

N810 from AdMob

Omar took the time to poke around and ask Russ what I was lusting after but didn’t already have, and the N810 was at the top of the list. As if I didn’t already have enough good stuff to say about the folks there, they went and piled even more icing on the cake. Thanks everyone!

I’ve already screwed it up, but then fixed it. So it’s all good. Just want to lay down the order of operations in case anyone else runs across it. My problem was pretty much the same as the one described here, after updating the firmware the internal memory card was getting mounted read-only. I discovered this because I was trying to install apps using the package manager and it was failing. The app manager log viewer showed the errors as /media/mmc2 being read-only. I think this was related to me setting up swap on the internal storage card and it being on when I did the firmware upgrade.

The kicker was that I had yet to install becomeroot or SSH, and I hadn’t reset the passwords. So how do you unmount and reformat the internal card on the N810 pre-hackery? Here it is:

  • Enable RD mode using the flasher. Despite the indication to the contrary on the HowDoIBecomeRoot page, you can enable RD mode on the N810 to enable access to gainroot. Just run ‘flasher-3.0-static –enable-rd-mode’ using the same process described for firmware updates (plug in the N810 with the power off, run command, power on while holding home key).
  • Now you should be able to use ‘sudo gainroot’ from xterm (which is distributed with the base OS, interesting) to get root access to the device.
  • Unmount the internal card using ‘umount /media/mmc2′.
  • Reformat the internal card, which will destroy all the data on there. For me this wasn’t an issue cause I had yet to put anything at all on the device. The command I used was ‘fsck.vfat -a /dev/mmcblk0p1′, which is a slightly different device name than given in the Internet Tablet Talk forums, I think there’s just a typo in that version.
  • Reboot the device and run ‘mount’ from the command line, you should see /media/mmc2 as read-write mounted now.
  • Do a little victory dance.
  • I installed openssh and reset the passwords for both the standard user account and root account.
  • Disable RD mode using the flasher using ‘flasher-3.0-static –disable-rd-mode’. Power consumption and response times seem to really suffer with RD mode left on, so I always turn it back off now.

Seems like a really nasty firmware update bug too, if I weren’t prone to hackery of the sort or attentive with respect to what’s causing errors I could have easily assumed an incorrect root cause for these issues. I was already on my way down the path of cursing the package repositories for including screwed up dependencies before I realized the app installer log indicated a completely unexpected error from the underlying tools. The package manager should really throw a better error for something like that.