Toybrick

debian的mtp配置问题

touptek

新手上路

积分
39
楼主
发表于 2024-7-25 08:55:16    查看: 641|回复: 7 | [复制链接]    打印 | 只看该作者
目前想实现在debian或buildroot环境下,配置类似android的MTP通讯PC进行文件交互的方案
就是debian通过type-C连接电脑PC,PC可以通过文件管理器实时访问到一个固定目录(例如android的sdcard)

尝试过buildroot、debian的官方固件均无法完整上述操作。
尝试编过了buildroot/package/mtp包,然后集成到buildroot固件里面,运行mtp-server会报错not opening /dev/mtp_usb.(如图一)
然后去查找对应的驱动文件,发现只有在kernel-4.4或更老的版本还有f_mtp.c文件,可以生成对应的设备节点。

移植到kernel-5.10 生成节点后,参考usbdevice里面ums模式修改变量的方式,把usbdevice.sh的export USB_FUNCS改成"mtp",调试调到最后报错变成invalid argument -22(如图二)

但是打印出来打开的fd值其实相同,参考了一下android的,android打开的是handle相关的。目前不知道后续如何修改了。
我有看到buildroot/package/mtp包里面的patch也有一直在更新的,逻辑上mtp配置应该是可用才对,想问一下是哪里没配置好的问题?


目前验证过ums模式是可以成功虚拟出U盘的,但是不能实时显示增删改的数据,达不到想要的效果。

主要就是想要到的跟android类似可以通过PC连接后实时查看对应目录下文件
增删改查的功能。像smb这种网络共享的暂时不考虑。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

touptek

新手上路

积分
39
沙发
 楼主| 发表于 2024-7-25 08:58:19 | 只看该作者
目前在debian上也试过jmtpfs这类包,都是把Linux作为PC,来识别接入的MTP设备。跟想要的效果相反了。
回复

使用道具 举报

touptek

新手上路

积分
39
板凳
 楼主| 发表于 2024-7-26 09:52:52 | 只看该作者
您好,请问有人能帮忙解答一下问题吗?我目前参考Android 也对比不出来什么差异。
回复

使用道具 举报

touptek

新手上路

积分
39
地板
 楼主| 发表于 2024-7-26 10:15:05 | 只看该作者
目前,目的就是通过type-c连接访问磁盘内容,也想确认mtp是否是唯一途径?如果有其他的途径能否说明一下。
回复

使用道具 举报

touptek

新手上路

积分
39
5#
 楼主| 发表于 2024-7-31 08:40:46 | 只看该作者
请问有人能解答我的上述问题吗?
回复

使用道具 举报

skyxiexin

新手上路

积分
16
6#
发表于 2024-7-31 09:39:55 | 只看该作者
你需要修改目前的启动脚本,从默认的adb模式改到MTP
回复

使用道具 举报

touptek

新手上路

积分
39
7#
 楼主| 发表于 2024-7-31 09:50:16 | 只看该作者
目前已经修改过启动脚本了,usbdevice.sh的export USB_FUNCS改成"mtp",没效果。usbdevice 脚本里面调用mtp-server进程报错 invalid argument -22。
您那边可以正常配置吗?方便贴一下配置?
回复

使用道具 举报

touptek

新手上路

积分
39
8#
 楼主| 发表于 2024-7-31 09:55:46 | 只看该作者
还有点是 UMS模式下对于的vid pid有什么差异?我看网上有人的UMS模式是vid是0x0525 pid 0xa4a5 看着是走mass_storage。但是脚本是0x2207 0x0000
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表