实现usb的MTP功能

前言:最终结果根据用户自主选择可实现host和device功能的切换。
效果展示:
当插入usb时设备会弹窗
在这里插入图片描述
当用户选择设备模式时pc端就会出现mtp设备盘符
在这里插入图片描述

实现mtp设备

ubuntu架构根文件系统通过uMTP-Responder实现usb的MTP功能

添加服务

/home/flynn/firfly_rootfs/lib/systemd/system/adbd.service

#start
[Unit]
Description= Adbd for linux
Before=rockchip.service

[Service]
Type=forking
ExecStart=/etc/init.d/adbd.sh start
ExecStop=/etc/init.d/adbd.sh stop
ExecReload=/etc/init.d/adbd.sh reload

[Install]
WantedBy=multi-user.target
#end

链接文件:/etc/systemd/system/multi*.want/adbd.service

添加脚本

/home/flynn/firfly_rootfs/etc/init.d/adbd.sh

#!/bin/bash -e
# setup configfs for adbd, usb mass storage and MTP....
MTP_EN=off

USB_ATTRIBUTE=0x409
USB_GROUP=rockchip
USB_SKELETON=b.1

CONFIGFS_DIR=/sys/kernel/config
USB_CONFIGFS_DIR=${CONFIGFS_DIR}/usb_gadget/${USB_GROUP}
USB_STRINGS_DIR=${USB_CONFIGFS_DIR}/strings/${USB_ATTRIBUTE}
USB_FUNCTIONS_DIR=${USB_CONFIGFS_DIR}/functions
USB_CONFIGS_DIR=${USB_CONFIGFS_DIR}/configs/${USB_SKELETON}

parameter_init()
{
   
	while read line
	do
		case "$line" in
			usb_mtp_en)
				MTP_EN=on
				make_config_string mtp
				;;
			
			usb_rndis_en)
               RNDIS_EN=on
               make_config_string rndis
               ;;
		esac
	done < $DIR/.usb_config


	case 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值