今天研究下SD卡、U盘自动挂载到android系统上,在网上找了一堆资料说都是说U盘的挂载跟SD卡的方法一样,把U盘插到开发板上,在/dev/block下会生成sda1,可以通过手动挂载到android系统上使用。按照网上的方法修改system/etc下的vold.fstab 文件,参照该文件下SD卡挂载的变量写法:dev_mount sdcard /mnt/sdcard auto /devices/platform/s3c2410-ohci/usb1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0,添加U盘自动挂载的方法:dev_mount sdcard /mnt/sdcard auto /dev/block/sda1。试了N次都不能自动挂载上去,请问哪位实现了android自动挂载U盘,和传统的热插拔类似。或者有其他方法可以自动挂载U盘。

解决方案 »

  1.   

    你 的U盘挂载点和你的 SD卡挂载点设成一样了,当然不可能挂载成功了。还有你的sysfs 参数也设的不对哈,去看看vold.fstab的说明吧
      

  2.   

    楼主的版本是2.1的吗?我也在做这个,但不知道 /system/etc/vold.conf里怎么改成U盘?
    请问2.1的怎么修改呢?谢谢大家了
      

  3.   


    ====================================================================================
    我是在2.2上面的,你插U盘进去看,查看/devices/platform目录下多生成一个文件,就把这个路径添加到vold.conf中
      

  4.   

    你的增加的路径是 /dev/block/sda1?还是神马的,帮帮忙啊,我搞这个搞得有点头大了……
      

  5.   

    我插入U盘后,没发现/devices/platform下多了一个文件的,
      

  6.   

    我的也是2.1的版本,现在要加载U盘的话都要手动mount(mount -t vfat /dev/block/sda /usb/)下,才能在/usb/里看到U盘的内容,是不是因为 /system/core/vold/vold.c里的 ums_bootstrap函数为空啊?如果参考mmc_bootstrap完善ums_bootstrap的话,是不是就可以呢?另外我发现插U盘会增加一个文件: /sys/class/usb_device/usbdev1.1x, 这个x是随着你的插入次数而变的,
      

  7.   

    你有没对比USB目录下各个文件了,我都是找了很久才找到,还没搞好改天你在Q上找我吧
      

  8.   

    你到/devices/platform/XXXX/usb目录去找, vold已经比较完善,一般不用怎么修改,你试下修改 vold.fstab文件.
      

  9.   

    楼主,问题解决了没有阿。
    我使用的是2.2版本的Android,Linux 内核是3.2Linux官方版+自己移植Android依赖组件。
    在我的平台上这样就可以 dev_mount sdcard /mnt/sdcard auto /block/sda
    主要是我的平台过来的uevent是/block/sda。
    可以在int DirectVolume::handleBlockEvent插log看uevent过来的路径。
      

  10.   

    楼主,是在真机上运行的吗?我现在要实现U盘的自动挂载,差了很多资料 都说 要修改 void.fstab文件,而这个文件是只读的  ,然后需要运行 mount 命令,但是执行过命令后,我将 system  ect 下降void.fstab文件导出来,修改过之后再导入进去,可还是说该文件是系统只读的。很着急希望楼主能帮下忙非常感谢
      

  11.   

    我也遇到相同的问题了,楼主
    vold.fstab 文件 里dev_mount usbotg /mnt/usbotg auto /devices/platform/mt_usb/usb1,但U盘还是不能挂载成功啊。
      

  12.   

    ## Vold 2.0 fstab
    ######################### Regular device mount#### Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>## label - Label for the volume## mount_point - Where the volume will be mounted## part - Partition # (1 based), or 'auto' for first usable partition.## <sysfs_path> - List of sysfs paths to source devices######################
    # Mounts the first usable partition of the specified device#use this line to support VIRTUAL CDROM.And you can define the directory where you want to mountloop_mount loop /mnt/VIRTUAL_CDROM #dev_mount sdcard /mnt/sdcard auto /devices/platform/AMLOGIC_CARD/card_host/memorycard0#dev_mount sata /mnt/sata auto /devices/lm2#media_mount usb /mnt/usb 4 /devices/lm0/usb1/请问要怎么把默认sd卡改成u盘?谢谢!
      

  13.   

    楼主给个Q号呗。。发至[email protected]
      

  14.   


    话说你2410玩Android呀,真牛 牛到家了。