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

时间:2016-02-05 22:05:36

标签: android linux linux-kernel mtp

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

我知道Android已经从大容量存储小工具切换到MTP小工具已经有一段时间了,并且在一些Android存储库中找到了source code for MTP gadget driver

然而在mainline kernel code中,我没有找到该特定文件,也没有找到相应文件。

但我确实在2010年为RFC提交了patches for MTP gadget driver

问题:

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

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

如果我想在我的设备上启用USB MTP小工具(TI OMAP3730 SoC运行2.6.37内核,另一个运行NXP / Freescale IMX6 SoC,运行3.14内核),我将使用哪个版本的MTP小工具用于后端?

1 个答案:

答案 0 :(得分:2)

  

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

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

在PC上,MTP启动器已经通过用户空间实现工作。至于今天我在我的Debian上有内核4.3,它仍然没有MTP小工具。但无论如何,我设法在我的电脑和手机之间运行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实现对所有平台都很常见,所以只需查看内核版本。

例如,看看这些回购:

相关问题