My initial success at getting the APC to boot from the micro-SD card instead of built-in ram was tempered by another issue..
Apart from examination of the boot process on the console, I had confirmed that device boots from the micro-SD card when I inadvertently formatted it as EXT3, and the boot process failed with an appropriate error, as the APC version of the kernel doesn’t support this format..
The problem now, is that the device – somehow – still makes the root /dev/ram0, instead of /dev/mmcblk0p2, and so is still running a cut-down version of the Linux environment that is built in to the device.. This is not the OS that normally runs, but is just a bare-bones Linux (with good old BusyBox..), without all the Android-y stuff.. I would guess that this is provided for ‘troubleshooting’ purposes.. This is where the lack of any detailed technical documentation is a real frustration!
The U-Boot boot parameters clearly have root=/dev/mmcblk0p2 and this ‘diversion’ worked fine with the Dreamplug (which also uses U-Boot), when I changed the boot device from the (flimsy and unreliable) internal micro-SD card slot to the ‘external’ USB SD-Card slot.
Update: It appears the device is ignoring the root=/dev/xxxxx parameter entirely. I set it to root=/dev/null and the APC still booted to root=/dev/ram0, as before…
I am beginning to think this may be a ‘customised’ version of the kernel boot code, which is set to only allow access to the complete Android system in flash memory, or the minimalist Linux in /dev/ram0 – probably there for test/maintenance purposes.. I should have realised there was something odd, when I examined the original U-Boot parameters, which are consistent with this behaviour.. Ironically, this configuration may well have been designed – with the best of intentions – to stop people compromising the (Android) system by simply plugging in a bootable micro-SD card!
Of course, this is all speculation, in the absence of detailed technical documentation..
So – the challenge continues!