[Nook Color Android Development] mateorod:
So I am updating the ParanoidAndroid rom to 3.10, and it is mostly working well. But I am having a hell of a time finding out what is causing one major problem, which is that emmc is not mounting through vold. PA 3.10 has been rebased off of AOSP, with some CM hardware repos thrown in. When I was porting straight AOSP 4.1.0 to the Nook, I used many commits from the early days of CM7, many from nemith and dalingrin regarding using uboot and the partition scheme as well as automount. Building this PA rom has been similar. For the original PA build, I was using the AOSP repos of vold and core, but I have even swapped in the CM 10.1 projects and built with those instead, and still emmc will not mount.

Are there any repos, commits or projects that are involved in making vold work for emmc besides kernel, vold, build, core, device/bn/encore? I have been through basically the entire commit history of all of those CM projects, but I think I have tried many of the solutions, and have for sure used everything that has survived into 10.1.

For the Nook CM10.1 preview, vold and emmc is working, and the local manifest provided at the top of that thread only shows the kernel, device and proprietary files as different that the CM10.1 standard build. So it is in the CM tree, and either is getting canceled out by an AOSP project or I am missing something bigger.

I would like to get the automouting working for emmc as it does for the sdcard. Any ideas? I would acknowledge that this is pretty off-topic, but since no one has posted to this thread for over a month, I thought I would chance it.

(shout out to slou, whose wlan and omap repos worked for me where the CM10.1 repos would not...this has been a very delicate balancing act. If you need to see what repos I am using, the default manifest is here, but with these CM projects added in after lunching.) Like I said, I still have the same problem even if I switch in the CM vold and core repos as well.

I am about to try and work through bionic and see what i can see. Here is the output of mount in the terminal:

u0_a59@android:/ $ su
u0_a59@android:/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
/dev/block/mmcblk0p2 /rom vfat rw,noatime,nodiratime,uid=1000,gid=1000,fmask=0117,dmask=0007,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
/dev/block/mmcblk0p5 /system ext4 ro,relatime,user_xattr,acl,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p6 /data ext4 rw,nosuid,nodev,noatime,user_xattr,acl,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,user_xattr,acl,barrier=1,data=ordered 0 0
/dev/block/vold/179:49 /storage/sdcard1 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /storage/sdcard1/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0

You can see vold is only mountin the sdcard. I do have this from dalvik merged, if that is a concern for anyone. I don't know, probably TMI. Thanks for reading.

Edit ( One FULL month later): Finally fixed. Coming back by doing my bit for the community, as I hate when I am researching a problem and then find my exact problem, only the person doesn't report back or just says "Solved!" like that is any help to anyone.

I will not rehash the whole thing here, but the basic gist of the problem is that AOSP did not contain code that allowed mounting of the emmc through vold, but while CyanogenMod had added it at one point, some commit of their CM10.1 vold repo has an unannounced ( or unfound by me, at least) dependancy elsewhere, and will not mount emmc either.

I have solved it by using some of the earlier commits (many of them from CM7) and finally found the sweet spot. The big clue was that the sdcard1 was mounting bt not the emmc (sdcard0). If you look at the fstab source:

dev_mount sdcard /storage/sdcard1 auto /devices/platform/omap/omap_hsmmc.0/mmc_host/mmc1

## nookcolor has two fat32 partitions, p1 is boot p8 is internal storage, so we have to specify here
dev_mount emmc /storage/sdcard0 8 /devices/platform/omap/omap_hsmmc.1/mmc_host/mmc0

It finally clicked that the problem is not that automounting is not working for the emmc. but that we aren't using automounting. I had a pm from leapinlar which should have made this clear to me but did not penetrate.

I was busy trying to learn how vold worked in order to find out why it wasn't mounting the partition. Here is what I suspect were the key commits (I haven't finished narrowing it down completely. Also, all of the commits in the eventual working branch had already been tried. But the CM10.1 repo that had these commits did not play nice with the AOSP repos of core and others and still broke the service.

I never did find out where the conflicting commit was, or even what project. I ended up using CM repos for all of the relevant projects and still couldn't find it. Anyway, enough blabbing. Future vold-sufferers: remember these:

https://github.com/mateor/android_system_vold/commit/4e73e325831464454a9f37f555c5ac337081c94e

https://github.com/mateor/android_system_vold/commit/a3db27a3ae8305246c082964b5b758aa083acbb1

If you look through that branch, you will see the exhaustive list of which commits need to be layered over AOSP in order to have old work on devices with emmc. The upshot of all this is that while you could look at CM10.1 and see almost all of them repeated, something in CM10.1 is not documented and/or playing nice with AOSP projects of other flavors.

The end.