(2013-01-28, 21:44)popcornmix Wrote: @MilhouseVH
Can you build a new kernel?
Apply this patch:
https://dl.dropbox.com/u/3669512/temp/sd...atal.patch
and add to cmdline.txt:
sdhci-bcm2708.reboot_fatal.patch=Y
Unfortunately, it appears that a write to the SD card is required to trigger the timeout.
I've applied your patch (and disabled my hack), although I modified the patch slightly to use a kernel_halt rather than emergency_reboot so that I could analyse any info on the screen at the time of the halt.
Having primed the system for an auto-update (ie. new SYSTEM and KERNEL plus md5's in /storage/.update), I rebooted and saw the following sequence of events:
Code:
### Loading kernel modules ###
### Checking disks ###
### Mounting flash ###
### mount filesystem /dev/mmcblk0p1 ... ###
### Loading bootsplash ###
### Mounting storage ###
### mount filesystem /dev/mmcblk0p2 ... ###
### Checking for updates ###
Checking KERNEL.md5...
/storage/.update/KERNEL: OK
Checking SYSTEM.md5
/storage/.update/SYSTEM: OK
Updating Kernel on local...
[ 8.183597] System halted.
As you can see, it got as far as mounting the partitions, and started writing to kernel.img, before the timeout occurred and the system then halted.
Subsequently inserting this SD card into a Ubuntu PC, I can only see the primary FAT partition - the ext4 partition is hosed and can't be mounted.
Code:
[1737049.219613] sdd: detected capacity change from 4029677568 to 0
[1737276.808598] sd 20:0:0:0: [sdd] 7870464 512-byte logical blocks: (4.02 GB/3.75 GiB)
[1737276.814077] sd 20:0:0:0: [sdd] No Caching mode page present
[1737276.814080] sd 20:0:0:0: [sdd] Assuming drive cache: write through
[1737276.819980] sd 20:0:0:0: [sdd] No Caching mode page present
[1737276.819982] sd 20:0:0:0: [sdd] Assuming drive cache: write through
[1737276.820743] sdd: sdd1 sdd2
[1737277.176731] EXT4-fs (sdd2): ext4_check_descriptors: Checksum for group 0 failed (4739!=0)
[1737277.176734] EXT4-fs (sdd2): group descriptors corrupted!
kernel.img is also corrupt, as it has been partially written to.
So it looks like too much damage will already have been done before the timeout triggers and halts/reboots the system.