android OTG

news/2024/11/8 0:33:35/

关键词:android 4.0 USB OTG 键盘 鼠标 device  u盘

平台信息:

内核:linux3.0

系统:android4.0.3

平台:S5PV310(samsung exynos 4210)

 

把这一段时间的工作内容记录下

一、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 1-1: new high speed USB device number 4 using s5p-ehci
[  138.761467] scsi2 : usb-storage 1-1:1.0
[  139.788733] scsi 2:0:0:0: Direct-Access     Netac    OnlyDisk         PMAP PQ: 0 ANSI: 0 CCS
[  139.808739] sd 2:0:0:0: Attached scsi generic sg0 type 0
[  140.228950] sd 2:0:0:0: [sda] 7831552 512-byte logical blocks: (4.00 GB/3.73 GiB)
[  140.234174] sd 2:0:0:0: [sda] Write Protect is off│  
拔出  u 盘[  744.728526] usb 1-1: USB disconnect, device number 5
[  745.765254] FAT-fs (sda1): Directory bread(block 15304) failed
[  745.765450] FAT-fs (sda1): Directory bread(block 15305) failed
[  745.780105] FAT-fs (sda1): Directory bread(block 15306) failed
[  745.780309] FAT-fs (sda1): Directory bread(block 15307) failed
[  745.786486] FAT-fs (sda1): Directory bread(block 15308) failed
[  745.795189] FAT-fs (sda1): Directory bread(block 15309) failed
[  745.808332] FAT-fs (sda1): Directory bread(block 15310) failed
[  745.808526] FAT-fs (sda1): Directory bread(block 15311) failed
[  745.814463] FAT-fs (sda1): Directory bread(block 15304) failed
[  745.820176] FAT-fs (sda1): Directory bread(block 15305) failed
[  745.825991] FAT-fs (sda1): Directory bread(block 15306) failed
[  745.831829] FAT-fs (sda1): Directory bread(block 15307) failed
[  745.837628] FAT-fs (sda1): Directory bread(block 15308) failed
[  745.843420] FAT-fs (sda1): Directory bread(block 15309) failed
[  745.849224] FAT-fs (sda1): Directory bread(block 15310) failed
[  745.855036] FAT-fs (sda1): Directory bread(block 15311) failed这里可以看到usb的用户为system
shell@android:/mnt $ ls -l
drwxr-xr-x root     system            2000-01-01 04:15 asec
d--------- system   system            2000-01-01 04:15 ext_sd
drwxr-xr-x root     system            2000-01-01 04:15 obb
drwxrwxr-x root     sdcard_rw          2000-01-01 03:08 sdcard
drwx------ root     root              2000-01-01 04:15 secure
d---rwxr-x system   sdcard_rw          1970-01-01 00:00 usb



http://www.ppmy.cn/news/762515.html

相关文章

小知识·OTG工作原理

目录 OTG是什么 一、OTG的历史 二、OTG的原理 1.设计原理 2.相关原理 三、OTG的功能 四、如何使用OTG功能&#xff1f; 三、OTG工作原理 1 新的协议 1.1 事务请求协议SRP 1.2 主机流通协议HNP 2 连接器和电缆 2.1 连接器 2.2 电缆 3 USB On-The-Go设备类…

USB OTG基本原理

基础知识 OTG&#xff1a;On-The-Go&#xff0c;安上即可用。 说明&#xff1a;USB OTG 标准在完全兼容 USB2.0 标准&#xff08;ehci&#xff09;的基础上&#xff0c;增添了电源管理&#xff08;节省功耗&#xff09;功能&#xff0c; 它允许设备既可作为主机&#xff0c;也…

OTG是什么意思?

OTG是什么意思&#xff1f; OTG是怎么样实现的&#xff1f; TYPE-C接口的手机如何实现同时充电OTG功能&#xff1f; OTG是什么意思&#xff1f; OTG是On-The-Go的缩写&#xff0c;是一项新兴技术&#xff0c;主要应用于不同的设备或移动设备间的联接&#xff0c;进行数据交…

手机技巧:被人忽视OTG功能怎么使用?复制文件到U盘的新方法

手机技巧&#xff1a;被人忽视OTG功能怎么使用&#xff1f;复制文件到U盘的新方法 目前我们所购买的手机大部分都带有OTG功能&#xff0c;那么OTG到底是什么呢&#xff1f;好多人对OTG功能其实都是太过于了解的&#xff0c;那么我们如何正确的使用手机的OTG功能呢&#xff1f;…

基于Java资源共享平台设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

Nova: 基于committed relaxed R1CS的IVC方案

Nova是INV的一种实现方案&#xff0c;所谓IVC是指Prover可以向Verifier证明 z i F ( i ) ( z 0 ) z_i F^{(i)}(z_0) zi​F(i)(z0​) 。 最朴素的做法是直接进行i次迭代&#xff0c;每次迭代都进行一次zkSnark&#xff0c;但这样做有三个问题&#xff1a; Prover所需内存大…

雪佛兰linux高德_BAT血拼地图第一战:四维图新、高德抢夺安吉星

车云网从消息人士处获悉&#xff0c;中国最大的车联网服务商安吉星已决定将2014年新项目的地图服务合作伙伴更换为高德。这意味着世纪高通&#xff0c;这家由四维图新控股的服务商&#xff0c;在安吉星车联网项目中又增加了一个竞争对手。 安吉星向上海通用车主提供服务是通过车…

用python写一个手机app签到脚本_利用Python实现App自动签到领取积分

要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化。但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了。 有需要Python学习资料的小伙伴吗?小编整理【一套Python资料、源码和PDF】,感兴趣者可以关注小编后私信学习资料(是关…