Internal/External Sdcard Mounting Fix - for all 2.2 roms - *11/20/10*
After doing some testing all morning, I believe we found what is causing the issue with the internal/external sdcard mounting which has plagued all Vibrant 2.2 roms. As many of you have seen, there have been a couple fixes posted. For some of you, after flashing the fixes, its resolved your issue. However, for some, its simply reversed the sdcard issue by either not showing the external sdcard at all, write protecting the sdcard, or limiting the amount of data that can be transferred.
Cause of the problem:
1. For starters, both of the leaked vold.config and vold.fstab files were written incorrectly. They were not corresponding with each other and also had missing information. This was causing the first set of issues from the first 2.2 rom.
2. After the first fix was posted, we noticed it simply reversed the sdcard mounts, and also limited the data to the ex-sdcard.
3. The second fix posted listed both sdcards, however write protected the ex-sdcard.
4. After further inspection last night, I followed the paths that the vold files were calling. Which are: sys/devices/platform/s3c-usbgadget/gadget/lun#
I noticed that in the directories, there was lun0 and lun1. The vold files were calling lun1 and lun2. I simply adjusted the vold files accordingly, flashed the fix and it worked! Both external drives displayed in the correct order, both as removable drives as they should.
I sent the fix to a team member, after flashing, his issue reversed, and he no longer could see the external drive, only the internal. I had him follow the vold paths like I did. Again, it is: sys/devices/platform/s3c-usbgadget/gadget/
His devices was calling lun0, lun1, and and extra file, lun2. I asked him what kernel he was running, and turns out he was running one of our experimental kernels that uses I9000 source code. I was using the stock Vibrant 2.2 kernel. After further examination, we found the the Vibrant kernel creates lun0 and lun1. I9000 sourced kernels creates lun0, lun1, and lun2. Therefore, the specific mounting fix is dependent upon which kernel you are using. That's why these fixes have been hit and miss for many of you. They have worked for many of you, while not working for other.
In short, the vibrant 2.2 kernel generates 2 lun files, lun0, lun1. The 2.2 kernels based off of I9000 source is generating 3 files, lun0, lun1, lun2. So, you have to have the correct vold files depending on which kernel you are using.
We've tested this back and fourth all morning and from what we can see, this is definitely the cause of the issue. Below, I've posted 2 flashable.zip files. One to flash if you are using a stock Vibrant 2.2 kernel. Another to flash if you are using a 2.2 kernel based off of the I9000 source. Please test and let me know if it works for you. So far its worked for all of us.
FLASH THIS IF YOU ARE USING A STOCK VIBRANT 2.2 KERNEL
FLASH THIS IF YOU ARE USING A 2.2 KERNEL BASED ON I9000 SOURCE