我试图让嵌入式设备作为MTP设备工作,使用USB小工具驱动程序。
我知道Android已经从海量存储小工具转向MTP小工具很长一段时间了,并且在一些安卓存储库中找到了MTP小工具驱动程序的源代码。
然而,在主线内核代码中,我没有找到特定的文件,也没有找到相应的文件。
但我确实发现MTP小工具驱动程序的修补程序在2010年提交了RFC。
问题:
为什么主线内核不接受这个补丁,也不提供MTP小工具的任何其他实现,但是Android内核提供它呢?
这是因为技术上的困难还是其他原因,比如有更好的方法去做?
如果我想在我的设备上启用USB小工具(一个使用TI OMAP3730 SoC运行2.6.37内核,另一个使用NXP/Freescale IMX6 SoC,运行3.14内核),那么我应该使用哪个版本的MTP小工具作为后端?
发布于 2016-02-05 23:49:40
为什么主线内核不接受这个补丁,也不提供MTP小工具的任何其他实现,但是Android内核提供它呢?
在这线程中提到,MTP响应程序应该实现为用户空间守护进程,而不是作为内核USB小工具。并提到了一些实现。
在PC上,MTP发起者已经通过用户空间实现工作.至于今天,我的Debian上有4.3内核,它仍然缺乏MTP小工具。但我还是设法在我的个人电脑和我的手机之间运行了MTP,使用了一些用户空间工具(可能基于libmtp,但这不是重点)。
众所周知,Android内核有一些有争议的技术决策(从主流内核开发人员的角度来看),因为Android是一个快速发展的项目,应该快速实现。当然,也有人试图尽可能多地向上游进发。但是MTP小工具似乎是那些甚至无法进入drivers/staging的东西之一。也许每个人都同意必须在用户空间中实现MTP。
如果我想在我的设备上启用USB小工具(一个使用TI OMAP3730 SoC运行2.6.37内核,另一个使用NXP/Freescale IMX6 SoC,运行3.14内核),那么我应该使用哪个版本的MTP小工具作为后端?
如果您真的需要在内核(可能只需要Android),您应该寻找Android内核版本尽可能接近您的。无论您使用哪个SoC,MTP实现在所有平台上都是常见的,所以只需查找内核版本即可。
例如,看一看这些repos:
https://stackoverflow.com/questions/35234347
复制相似问题