This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/PROCESSOR-SDK-DRA7X:通过 USB 连接的智能手机被检测为摄像头设备

Guru**** 2815975 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/712743/linux-processor-sdk-dra7x-smartphone-connected-via-usb-is-detected-as-a-camera-device

器件型号:PROCESSOR-SDK-DRA7X

工具/软件:Linux

您好!

我正在尝试编写一个定制 USB 驱动程序、该驱动程序适用于通过 USB 连接到 dra7xx EVM 的智能手机。 要使该驱动程序正常工作,需要将所有配置描述符(或至少是供应商特定的描述符)传递给该驱动程序。 但是,在连接智能手机时,只有活动配置会传递到自定义驱动程序。 该活动配置始终是摄像机设备的配置。 我在内核构建中进行了一些构建时间更改,方法是: http://processors.wiki.ti.com/index.php/Linux_Core_DWC3_User%27s_Guide 

销售机会将有助于了解如何将活动配置作为特定于供应商的配置、或获取器件的所有配置。

平台:Jacinto6-EVM。

使用随 VISION SDK 2.10和3.02一起提供的 Linux 尝试驱动程序工作。 结果是一样的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您能不能说明您要实现的定制 USB 驱动程序是什么? 最终目标是什么?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    最终目标是检测苹果设备并执行 USB 角色切换。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们建议查看 libusb 指南: http://libusb.sourceforge.net/api-1.0/group__dev.html

    如果内核驱动程序正在使用该器件(接口),则必须首先使用 libusb_detach_kernel_driver()将其与该器件分离。 要进行检查,您可以首先使用 libusb_kernel_driver_active()。

    (注意:您可能必须以 root 身份运行应用程序)

    要设置和获取配置,应用程序可以使用 libusb_set_configuration ()和 libusb_get_configuration ()。

    同样,要设置备用接口,应用程序可以调用 libusb_set_interface_alt_setting()。

    要获取接口:libusb_clarcly_interface()和 libusb_release_interface()。

    希望您能够通过上述详细信息实现您的用例。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Praveen、

    感谢您的意见。 我尝试了您的建议、并获得了一个完整列出器件的应用程序。 但是、我正在尝试编写一个可加载的内核对象、并且无法将其链接到动态库。 您是说我必须获取 libusb 的静态库、并将其与驱动程序一起打包? 如果不是、还可以如何实现呢?

    另外、请注意、对于我的用例、只要连接了新的 USB 设备、我就需要从系统获取通知/探测。 这是拥有内核对象的目的。 您能不能建议采取什么措施来实现相同目标?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的后续问题。   这些问题涉及 TI 平台不特定的定制用例、因此建议在线查找其他资源或示例代码。

    实现用例的方法主要有2种。 如前所述、一种方法是在用户级实现使用 libusb 库的应用程序。 另一种方法是使用内核级对象并直接与 USB 低级驱动程序交互。 建议您根据需要进行实验。 请注意、我们将提供有限的支持、因为您的用例不是 TI Linux SDK 中支持或测试的直接功能。

    如果在与 TI Linux SDK USB 驱动程序代码集成时遇到任何问题、请随时打开新的 e2e 查询。

    谢谢。