As I received my second SheevaPlug Development Kit yesterday, it was time to actually try flashing it; the first unit was ordered with an UBIFS installation from NewIT – which runs great! –, this time I saved the about 5 UKP and intended to try to convert the unit from jffs2 to ubifs myself. Given that there even exists a ready-to-run Installer, how difficult could that be?
Ah, well … To make the story short – it’s Christmas Eve after all –, I bricked it. On the first opportunity ;)
As it turned out, using an USB 2.0 2-GB-stick, off which the WD TV Live happily boots a Debian live system (courtesy of b-rad), didn’t go too well with the SheevaPlug: using the Installer stuff, I wiped the NAND, flashed a new uBoot and then SheevaPlug rebooted, trying to fetch kernel and rootfs from the attached USB stick. It tried. It resetted even USB, I think. Then it gave up with an “drive not ready”-message => now my SheevaPlug was stuck uBooting into failing to flash, great. At least I was able to witness this all live via “minicom -o /dev/ttyUSB0”, this being a development kit. Ah, and yes, even without a working uBoot I should be able to reflash uBoot through this JTAG-and-serial-via-USB connection; although I prefer not to need that …
Running out of options (that is: free USB sticks; it is said in the Forums that using an USB HDD might yield exactly this, that is a not ready drive at the time SheevaPlug wants to fetch the data), I pulled out the MicroSD-to-SD-adapter out of my Zi8, put the tiny 4-GB-MicroSD it contained into a USB-MicroFlash-adapter, wrote the Installer-data onto it, safely unmounted it, attached it to the USB host port of the SheevaPlug … and rebooted the SheevaPlug.
This time it worked as advertised: the NAND got erased, reprogrammed, the Plug rebootet, fetched kernel and rootfs from the USB device, flashed that, rebootet again – and I had my SheevaPlug the way I like (and need) it: booting really fast, having modules for all kinds of uses where they belong (as delivered, there was an empty /lib/modules/`uname -r` – so, no luck with an USB hub to start with); guys, this is really, really cool stuff! (Ok, not the Plug itself, mine at least get’s pretty hot even doing nothing.)
Instead of a former ~120 second boot cycle, I’m now down to …
dhcp-server:~# ssh root@plug-2 shutdown -r now \; exit ; rc=0; date ; while [ $rc -eq 0 ]; do ping -W 1 -c 1 plug-2 >/dev/null ; rc=$? ; done ; date ; rc=1; date ; while [ $rc -eq 1 ]; do ping -W 1 -c 1 plug-2 >/dev/null ; rc=$? ; done ; date root@plug-2's password: Thu Dec 24 10:59:54 CET 2009 Thu Dec 24 10:59:59 CET 2009 Thu Dec 24 10:59:59 CET 2009 Thu Dec 24 11:00:25 CET 2009
… roughly 30 seconds from “shutdown” to “pinging again”. This rocks ;)
Merry Christmas!
