4

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

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

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

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

问题:

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

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

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

4

1 回答 1

3

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

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

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

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

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

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

例如,看看这些 repos:

于 2016-02-05T23:49:40.717 回答