Okay, after a few energy drinks, found the problem.
Unlike other platforms, RK needs some time to mount /system, thus when the 
sdcard service tries to run, it fails to find the binary and dies.

Fix was quite easy. Disable the service, then start it when init.svc.zygote 
switches to running.

On Tuesday, 24 September 2013 15:53:22 UTC+2, József Király wrote:
>
> I've been working on this Rockchip RK3188 HDMI dongle for some time, and 
> now that we got 4.2.2 released, I wanted to enable multi-user. Everything's 
> fine, got the SDK, removed the things that kept it back from showing up in 
> the menu, made a fresh set of images, and tried it.
>
> First build, success, Users menu shows up, and is usable. Apart from a 
> small bug: whenever I add a new user, it dies with a message that there's 
> no multi-user template on the storage device. Figures.
>
> So I checked it. Rockchip, for some reason, uses a separate VFAT partition 
> on the NAND to mount as internal SD. Thanks to their system, changing the 
> partition layout is a breeze (custom NAND kernel module that gets the 
> layout from the boot command line. Fancy, easy to use, but hell if you want 
> a new kernel base).
>
> Now I had a new layout. Removed some unneeded partitions, added userdata 
> to take up all the space that is not used by the other partitions, and 
> booted it. First boot fine, though no SD card. Let's see to this, well, it 
> is of course missing the sdcard service, and the mounpoint creation. So I 
> fixed that too.
>
> As everything's done now, let's boot. System boots, storage half-mounted, 
> but that's okay. Turns out I need to modify the overlay for the new storage 
> settings, so let it be. Modified, new build, let's boot it!
>
> And it hangs. Checked the boot log, result is: Zygote dies when it tries 
> to mount /mnt/shell/emulated to /storage/emulated. So I went through the 
> *_Zygote.cpp in dalvik/vm/native, added debug messages everywhere where 
> emulated mount was defined to see it. Nothing. No error log, apart from the 
> "invalid argument" of mount().
>
> After some time I got to the point where I noticed that sdcard was not 
> running. At all. So I launched it manually. And bam, system boots 
> immediately. Jackpot!
> This is the sdcard service definition:
>
> service sdcard /system/bin/sdcard /data/media /mnt/shell/emulated 1023 1023
>
> class late_start
>
> oneshot
>
>
> Tried removing both class late_start and oneshot. No response, sdcard 
> still refuses to launch. No log about it during boot, it just simply fails.
>
> Did anyone run into this problem before? I simply can't wrap my head 
> around it, and I really need to fix it for multi-user.
>

-- 
-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting

--- 
You received this message because you are subscribed to the Google Groups 
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to