android USB OTG功能实现

一、检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确)

二、若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载:

如何打开USB OTG功能:

1).在alps/mediatek/config/[project]/autoconfig/kconfig/project中打开CONFIG_USB_MTK_OTG和CONFIG_USB_MTK_HDRC_HCD

CONFIG_USB_MTK_OTG =y

CONFIG_USB_MTK_HDRC_HCD = y

2).在dws中设定OTG VBUS对应的输出控制pin配置为GPIO模式,var name为GPIO_OTG_DRVVBUS_PIN。再设定IDDIG pin默认模式为IDDIG,var name为GPIO_OTG_IDDIG_EINT_PIN

如何实现挂载:

1).alps/mediatek/config/[project]/init.project.rc起始位置处添加如下内容

对于KK以前的版本:

on early-init

mkdir /mnt/usbotg 0000 system system

对于KK(包含)以后的版本:

#需要特别注意的是,这里是要另外添加on init,不是加在on early-init:

on init

mkdir /mnt/media_rw/usbotg 0700 media_rw media_rw

mkdir /storage/usbotg 0700 root root

...

#service加在on boot:

on boot

service fuse_usbotg /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/usbotg /storage/usbotg

class late_start

disabled

#

# Connectivity related services (Begin)

#

2).fstab文件末尾添加如下一行

对于KK以前的版本:

修改alps/mediatek/config/[project]/vold.fstab

dev_mount usbotg /mnt/usbotg auto /devices/platform/mt_usb

对于KK(包含)以后的版本:

修改alps/mediatek/config/[project]/fstab

/devices/platform/mt_usb auto vfat  defaults voldmanaged=usbotg:auto

3).storage_list.xml添加如下一个xml节点

对于KK以前的版本:

<storage android:mountPoint="/mnt/usbotg"

android:storageDescription="@string/storage_external_usb"

android:removable="true"

android:primary="false" />

对于KK(包含)以后的版本:

<storage android:mountPoint="/storage/usbotg"

android:storageDescription="@string/storage_external_usb"

android:removable="true"

android:primary="false" />

备注:具体修改哪个路径下的storage_list.xml文件,需要根据ProjectConfig.mk中的resource_overlay_support的值来定

对于JB3以下版本,

如果RESOURCE_OVERLAY_SUPPORT的值为generic  ==>>  则修改alps/mediatek/custom/[project]/resource_overlay/generic/frameworks/base/core/res/res/xml/storage_list.xml

如果RESOURCE_OVERLAY_SUPPORT的值为空  ==>> 则修改alps/framework/base/core/res/res/xml/storage_list.xml

对于JB3(包含)以上版本,RESOURCE_OVERLAY_SUPPORT的值可根据需要配置为sd_in_ex_otg或sd_ex_otg,则无需再修改该文件

sd_in_ex_otg或sd_ex_otg分别表示内卡+外卡+otg或外卡+otg

对应文件分别在alps/mediatek/custom/common/sd_in_ex_otg/resource_overlay/generic/frameworks/base/core/res/res/xml/storage_list.xml或alps/mediatek/custom/common/sd_ex_otg/resource_overlay/generic/frameworks/base/core/res/res/xml/storage_list.xml

目前USB OTG功能只支持U盘(FAT格式+一个分区)、Keyboard、Mouse、PTP device

时间: 2024-11-10 00:38:10

android USB OTG功能实现的相关文章

android USB OTG功能如何打开及实现

一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确) 二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OTG功能: 1).在alps/mediatek/config/[project]/autoconfig/kconfig/project中打开CONFIG_USB_MTK_OTG和CONFIG_USB_MTK_HDRC_HCD CONFIG_USB_MTK_OTG =y CONFIG_USB_MTK_

如何打开USB OTG功能:

一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确)二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OTG功能:1).在alps/mediatek/config/[project]/autoconfig/kconfig/project中打开CONFIG_USB_MTK_OTG和CONFIG_USB_MTK_HDRC_HCDCONFIG_USB_MTK_OTG =yCONFIG_USB_MTK_HDRC

android usb otg转换成host调试笔记

(原创作品,转载请标明转载路径) 近日在mstar 786平台上有个需求,即把usb otg转换成host接U盘. 开始调试时,以为只要把OTG的配置去掉,即CONFIG_USB_MS_OTG屏蔽掉即可,但编译烧录后,插入和拨出U盘时发现提示 android_work: did not send uevent (0 0   (null)) U盘的灯也不亮,说明没有上电. 后来搜索了有关资料,才发现需要把USB_CID脚拉低,拉低表示工作在HOST模式下. 有2种方式拉低该引脚: 1)硬件上把它强

Android技术宅:自制USB OTG数据线

作为一名Android技术宅,USB OTG是你必须了解的,所谓USB OTG就是你可以利用手机或平板上用来充电.与电脑传输数据的micro USB接口来连接其他USB外设,如游戏手柄.鼠标.键盘.U盘甚至移动硬盘(当然你需要额外供电).而一条USB OTG数据线也就是必备的工具了. 成品效果 目前关于能否兼容何种USB外设,以及是否需要root你的Android设备并没有一个明确的标准,不过一般情况下“标准”的Android设备如果没经过root的话是无法挂载USB外设的.只有运行Ice Cr

Android 4.4 Kitkat 使能 USB adb 功能

背景 在 Linux-3.8 以后,Android 的内核分支,便去掉了 f_adb,改使用 USB function FS,在用户空间实现 USB adb 功能.这篇文章根据原作者的 Google+ 文章,在 Atmel sama5 开发板上做了测试,将步骤记录如下,供需要使用的读者参考,你也可以查看作者原文:https://plus.google.com/111524780435806926688/posts/AaEccFjKNHE 在 Linux-3.10 上使能 USB ADB 编译内核

USB HOST与 USB OTG的区别及工作原理

零 USB背景知识USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一. 硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头,USB设备使用公头与PC连接. 目前USB硬件接口分三种,普通PC上使用的叫Type:原来诺基亚功能机时代的接口为Mini USB:目前Android手机使用的Micro USB. Host USB是由Host端控制整个总线的数据传输的.单个USB总线上,只能有一个Host. OTG On The

MTK 65XX系列通过USB OTG添加Ethernet RJ45有线网卡支持

最近客户要求使用MTk 6572芯片通过USB OTG添加支持有线网卡,我查遍了钩钩了所有网站,都没有相关论述,查看了MTK给的资料,包括FAQ,只说支持USB OTG键盘鼠标和U盘.怎么办?只有我自己来. 但是,按照我对于USB设备机构的理解,只要我们挂在了USB Ethernet的驱动,那么在USB Ethernet插入的时候,应该可以自动匹配到其设备驱动,所以只要我们挂在了USB Ethernet的驱动,那么就应该可以正常工作. 首先,就是回顾如果是非MTK平台,我们如何添加Etherne

USB OTG简要

1 介绍 随着USB2.0发布版本号,USB更受欢迎.它已成为一种标准接口.现在,USB它支持三种速度:低速(1.5Mb/s).全速(12Mb/s)速(480Mb/s),四种传输类型:块传输.同步传输.中断传输和控制传输. USB应用灵活方便,能满足多种外设的须要. 随着个人便携式电子产品的增长和嵌入式技术的飞速发展,USB主机已不再局限于单纯的PC,能够是含有USB主控器的不论什么设备.如PDA.MP3播放器等. 在USB2.O规范中也添加了USB嵌入式设备的标准--On-The-Go(OTG

详述USB OTG发展及协议标准

USB On-The-Go 扩大了USB 的应用领域,将USB 从传统的PC 与外设通讯的模式,扩展到移动电子和嵌入式领域中,抛开主机PC,实现通常的外设与外设之间点对点(Point to Point)的数据传输模式. 1 什么是USB On-The-Go 我们先来回顾一下通用串行总线(Universal Serial Bus,简称为USB)发展的历史: i)1994 年11 月,以Intel 为首的7 家公司(Intel.Compaq.Microsoft.IBM.DEC.Northern Te