1

我需要以编程方式读取插入 Linux 系统(Ubuntu 18.04)的 USB 设备的设备描述符。我可以通过解析lsusb输出或直接从. 但是,我无法使用任何一种方法找到二进制设备对象存储 (BOS) 描述符。/sys/bus/usb/devices/

我想我可以使用libusb查询 BOS,但似乎因为这是一个 USB 规范标准描述符,可能有更简单的方法。是否可以直接从usbfs读取它,或者从lsusb或其他标准实用工具查询它?

4

1 回答 1

1

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 描述符。

于 2020-02-13T03:43:07.203 回答