用于向连接到USB总线的设备发送SET_CONFIGURATION消息的Linux工具

44u64gxh  于 2022-12-18  发布在  Linux
关注(0)|答案(3)|浏览(203)

我开发了一个USB设备的内核驱动程序。这样的设备有一些引脚可以提供CDC ACM串行端口或输入按钮的功能。因此,为了实现这一点,我必须使用两个不同的USB配置描述符。
驱动程序按预期工作,但我必须在编译和加载固件到微控制器之前硬编码所选的设置。我正在寻找一种机制,从用户空间更改设备配置。
我在USB文档中读到了SET_CONFIGURATION消息,但是找不到任何Linux工具来将这种标准USB消息从用户空间发送到USB总线。
你们中的一些人(在这个主题上有更多的经验)知道一些用户空间Linux工具来向连接到USB总线的设备发送SET_CONFIGURATION消息吗?
提前感谢!:)

bvn4nwqk

bvn4nwqk1#

LibUSB中的函数libusb_set_configuration()理论上可以做到这一点,但没有必要。
您可以使用“接口关联描述符”(IAD)简单地将HID(用于按钮)和CDC(串行端口)放入 * 一个 * 配置中。

jyztefdp

jyztefdp2#

这个github回购解决了我的问题:

https://github.com/avtolstoy/usbtool
amrnrhlw

amrnrhlw3#

不需要任何特殊工具,只需通过sysfs即可:

  • 找到您的设备cd /sys/bus/usb/devices/X-Y/,其中X是总线编号,Y是设备编号。
  • 编辑bConfigurationValue,例如使用sudoedit
  • 将文件内容设置为所需的配置号并保存

就是这样!

相关问题