Restoring GuruPlugs

At which point I decided I wanted to try to restore the original kernel, so that I would at least have a working system with which to test.  Therein lied the rub.  The files posted here are completely broken.

Thankfully, a friend of mine also ordered a GuruPlug.  So I grabbed his images. Here’s how to ACTUALLY restore your GuruPlug if you flash a bad kernel to it.

Download the extracted uImage.  This was created by the command ‘dd if=/dev/mtdblock1 of=uImage’.

Download the rootfs from the PlugComputer wiki.

Download the kernel 2.6.32 modules.

Boot your GuruPlug with serial attached and enter the u-boot interface by interrupting it with a keyboard press.

Make sure that you’re running a tftp server. Inside your tftp root, gunzip the uImage.

bkero@ponderosa ~ $ gunzip uImage.gz
bkero@ponderosa ~ $ sudo mv uImage /var/tftp/
bkero@ponderosa ~ $ mv rootfs.ubi.img /var/tftp/

Ensure that an ethernet interface is run between your server and your GuruPlug.  Set your server’s IP to 192.168.2.1.

Marvell>> setenv ipaddr 192.168.2.2
Marvell>> setenv serverip 192.168.2.1
Marvell>> tftp 0x6400000 uImage
Marvell>> nand erase 0x100000 0x400000
Marvell>> nand write.e 0x6400000 0x100000 0x400000

Now your kernel should be flashed to the GuruPlug.  Time to upload the rootfs.

Marvell>> tftp 0x6400000 rootfs.ubi.img
# This will take a few minutes.  Get a beer.
Marvell>> nand erase 0x500000 0x1fb00000
Marvell>> nand write.e 0x6400000 0x500000 0x(number of hex bytes flashed)
Marvell>> setenv filesize B940000
Marvell>> setenv fileaddr 6400000
Marvell>> saveenv
Marvell>> reset

At this point your useless GuruBrick should reboot and become a useful GuruPlug again!  You’re almost out of the woods.  Once you boot up you’ll notice that you’re missing a lot of modules, causing a lot of errors on bootup.  We’ll need to reinstall the /lib/modules/2.6.32-stuff directory.  Luckily, we have that packaged.

guruplug-debian:~# apt-get install bzip2
guruplug-debian:~# wget http://code.corbinsimpson.com/modules.tar.bz2
guruplug-debian:~# cd /
guruplug-debian:/# tar xvjpf /root/modules.tar.bz2
guruplug-debian:/# reboot

This should restore your GuruPlug to it’s original functionality!