Topic: Silvermoon (Infocast 8") MicroSD partition information?

All,

There seems to be little information on the Silvermoon hardware.  I am working on porting Android (Gingerbread) to the silvermoon platform.  I was able to config and cross compile a kernel using the Toolchain provided in the Android Distribution, but the resulting kernel failed to get very far in the boot sequence.  Right now I am blind since I haven't built a serial cable.  My working assumption is that the kernel I built is not compatible with the loadable modules stored on the sd card.

I am looking for this information:

-Where are the arguments passed to the kernel stored?
-Can the device boot from a more readily removable device (SD Card or USB drive)?
-Is it possible to have console access? If so, I assume a USB keyboard should be a recognized input device?

The ultimate goal is to boot Honeycomb on this device, but since that OS has not been publicly released, Gingerbread will have to do.

Thanks,
Matthew

Re: Silvermoon (Infocast 8") MicroSD partition information?

I love you.

I have no answers, but hope that you can see this through.  Good luck!

Re: Silvermoon (Infocast 8") MicroSD partition information?

rxache wrote:

Right now I am blind since I haven't built a serial cable.

But not defeated.  Hold your nail on the touchscreen during bootup and the u-boot bootcmd will notice and use the backup partition mmcblk0p2.  You should get a "special options" screen.  Then you can ssh into your BB8 (same IP, or check your router), mount /dev/mmcblk0p3, and undo the mess in p3's /boot with a backup kernel, perhaps the one from /boot on mmcblk0p2.  (Just don't screw up your recovery partition [p2] you're now working in!)

Once you have a serial cable, you can also keep a backup kernel in /boot and select it from u-boot, I call mine 'vmlinuz-old' and do it like this:

Press Control-C to enter a shell.
Chumby shell
Type run bootcmd to exit
silvermoon_a0>> PART=mmcblk0p3; KF=3; setenv bootargs root=/dev/${PART} rootfstype=ext3 rootwait console=ttyS0,115200 mem=128M uart_dma
 init=/linuxrc sysrq_always_enabled ro; ext2load mmc 0:${KF} ${default_load_addr} /boot/vmlinuz-old ; bootz ${default_load_addr}

2078040 bytes read
Ready to boot zImage from 500000

Starting kernel using machid 1829 (0x725) ...
Uncompressing Linux...

I keep vmlinuz-old with the same LOCALVERSION ("-M2.1.8.12") and use a different version when testing (and I upload my new versioned modules into /lib/modules) so that vmlinuz-old will always find the right modules, and my test kernels their own.


rxache wrote:

  My working assumption is that the kernel I built is not compatible with the loadable modules stored on the sd card.

That is a fairly good assumption wink  Specifically, if you enabled preemption, you'll get something like:

version magic '2.6.28-M2.1.8.12 mod_unload ARMv5 ' should be '2.6.28-M2.1.8.12 preempt mod_unload ARMv5 '

So, if you enable preemption or module versioning, you'll need to 'make modules' and also bmm and sd8xxx for extra/ and then upload them to your BB8.


There is, also, a more subtle and confusing possibility for your inability to boot.  I seem to get 'randomly' unbootable kernels (or panics, or panics during modules loads/unloads) when I build a kernel around 2.1mb or bigger.  A quick skim of include/configs/aspenite.h from the uboot sources makes it seem as if we have 3mb of RAM to load the kernel in (0x500000 to 0x800000) so I have no idea why this is.  I only suspected this was a possibility when once altering (only!) my LOCALVERSION string led to an unbootable kernel.  Changed it back and it worked again.. crazy.  Now I build as much as possible as modules to avoid hitting a 2mb zImage (but careful with USB & ALSA as some chumby modifications seem to expect them to be compiled in-kernel, probably for the MMC?)


rxache wrote:

-Where are the arguments passed to the kernel stored?

The uboot bootargs environment variable is unfortunately not easy to access from a running linux since its on /dev/mmcblk0p1.  Look at the 'aspenite' stuff in the uboot sources for details.  There are some patches that have floated on the uboot list in Dec that should give fw_printenv / fw_setenv the possibility to access uboot environment (like 'bootcmd', kernel 'bootargs') on MMC (instead of just NAND) from linux, but I haven't gotten around to applying them and trying.  Maybe soon...


rxache wrote:

-Can the device boot from a more readily removable device (SD Card or USB drive)?

Perhaps with the SD reader, doubtful from USB.  It should be possible to build a 'better' uboot (with USB support and/or the option to check other [ext2] SDs or the USB for valid zImage to boot from) but I'm not sure how much work that would take.


rxache wrote:

-Is it possible to have console access? If so, I assume a USB keyboard should be a recognized input device?

Console access to what?  U-boot console I think only through serial, unless you want to build/burn a uboot version that can do ethernet over usb and set up netconsole (this could be a fair amount of work.)

If via the framebuffer, on the lcd, you can briefly watch the kernel boot by changing console=ttyS0 to console=tty0 but it'll be clobbered by logos pretty quickly.  Plugging in the keyboard does not seem to send input to a shell.  I'm not sure how you'd enable that, or keep the lcd devoted to tty0 and nothing graphical.  It's probably possible, but more work than shredding an old cell phone usb cable for 3V serial and soldering it.


rxache wrote:

The ultimate goal is to boot Honeycomb on this device, but since that OS has not been publicly released, Gingerbread will have to do.

If I give up on getting ChumbyLurker's C1 android running I'll probably start with 2.2/Froyo... but with no 3D, an (overclockable?) 800mhz ARMv5 & 128mb, I'm not expecting speed... the knockoff tablets (~$100 from HK) with similar specs (some w/ 256mb) run Android 1.5/1.6 and most buyers' comments are: "too slow!"

I'd love to hear from others who are playing with getting Android on the Infocast ...

Re: Silvermoon (Infocast 8") MicroSD partition information?

stephan wrote:

...stuff...

I love you too.