您尚未登录。

楼主 #1 2018-01-30 12:32:18

小白菜
会员
注册时间: 2017-09-27
已发帖子: 88
积分: 88

A33上在Linux层使用串口和存储

首先在linux内核配置 USB support  --->

  USB Gadget Support  --->
    USB Gadget Drivers (Android Composite Gadget)  --->
这些配置选项小白菜,就不多解释后,大佬们在网上都见过很多,当然还是Android Composite Gadget这个也是内层全志家做好的,在安卓层就有丰富的mtp,我在这里也是默认用的这个,编译烧录,接下来就是在根文件系统里也就是抛掉安卓层,在linux用户层操作mass_storage和acm功能了
enter acm mode
echo 0 > /sys/class/android_usb/android0/enable
echo 1D6b > /sys/class/android_usb/android0/idVendor
echo 0106 > /sys/class/android_usb/android0/idProduct
echo 1 > /sys/class/android_usb/android0/f_acm/instances(听大佬解释这个参数是实例化一个acm设备,最初没加这项时,上位机识别设备,但是显示是未知设备)
echo acm > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable

enter mass_storage mode
echo 0 > /sys/class/android_usb/android0/enable
echo 1f3a > /sys/class/android_usb/android0/idVendor
echo 1000 > /sys/class/android_usb/android0/idProduct
echo /dev/mmcblk0p9 > /sys/class/android_usb/android0/f_mass_storage/lun/file(将想要作为mass_storage的功能的分区写入文件)
echo mass_storage > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
此外mass_storage功能使用的时候,我的上位机会识别出来三个盘符,这个是因为在下位机的/sys/class/android_usb/android0/f_mass_storage/lun lun1 lun2三个有些想只在上位机识别出一个盘符的小伙伴可以更改驱动文件
/drivers/usb/gadget/android.c文件里的mass_storage_function_init函数里的for(i=0;i<config->fsg.nluns;i++),具体的更爱有很多种,小白菜想的很简单就是自己的枚举出来的盘符是三个,只想用一个就让循环少执行两次就好了,嘿嘿


当然还有想使用其他功能的小伙伴,这个可以去看安卓层的init.usb.rc文件里的内容,我就是在哪里找的

离线

#2 2018-01-30 13:40:11

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,224
积分: 9197

Re: A33上在Linux层使用串口和存储

白菜哥成了A33大神!





离线

#3 2018-01-30 13:44:47

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,224
积分: 9197

Re: A33上在Linux层使用串口和存储

你的A33可以用摄像头和编解码库了吗?





离线

楼主 #4 2018-01-30 14:11:46

小白菜
会员
注册时间: 2017-09-27
已发帖子: 88
积分: 88

Re: A33上在Linux层使用串口和存储

晕哥 说:

你的A33可以用摄像头和编解码库了吗?

没有,可以搞搞试试

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn