Linux Android USB gadget(从设备驱动)

02-29 1287阅读 0评论

Linux Android USB gadget

  • 一:Linux usb gadget 与 Android Composite Gadget
  • 二:原生方式和Android方式如何配置
    • 函数调用逻辑
    • 内核配置
      • 原生驱动
      • android驱动
    • devices和host模式切换
  • 三:mass_storage配置
    • 虚拟化U盘
  • 四:遍历usb设备
  • 五:adb usb
    • adb_usb.ini
    • 判断usb设备为adb
    • 获取adb配置信息
    • adb设备序列号
    • 发送与接收

《Linux驱动:USB设备驱动看这一篇就够了》
《The Linux-USB Host Side API》

一:Linux usb gadget 与 Android Composite Gadget

Android在linux usb gadget的基础上,做了一次升级。linux usb gadget的配置是系统启动后立即生效的,所以一个固件只能选择一种类型的gadget,比如hid/webcam/acm等。但Android版本的是在系统起来后,由应用程序决定该生成那种gadget,即bind那种function。
Linux3.0以上的系统既支持linux原生的方式,又支持Android方式。其实,Android的方式只不过在linux原生的驱动上面又封装了一层,其底层也还是linux原生驱动。源码位于:drivers/usb/gadget/android.c

Linux Android USB gadget(从设备驱动),Linux Android USB gadget(从设备驱动),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,功能,配置,第1张
(图片来源网络,侵删)

二:原生方式和Android方式如何配置

webcam为例:

函数调用逻辑

以webcam为例,Android在生成webcam的时候,调用webcam_function,而webcam_function最终调用的还是webcam.c 里的webcam_config_bind:
Linux Android USB gadget(从设备驱动)
Linux Android USB gadget(从设备驱动)
Linux Android USB gadget(从设备驱动)

内核配置

原生驱动

Linux Android USB gadget(从设备驱动)配置如土所示,原生驱动只能选择webcam。设备只能作为webcam,系统启动后自己就会生成/dev/video0的虚拟视频输出设备。

android驱动

Linux Android USB gadget(从设备驱动)Linux Android USB gadget(从设备驱动)

Android Composite Gadget 依赖 USB_SUNXI_UDC0(USB Device Controller, USB 设备控制器)
Android Composite Gadget 依赖 ADB Interface
Linux Android USB gadget(从设备驱动)

usb多角色控制支持,配置Android Composite Gadget 功能
SUNXI USB2.0 Manager —> USB_SUNXI_USB_MANAGER
SUNXI USB driver use adb source —> USB_SUNXI_USB_ADB
Linux Android USB gadget(从设备驱动)

Linux Android USB gadget(从设备驱动),Linux Android USB gadget(从设备驱动),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,功能,配置,第10张
(图片来源网络,侵删)

Android的这种配置在系统启动的时候不会生成gadget设备,系统启动后应用层决定该生成什么设备。
Android配置的系统启动后,会生成一个/sys/class/android_usb/android0/目录

# 配置为网络摄像头,生成/dev/video0
echo 0 > enable
echo 18d1 > idVendor
echo d002 > idProduct
echo webcam > functions
echo 1 > enable
# /dev/video0设备消失,/dev/hidg0生成,设备又可以作为hid设备使用
echo 0 > enable
echo hid > functions
echo 1 > enable

devices和host模式

Linux Android USB gadget(从设备驱动),Linux Android USB gadget(从设备驱动),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,功能,配置,第11张
(图片来源网络,侵删)

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1287人围观)

还没有评论,来说两句吧...

目录[+]