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

时间:2018-09-06 11:14:58

标签: linux configuration usb userspace

我已经开发了用于USB设备的内核驱动程序。这种设备的某些引脚可以提供CDC ACM串行端口或输入按钮的功能。因此,要实现这一点,我必须使用两个不同的USB配置描述符。

驱动程序按预期方式工作,但是在编译并将固件加载到微控制器之前,我必须对所选设置进行硬编码。我正在寻找一种从用户空间更改设备配置的机制。

我在USB文档中读到了SET_CONFIGURATION消息,但找不到任何Linux工具将这种标准USB消息从用户空间发送到USB总线。

你们中的某些人(在此主题上有更多的经验)是否知道一些用户空间Linux工具,用于向连接到USB总线的设备发送SET_CONFIGURATION消息?

提前谢谢! :)

2 个答案:

答案 0 :(得分:1)

从理论上讲,LibUSB中的函数libusb_set_configuration()可以做到这一点,但是没有必要。

使用“接口关联描述符”(IAD),只需将HID(用于按钮)和CDC(串行端口)都设置为 one 配置。

答案 1 :(得分:0)

此github回购解决了我的问题:

let data = [{"booleanProperty":false},{"booleanProperty":true},{"booleanProperty":false},{"booleanProperty":true},{"booleanProperty":false}];
    
let indexes = data.reduce((r, a, i)=> (a.booleanProperty && r.push(i), r), []);
  
  
console.log(indexes);