Linux/Android 实现CDC+MASS STORAGE复合设备

20 篇文章 1 订阅

由于产品需要,需将设备枚举为CDC + MASS STORAGE 或 + ETHER 等设备,linux已经提供了一些常用的复合设备驱动,例如cdc + mass storage + ether,但是如何使用,并未做详细的说明,会出现加载驱动识别的情况,failed to start g_acm_ms -22。

下面说说问题原因和解决办法:

驱动路径kernel\drivers\usb\gadget\legacy

 

kernel配置

 

CONFIG_TTY=y
CONFIG_USB_CONFIGFS_ACM=y

#CONFIG_GADGET_UAC1=y
#CONFIG_USB_AUDIO=y
#CONFIG_USB_ETH=y
#CONFIG_USB_G_SERIAL=y

#CONFIG_USB_G_NOKIA=y
#CONFIG_USB_CDC_COMPOSITE=y
CONFIG_BLOCK=y
CONFIG_USB_G_ACM_MS=y
#CONFIG_USB_G_MULTI=y

 

注意:修改kernel\drivers\usb\gadget\legacy\Makefile  

#obj-$(CONFIG_USB_G_ACM_MS)     += g_acm_ms.o
obj-m   += g_acm_ms.o

编译为模块

否则必现failed to start g_acm_ms -22。

因为枚举mass storage gadget 需要加载一个lun 文件,所以必须采用模块形式加载

 

开机后insmod /etc/g_acm_ms.ko file=/dev/mmcblk1p1   即可加载枚举成功

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Free飝Fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值