本文转载自:http://blog.csdn.net/xubin341719/article/details/7707056

一、OTG的概念

OTG是On-The-Go的缩写,是近年发展起来的技术,2001年12月18日由USB Implementers Forum公布,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。特别是PDA、移动电话、消费类设备。改变如数码照相机、摄像机、打印机等设备间多种不同制式连接器,多达7种制式的存储卡间数据交换的不便。

简单的说,一个OGT口可以做主设备HOST、从设备device。

二、三星平台的伪“OTG”

说到三星平台的OTG,有点坑人,看下面的电路图,芯片是支持USB OTG2.0 和USB HOST2.0的,可是不知道是他们芯片没做好,还是三星给的 BSP不全,反正OTG这个功能不能用。

芯片和软件上都不支持,我们要从硬件上解决了。加入一个IC,通过xuotgid 来判断是那主设备还是从设备,如果是主设备,如平板外接键盘、鼠标,则接USBHOST2.0;如里是从设备,如平板电脑做u盘用,接到这个坑人的USB OTG2.0

三、关于android对键盘、鼠标的支持

Linux本身就支持键盘、鼠标,linux 内核的驱动是完好的,我们只要配置好就可以了,以前的android版本我不太清楚,android4.0是支持键盘、鼠标的。

1、鼠标

device Drivers --->

Inputdevice support --->

<*>Mouse interface

2、键盘

deviceDrivers --->

Input device support --->

[*]Keyboards --->

选择AT keyboard

3、USB中的选项

如下图所示

Device Drivers --->

[*] USB support --->

<*> OHCI HCD support

[*] S5P OHCI support

完成上面配置后,插入u盘、鼠标、键盘、u盘都可能用

如下插入u盘的信息:

 插入U盘
[ 138.620396] usb -: new high speed USB device number using s5p-ehci
[ 138.761467] scsi2 : usb-storage -:1.0
[ 139.788733] scsi :::: Direct-Access Netac OnlyDisk PMAP PQ: ANSI: CCS
[ 139.808739] sd :::: Attached scsi generic sg0 type
[ 140.228950] sd :::: [sda] -byte logical blocks: (4.00 GB/3.73 GiB)
[ 140.234174] sd :::: [sda] Write Protect is off

拔出 u 盘 [ 744.728526] usb -: USB disconnect, device number
[ 745.765254] FAT-fs (sda1): Directory bread(block ) failed
[ 745.765450] FAT-fs (sda1): Directory bread(block ) failed
[ 745.780105] FAT-fs (sda1): Directory bread(block ) failed
[ 745.780309] FAT-fs (sda1): Directory bread(block ) failed
[ 745.786486] FAT-fs (sda1): Directory bread(block ) failed
[ 745.795189] FAT-fs (sda1): Directory bread(block ) failed
[ 745.808332] FAT-fs (sda1): Directory bread(block ) failed
[ 745.808526] FAT-fs (sda1): Directory bread(block ) failed
[ 745.814463] FAT-fs (sda1): Directory bread(block ) failed
[ 745.820176] FAT-fs (sda1): Directory bread(block ) failed
[ 745.825991] FAT-fs (sda1): Directory bread(block ) failed
[ 745.831829] FAT-fs (sda1): Directory bread(block ) failed
[ 745.837628] FAT-fs (sda1): Directory bread(block ) failed
[ 745.843420] FAT-fs (sda1): Directory bread(block ) failed
[ 745.849224] FAT-fs (sda1): Directory bread(block ) failed
[ 745.855036] FAT-fs (sda1): Directory bread(block ) failed 这里可以看到usb的用户为system
shell@android:/mnt $ ls -l
drwxr-xr-x root system -- : asec
d--------- system system -- : ext_sd
drwxr-xr-x root system -- : obb
drwxrwxr-x root sdcard_rw -- : sdcard
drwx------ root root -- : secure
d---rwxr-x system sdcard_rw -- : usb
 

android OTG【转】的更多相关文章

  1. Android OTG支持USB读卡器

    我们知道,三星Android手机将USB读卡器通过OTG线插入Micro USB插口后,插拔读卡器里的SD卡,文件管理器也能够识别卡的插拔:而很多手机的OTG连上USB读卡器也来插拔SD卡,会发现文件 ...

  2. Android OTG之USB转串口模块通讯

    微信公众号:CodingAndroid CSDN:http://blog.csdn.net/xinpengfei521 1.背景简介 我们公司开发了一款室内机平板APP应用,要求平板能去控制智能门锁. ...

  3. Android开启OTG功能/USB Host API功能

    Android USB 模式简介 设备模式 当计算机或其他USB主机需要连接安卓设备时,此时安卓设备是作为"USB设备"角色的,在计算机上显示为 USB 外设.现在的安卓设备已经被 ...

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

    作为一名Android技术宅,USB OTG是你必须了解的,所谓USB OTG就是你可以利用手机或平板上用来充电.与电脑传输数据的micro USB接口来连接其他USB外设,如游戏手柄.鼠标.键盘.U ...

  5. android USB OTG功能实现

    一个.检查HW概要,确认是否支持OTG特征(vbus无论是动力,IDDIG pin连接是否正确) 两.如果HW确认支持OTG特征,然后根据以下方法被打开USB OTG功能及实现山: 如何打开USB O ...

  6. Android刷机教程

    我的机器是Nexus 5 一. 安装驱动 如何进入fastboot模式 1. 拔掉数据线,将手机关机 2. 关机后同时按住[音量减小键]和[开关机键]即可进入Fastboot模式 开启usb调试  - ...

  7. 【墙内备份】Android 6.0 APIs

    Android 6.0 APIs In this documentSHOW MORE Fingerprint Authentication Confirm Credential App Linking ...

  8. Android和Linux应用综合对比分析

    原文地址:http://www.cnblogs.com/beer/p/3325242.html 免责声明: 当时写完这篇调查报告,给同事看了后,他觉得蛮喜欢,然后想把这篇文章修改一下,然后往期刊上发表 ...

  9. RF Analyzer for Android 安卓平台连接HackRF的App

    Over the last week I've been working on a new project, trying to build a spectrum analyzer for Andro ...

随机推荐

  1. 防火墙firewall的设置和查看

    systemctl start firewalld.service # 开启防火墙firewallsystemctl stop firewalld.service # 停止防火墙firewall sy ...

  2. 图解WinHex使用入门

    一 Winhex和相关概念简单介绍 1 Winhex 是在Windows下执行的十六进制编辑软件,此软件功能很强大,有完好的分区管理功能和文件管理功能.能自己主动分析分区链和文件簇链.能对硬盘进行不同 ...

  3. HTML5 2D平台游戏开发#6地图绘制

    此前已经完成了一部分角色的动作,现在还缺少可以交互的地图让游戏看起来能玩.不过在开始之前应当考虑清楚使用什么类型的地图,就2D平台游戏来说,一般有两种类型的地图,Tile-based和Art-base ...

  4. git 修改远程仓库地址

    以前的老项目需要修改git路径,为了保留之前的上传记录和分支等可以通过以下方法解决这个问题 sourceTree项目远程仓库,直接修改origin路径,然后提交一个commit即可将项目上传到新的gi ...

  5. eclipse maven 依赖jar下载失败解决办法

    针对PC与Maven私服之间网络传输问题 打开.m2本地仓库所在目录, 通过win文件夹的搜索功能,查找 *.lastUpdated ,然后将找到的文件全部删除 重新 Maven Update Pro ...

  6. linux下tomcat6无法显示图片验证码 少了图形插件

    linux下tomcat6无法显示图片验证码(windows下显示正常) 原创 2015年10月20日 10:31:47 3526 linux下tomcat6无法显示图片验证码(windows下显示正 ...

  7. Elasticsearch5.3 学习(一):安装、Yii2.0 下载es扩展

    Elasticsearch是一个基于Lucene,提供了一个分布式多用户能力的全文搜索引擎.其他就不多说了,官方文档有详细的介绍. 我自己是在CentOS 7.0安装的 Elasticsearch 是 ...

  8. 多媒体开发之视频格式---1080p逐行和1080i隔行

    (1)简介 (2)1080p和1080i的区别 (3) ------------------autho:pkf ----------------------time:2015-1-4 (1)简介 (2 ...

  9. PHP-Manual的学习----【语言参考】----【类型】-----【float浮点型】

    笔记:1.浮点型(也叫浮点数 float,双精度数 double 或实数 real)可以用以下任一语法定义: <?php$a = 1.234; $b = 1.2e3; $c = 7E-10;?& ...

  10. C语言基础知识【运算符】

    C 运算符1.运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符:算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符2.杂项运算符 ↦ ...