首页 > 代码库 > 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盘自动挂载