我需要以编程方式读取插入 Linux 系统(Ubuntu 18.04)的 USB 设备的设备描述符。我可以通过解析lsusb输出或直接从. 但是,我无法使用任何一种方法找到二进制设备对象存储 (BOS) 描述符。/sys/bus/usb/devices/
我想我可以使用libusb查询 BOS,但似乎因为这是一个 USB 规范标准描述符,可能有更简单的方法。是否可以直接从usbfs读取它,或者从lsusb或其他标准实用工具查询它?
BOS 描述符可以通过控制传输获得。控制传输参数为:
bmRequestType:0x80,bRequest:0x06,wValue:0x0F00,wIndex:0x0000,
头 BOS 描述符是:
struct usb_bos_descriptor_header {
u8_t bLength;
u8_t bDescriptorType;
u16_t wTotalLength;
u8_t bNumDeviceCaps;
};
我们也可以使用https://github.com/libusb/libusb/blob/master/examples/xusb.c来获取 BOS 描述符。