Hi all,

I am trying to test Android on my WaterSTORM COM using the image here:


I followed the "Android Prebuilt" HOWTO from the wiki, and created the bootable microSD card using the mkandroidsd script. I'm running into two problems:

1. After I pop in the card and powerup the COM... nothing happens. Meaning there is no output on the console after the usual two rows of extended-ascii glyphs that appear following a reset. The glyphs should normally be followed by the X-Loader banner, followed by the U-Boot banner, followed by the the usual boot process output. Also, the red and blue LEDs on GPIO21 and GPIO22, which normally flash momentarily after a reset, now stay on. Funny thing is, once in about 10 attempts at resetting the COM, it does go beyond this hang point, and proceeds with the normal boot sequence.

I initially suspected the SD card, so I copied the same "current" Android image to a known-good card- but I see the same problem. This suggests there is something wrong with the X-Loader. MLO and U-Boot versions when the COM boots fine are seen in the console as:

Texas Instruments X-Loader 1.4.4ss (Mar 25 2011 - 15:35:41)
U-Boot 2010.09 (Mar 25 2011 - 15:02:51)

UPDATE: I just tried replacing the MLO from the android/current directory with that from the last-available angstrom factory image (images/angstrom/factory/2011-08-30-1058/), and that has fixed the hang issue.

2. On the rare occasions that the boot sequence does proceed correctly, the kernel appears to boot and I see the Android logo on the touchscreen LCD, but then I see the following messages on the console output:

Warning: unable to open an initial console.
PVR_K: (FAIL) SGXInit: Incompatible HW core rev (10205) and SW core rev (10201).

After several minutes, the Android logo disappears, the LCD goes to (and stays) black, and I start getting "untracked pid exited" messages ad infinitum:

request_suspend_state: wakeup (0->0) at 1483382721114 (2000-01-01 00:33:38.623962567 UTC)
init: untracked pid 3336 exited
binder: 1012: binder_alloc_buf, no vma
binder: 3356:3356 transaction failed 29201, size 80-4
binder: 1012: binder_alloc_buf, no vma
binder: 3356:3356 transaction failed 29201, size 88-0

My questions are as follows:

1. Why does a different MLO exist with every kernel image? It seems like all the MLO does is initialize the memory controller and peripherals, and load into memory a specific file with the name "u-boot.bin" from the first partition on the SD card. These functions are wholly independent of what kernel will eventually get loaded (or indeed, what the contents of u-boot.bin are). As long as you're not trying to do anything unusual (like load the X-Loader from MMC and U-Boot from UART), the MLO functionality can be set in stone..? That is, one known-good MLO ought to work with any u-boot.bin as long as you are booting entirely from the SD card?

2. The "Incompatible HW and SW" message suggests that the "current" android image was built before the STORM series with the DM37x cores (which evidently carry a later-rev SGX core). Is there a more current gumstix Android effort underway? Do drivers exist for the latest SGX core? If not, how can I coax the available pre-built image to boot on the WaterSTORM COM?

3. As a more general observation, Android-related posts seem to be relatively sparse on the list. I surmise that can only be because porting/customizing Android to Overo is either fairly straightforward or fiendishly difficult. :) I have not attempted building from source yet; would it work best to follow the gumstix wiki page on building Android from source? Are there any gotchas to be wary of?