View Single Post
solca's Avatar
Posts: 109 | Thanked: 196 times | Joined on Sep 2008 @ Guatemala
#70
Originally Posted by sarathmenon View Post
I've been trying without success to get this working on the WiMAX Edition. I am almost sure that the rootfs is not being chrooted, and I am stuck trying to debug or verify this. @solca: Can you please explain how your kernel image works? Does it (or rather, does nolo) boot the kernel into the standard initfs, and then chroot to the real partition? I've read somewhere that the standard android install for the G1 works in a different way because the device does not have dedicated space for both partitions, is this the case for nitdroid?

The reason why I ask is that the initfs from the fiasco image for WE is different from the stock N810, and has a bunch of extra routines for WiMAX.
Originally Posted by meizirkki View Post
You can try debug-kernel to see what goes wrong.
Yeah, try with a debugging kernel first. NITdroid doesn't use the /linuxrc script in the initfs partition.

Now, this is how NITdroid boots:

1. NOLO does its init thing and finally loads and uncompress the flashed kernel to RAM.
2. Control is passed by NOLO to the kernel loaded in RAM.
3. If that flashed kernel is NITdroid it contains an embedded RAM filesystem (initramfs) which is / (root dir) all the time mimicking other Android devices.
4. Kernel pass control to /init in the ramfs.
5. /init loads instructions from /init.rc and /init.nokia.rc.
6. /init.rc tells init to mounts /dev/block/mmcblk0p3 (ext3) under /nitdroid.
7. /init.nokia.rc tells init to run nitboot which loads and run the Nokia proprietary stuff that lives in NITdroid under /nokia.
8. /init launches all remaining Android stuff.

Visually:

1. Initial white Nokia screen is loaded by NOLO.
2. First NITdroid screen (static image) is loaded by /init when run.
3. Screen dims when DSME proprietary daemon is loaded by nitboot.
4. Second NITdroid screen (animated) is loaded by the "remaining Android stuff" when loading.
5. Finally the Android GUI is loaded.

Differences for the debugging kernel:

1. Kernel and console output are directed to screen and serial.
2. ADB daemon is always loaded early in the init sequence.
3. First NITdroid screen (static) is not loaded to maximize console output.
4. Second NITdroid screen (animated) is not loaded but screen turns black until the GUI loads or an error is shown.

You should tell your visual sequence and better if you can connect with ADB and get a 'logcat' so we can determine where is the problem...
__________________
NITdroid
 

The Following User Says Thank You to solca For This Useful Post: