Interesting idea on the storage driver. That would probably be compiled into the kernel, right? Could it be that whatever differences exist between the H2O and the Aura are restricted to the kernel, and the updates somehow discriminate that way?
Yes, mount just shows the SD card, and stuff like proc and tmpfs. No sign of the internal storage anywhere in there or in /dev. I even tried making dev nodes for every block device listed in /proc/devices in case one of them might somehow be it, but no dice.
If I remove the SD card while the unit is on and then do `find /` it gives me a ton of errors like:
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
On the other hand, some stuff seems to work. Hmm! I think some of it might just be cached files. But with the card ejected, the first 16kB of the device is still readable. I don't know what to make of that.
Code:
[root@(none) ~]# dd if=/dev/mmcblk0 bs=1|wc
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 32
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 33
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 34
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 35
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 36
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 37
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 38
mmcblk0: error -110 sending status comand
mmcblk0: error -110 sending read/write command, response 0x0, card status 0x0
end_request: I/O error, dev mmcblk0, sector 39
Buffer I/O error on device mmcblk0, logical block 4
dd: /dev/mmcblk0: Input/output error
113 413 16384
Maybe that's just some sort of caching too?
Running your script produces:
Code:
+ mmc_detect
+ local error=1
+ dirname /sys/bus/platform/drivers/arm-pmu/unbind
+ driver=/sys/bus/platform/drivers/arm-pmu
+ [ -e /sys/bus/platform/drivers/arm-pmu/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/busfreq/unbind
+ driver=/sys/bus/platform/drivers/busfreq
+ [ -e /sys/bus/platform/drivers/busfreq/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/fsl-ehci/unbind
+ driver=/sys/bus/platform/drivers/fsl-ehci
+ [ -e /sys/bus/platform/drivers/fsl-ehci/fsl-ehci.0//mmc_host/mmc0 ]
+ [ -e /sys/bus/platform/drivers/fsl-ehci/fsl-ehci.1//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/gpio-keys/unbind
+ driver=/sys/bus/platform/drivers/gpio-keys
+ [ -e /sys/bus/platform/drivers/gpio-keys/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/ltc3589-regulator/unbind
+ driver=/sys/bus/platform/drivers/ltc3589-regulator
+ [ -e /sys/bus/platform/drivers/ltc3589-regulator/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/max17135-reg/unbind
+ driver=/sys/bus/platform/drivers/max17135-reg
+ [ -e /sys/bus/platform/drivers/max17135-reg/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/max17135_sensor/unbind
+ driver=/sys/bus/platform/drivers/max17135_sensor
+ [ -e /sys/bus/platform/drivers/max17135_sensor/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mc13892-regulatr/unbind
+ driver=/sys/bus/platform/drivers/mc13892-regulatr
+ [ -e /sys/bus/platform/drivers/mc13892-regulatr/mc13892-regulatr.0//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mx51_lpmode/unbind
+ driver=/sys/bus/platform/drivers/mx51_lpmode
+ [ -e /sys/bus/platform/drivers/mx51_lpmode/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mx5_pm/unbind
+ driver=/sys/bus/platform/drivers/mx5_pm
+ [ -e /sys/bus/platform/drivers/mx5_pm/mx5_pm.0//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc-pxp/unbind
+ driver=/sys/bus/platform/drivers/mxc-pxp
+ [ -e /sys/bus/platform/drivers/mxc-pxp/mxc-pxp//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_dvfs_core/unbind
+ driver=/sys/bus/platform/drivers/mxc_dvfs_core
+ [ -e /sys/bus/platform/drivers/mxc_dvfs_core/mxc_dvfs_core.0//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_dvfsper/unbind
+ driver=/sys/bus/platform/drivers/mxc_dvfsper
+ [ -e /sys/bus/platform/drivers/mxc_dvfsper/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_epdc_fb/unbind
+ driver=/sys/bus/platform/drivers/mxc_epdc_fb
+ [ -e /sys/bus/platform/drivers/mxc_epdc_fb/mxc_epdc_fb//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_i2c_hs/unbind
+ driver=/sys/bus/platform/drivers/mxc_i2c_hs
+ [ -e /sys/bus/platform/drivers/mxc_i2c_hs/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_iim/unbind
+ driver=/sys/bus/platform/drivers/mxc_iim
+ [ -e /sys/bus/platform/drivers/mxc_iim/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_ipu/unbind
+ driver=/sys/bus/platform/drivers/mxc_ipu
+ [ -e /sys/bus/platform/drivers/mxc_ipu/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_keypad/unbind
+ driver=/sys/bus/platform/drivers/mxc_keypad
+ [ -e /sys/bus/platform/drivers/mxc_keypad/mxc_keypad.0//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_pwm/unbind
+ driver=/sys/bus/platform/drivers/mxc_pwm
+ [ -e /sys/bus/platform/drivers/mxc_pwm/mxc_pwm.1//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_sdma/unbind
+ driver=/sys/bus/platform/drivers/mxc_sdma
+ [ -e /sys/bus/platform/drivers/mxc_sdma/mxc_sdma//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_spi/unbind
+ driver=/sys/bus/platform/drivers/mxc_spi
+ [ -e /sys/bus/platform/drivers/mxc_spi/mxc_spi.2//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_wdt/unbind
+ driver=/sys/bus/platform/drivers/mxc_wdt
+ [ -e /sys/bus/platform/drivers/mxc_wdt/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxc_zq_calib/unbind
+ driver=/sys/bus/platform/drivers/mxc_zq_calib
+ [ -e /sys/bus/platform/drivers/mxc_zq_calib/mxc_zq_calib//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxcintuart/unbind
+ driver=/sys/bus/platform/drivers/mxcintuart
+ [ -e /sys/bus/platform/drivers/mxcintuart/mxcintuart.0//mmc_host/mmc0 ]
+ [ -e /sys/bus/platform/drivers/mxcintuart/mxcintuart.1//mmc_host/mmc0 ]
+ [ -e /sys/bus/platform/drivers/mxcintuart/mxcintuart.2//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxcpwrkey/unbind
+ driver=/sys/bus/platform/drivers/mxcpwrkey
+ [ -e /sys/bus/platform/drivers/mxcpwrkey/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxs-dma-apbh/unbind
+ driver=/sys/bus/platform/drivers/mxs-dma-apbh
+ [ -e /sys/bus/platform/drivers/mxs-dma-apbh/mxs-dma-apbh.0//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxs_viim/unbind
+ driver=/sys/bus/platform/drivers/mxs_viim
+ [ -e /sys/bus/platform/drivers/mxs_viim/mxs_viim//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/mxsdhci/unbind
+ driver=/sys/bus/platform/drivers/mxsdhci
+ [ -e /sys/bus/platform/drivers/mxsdhci/mxsdhci.0//mmc_host/mmc0 ]
+ MMC_DRIVER=/sys/bus/platform/drivers/mxsdhci
+ basename /sys/bus/platform/drivers/mxsdhci/mxsdhci.0/
+ MMC_DEVICE=mxsdhci.0
+ error=0
+ [ -e /sys/bus/platform/drivers/mxsdhci/mxsdhci.1//mmc_host/mmc0 ]
+ [ -e /sys/bus/platform/drivers/mxsdhci/mxsdhci.2//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/pmic_adc/unbind
+ driver=/sys/bus/platform/drivers/pmic_adc
+ [ -e /sys/bus/platform/drivers/pmic_adc/pmic_adc.1//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/pmic_battery/unbind
+ driver=/sys/bus/platform/drivers/pmic_battery
+ [ -e /sys/bus/platform/drivers/pmic_battery/pmic_battery.1//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/pmic_leds/unbind
+ driver=/sys/bus/platform/drivers/pmic_leds
+ [ -e /sys/bus/platform/drivers/pmic_leds/pmic_leds.103//mmc_host/mmc0 ]
+ [ -e /sys/bus/platform/drivers/pmic_leds/pmic_leds.114//mmc_host/mmc0 ]
+ [ -e /sys/bus/platform/drivers/pmic_leds/pmic_leds.98//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/pmic_light/unbind
+ driver=/sys/bus/platform/drivers/pmic_light
+ [ -e /sys/bus/platform/drivers/pmic_light/pmic_light.1//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/pmic_rtc/unbind
+ driver=/sys/bus/platform/drivers/pmic_rtc
+ [ -e /sys/bus/platform/drivers/pmic_rtc/pmic_rtc.1//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/pxp-device/unbind
+ driver=/sys/bus/platform/drivers/pxp-device
+ [ -e /sys/bus/platform/drivers/pxp-device/pxp-device//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/reg-fixed-voltage/unbind
+ driver=/sys/bus/platform/drivers/reg-fixed-voltage
+ [ -e /sys/bus/platform/drivers/reg-fixed-voltage/reg-fixed-voltage//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/sdram_autogating/unbind
+ driver=/sys/bus/platform/drivers/sdram_autogating
+ [ -e /sys/bus/platform/drivers/sdram_autogating/*//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/usb_plug/unbind
+ driver=/sys/bus/platform/drivers/usb_plug
+ [ -e /sys/bus/platform/drivers/usb_plug/usb_plug.0//mmc_host/mmc0 ]
+ dirname /sys/bus/platform/drivers/usb_wakeup/unbind
+ driver=/sys/bus/platform/drivers/usb_wakeup
+ [ -e /sys/bus/platform/drivers/usb_wakeup/usb_wakeup.0//mmc_host/mmc0 ]
+ [ -e /sys/bus/platform/drivers/usb_wakeup/usb_wakeup.1//mmc_host/mmc0 ]
+ return 0
+ echo /sys/bus/platform/drivers/mxsdhci mxsdhci.0
/sys/bus/platform/drivers/mxsdhci mxsdhci.0
As far as booting from the SD card, maybe something I did while either installing the software or trying to recover the device convinced it to start booting from the SD card. It might even be related to whatever made it no longer want to boot internally. Not sure on that one!
Your hexdump command produces:
Code:
00000200 53 4e 2d 4e 32 35 30 34 38 34 30 30 35 33 38 31 |SN-N250484005381|
00000210 00 39 5f 31 34 30 38 30 35 31 33 31 34 00 00 00 |.9_1408051314...|
00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000240
So indeed an H2O image. I got out a hex editor and replaced it with the serial number from my Aura's box (which starts with 514B), but alas there was no change other than causing it to print "There are differences between boot sector and its backup." and some related stuff at boot.