首页 > 代码库 > A20 sugar-standard 版本无法支持U盘自动挂载问题解决

A20 sugar-standard 版本无法支持U盘自动挂载问题解决

 

前面硬件工程师在sugar-standard的基础上搞了个什么USB HUB的线路<我不是很明白>,但是这个时候的sugar-standard 依然能自动挂载U盘。

后面他又把USB接口的东西给弄成了 A20 sugar-cubieboard 2 的版本,于是这个时候原来的img烧进去,U口就没有任何反应,只有一个口能使用鼠标。

经过查资料得知:android系统自动挂载U盘,与一个叫 vold.fstab的文件有关。

 

于是在公司自己的源码  android/ 目录下   find ./ -name "vold.fstab"后,发现了有许多这样的文件。

1 Server_Rick$find ./ -name "vold.fstab"2 ./system/core/rootdir/etc/vold.fstab3 ./device/asus/grouper/vold.fstab4 ./device/softwinner/sugar-ref001/vold.fstab5 ./device/softwinner/sugar-evb/vold.fstab6 ./device/softwinner/sugar-standard/vold.fstab7 ./device/softwinner/wing-evb-v10/vold.fstab8 ./out/target/product/sugar-standard/system/etc/vold.fstab

网上普遍多是修改  ./system/core/rootdir/etc/vold.fstab  这个文件。

但可能是全志自己的原因,从新弄了下什么的。我用vim 打开 ./system/core/rootdir/etc/vold.fstab 文件后,发下只有这么一行:

dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.0 /devices/platform/msm_sdcc.2/mmc_host/mmc1

于是又用vim 打开了 ./device/softwinner/sugar-standard/vold.fstab 文件,在里面发现了这些内容:

# Mounts the first usable partition of the specified device#/devices/platform/awsmc.3/mmc_host for sdiodev_mount    sata    /mnt/sata    auto    /devices/platform/sw_ahci.0dev_mount    sdcard    /mnt/sdcard    auto    /devices/virtual/block/nandk    /devices/platform/sunxi-mmc.2/mmc_hostdev_mount    extsd    /mnt/extsd    auto    /devices/platform/sunxi-mmc.1/mmc_host    /devices/platform/sunxi-mmc.0/mmc_hostdev_mount    usbhost1    /mnt/usbhost1    auto    /devices/platform/sw-ehci.1/usb2/2-1/2-1.1dev_mount    usbhost0    /mnt/usbhost0    auto    /devices/platform/sw-ehci.1/usb2/2-1/2-1.3dev_mount    usbhost2    /mnt/usbhost2    auto    /devices/platform/sw-ehci.1/usb2/2-1/2-1.2

于是将这些内容全部注释掉,将全志提供的最原始的源码中的 ./devices/softwinner/sugar-cubieboard2/vold.fstab 里的内容copy过来了,如下:

# Mounts the first usable partition of the specified device#/devices/platform/awsmc.3/mmc_host for sdio#dev_mount    sata    /mnt/sata    auto    /devices/platform/sw_ahci.0#dev_mount    sdcard    /mnt/sdcard    auto    /devices/virtual/block/nandk    /devices/platform/sunxi-mmc.2/mmc_host#dev_mount    extsd    /mnt/extsd    auto    /devices/platform/sunxi-mmc.1/mmc_host    /devices/platform/sunxi-mmc.0/mmc_host#dev_mount    usbhost1    /mnt/usbhost1    auto    /devices/platform/sw-ehci.1/usb2/2-1/2-1.1#dev_mount    usbhost0    /mnt/usbhost0    auto    /devices/platform/sw-ehci.1/usb2/2-1/2-1.3#dev_mount    usbhost2    /mnt/usbhost2    auto    /devices/platform/sw-ehci.1/usb2/2-1/2-1.2# change by jason 2014/07/11  --> from cubieboard2dev_mount    sata    /mnt/sata    auto    /devices/platform/sw_ahci.0dev_mount    sdcard    /mnt/sdcard    auto    /devices/virtual/block/nandk    /devices/platform/sunxi-mmc.2/mmc_hostdev_mount    extsd    /mnt/extsd    auto    /devices/platform/sunxi-mmc.1/mmc_host    /devices/platform/sunxi-mmc.0/mmc_hostdev_mount    usbhost1    /mnt/usbhost1    auto    /devices/platform/sw-ehci.1    /devices/platform/sw_hcd_host0    /devices/platform/sw-ohci.1dev_mount    usbhost2    /mnt/usbhost0    auto    /devices/platform/sw-ehci.2

保存退出以后,在 lichee/tools/pack/chips/sun7i/configs/android/sugar-standard/sys_config.fex 文件中,将USB控制器配置选项中的

usb_host_init_state  置为 1. 如下:

usb_host_init_state = 1

然后就重新编译整个源码<如果已经编译了就无需再编译>,烧录后,可以成功挂载U盘。

但是有一个问题必须要写明白:

在cubieboard2 demo板通过OTG口连接PC供电的情况下,在U口挂移动硬盘,这个移动硬盘无外接电源。这个时候的现象是,能挂载上,然后瞬间就移除移动硬盘。然后系统就循环做这个事儿了。

 

好了,就这样。

参考资料来自这个朋友:

 

Android SDCard Mount 流程分析(一)

http://www.cnblogs.com/TerryBlog/archive/2012/04/05/2432818.html

 

来几个关键字: cubieboard2  vold.fstab   android U盘自动挂载