繁体   English   中英

主线 Linux 内核中的 USB MTP 小工具驱动程序发生了什么变化?

[英]What happened to USB MTP gadget driver in mainline Linux kernel?

我正在尝试使用 USB 小工具驱动程序使嵌入式设备作为 MTP 设备工作。

我知道 Android 从大容量存储小工具切换到 MTP 小工具已经有一段时间了,并且在一些 Android 存储库中找到了MTP 小工具驱动程序源代码

然而,在主线内核代码中,我没有找到那个特定的文件,也没有找到等效的文件。

但我确实找到了 2010 年为 RFC 提交的MTP 小工具驱动程序的补丁

题:

为什么主线内核不接受这个补丁,也不提供 MTP gadget 的任何其他实现,而 Android 内核提供了它?

这是因为技术困难还是其他原因,比如有更好的方法吗?

如果我想在我的设备上启用 USB MTP 小工具(一个使用 TI OMAP3730 SoC 运行 2.6.37 内核,另一个使用 NXP/Freescale IMX6 SoC,运行 3.14 内核),我应该使用哪个版本的 MTP 小工具进行反向移植?

为什么主线内核不接受这个补丁,也不提供 MTP gadget 的任何其他实现,而 Android 内核提供了它?

这个线程中提到 MTP 响应器应该作为用户空间守护进程来实现,而不是作为内核 USB 小工具。 并提到了一些实现。

在 PC 上,MTP 启动器已经通过用户空间实现工作。 至于今天,我的 Debian 上有内核 4.3,但它仍然缺少 MTP 小工具。 但是无论如何我还是设法在我的 PC 和手机之间运行 MTP,使用一些用户空间工具(可能基于 libmtp,但这不是重点)。

众所周知,Android 内核具有一些有争议的技术决策(从主线内核开发人员的角度来看),因为 Android 是一个快速发展的项目,应该快速实施。 当然,有人试图尽可能多地上游。 但是 MTP 小工具似乎是那些甚至无法用于drivers/staging 可能每个人都同意 MTP 必须在用户空间中实现。

如果我想在我的设备上启用 USB MTP 小工具(一个使用 TI OMAP3730 SoC 运行 2.6.37 内核,另一个使用 NXP/Freescale IMX6 SoC,运行 3.14 内核),我应该使用哪个版本的 MTP 小工具进行反向移植?

如果您真的需要在内核中使用它(可能只有 Android 需要),您应该寻找与您的内核版本尽可能接近的 Android 内核版本。 无论您使用哪种 SoC,MTP 实现对于所有平台都是通用的,因此只需查找内核版本即可。

例如,看看这些回购:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM