Originally Posted by geekmaster
WARNING: Although fastboot seems to flash partitions correctly on a K4NT, according to serial port messages while flashing various partitions on the Touch, it always writes to mmcblk0 instead, which destroys the linux kernels for both the main and diags partitions. More evidence is that after I flashed mmcblk0p4 with a "filled in" version (I cannot export the USB drive), it now reports "cannot find linux kernel" when trying to boot main or diags. Both linux kernels are in mmcblk0p1, which is what appears to get damaged when you try to flash anything else. This is also probably why it finishes so quickly.
I plan to fix this with a custom bist u-boot that contains a repaired fastboot (if that is where the problem lies). If it is a communication problem between the u-boot fastboot module and the kindle fastboot tool, then that is where I will fix it. This will take some study.
For now, I recommend that if plan to write a backup copy onto the main system boot partition (mmcblk0p1), you should do it by booting diags and using "dd if=/mnt/us/mmcblk0p1.img of=/dev/mmcblk0p1 bs=1024" from RUNME.sh, after booting diags, adding ENABLE_DIAGS and the custom RUNME.sh, and if data.tar.gz has not been installed yet add it too. Then reboot from the menu. A hard reset (long power hold) has been reported to not always run RUNME.sh. As you can see in the IRC session I posted to the "Select Boot" thread, this method works well.
When fastboot is more reliable, that is the easier way to go, but for now, RUNME.sh is better...
We can still use fastboot for some things, like "sudo ./fastboot setver bootmode diags" to write bootmode diags to mmc so it become the default boot location (unless overridden with MfgTool). Just do not flash partitions on a touch with fastboot until we fix the problem.
Thanks Geekmaster. I have recovered my Kindle Touch by "dd if=/mnt/us/mmcblk0p1.img of=/dev/mmcblk0p1" in diags.
Here's a little suggestion: Please use bs=1M instead of bs=1024. 1k blocks will make the dd progress very slow. 1M seems to be a reasonable block size.