簡體   English   中英

如何在 Linux 上讀取 USB 設備的二進制設備對象存儲 (BOS) 描述符

[英]How to read Binary Device Object Store (BOS) descriptor of USB Device on Linux

我需要以編程方式讀取插入 Linux 系統(Ubuntu 18.04)的 USB 設備的設備描述符。 我可以通過解析lsusb輸出或直接從/sys/bus/usb/devices/處的usbfs文件讀取我需要的大部分描述符(iSerial、iProduct 等)。 但是,我無法使用任一方法查找二進制設備對象存儲 (BOS) 描述符。

我想我可以使用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 描述符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM