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!