2
我有一個嵌入式Linux設備,我想設置VID,PID和名稱。這通常在哪裏完成?在文件系統中還是被編譯進內核?如何設置嵌入式Linux中USB設備的VID和PID
我有一個嵌入式Linux設備,我想設置VID,PID和名稱。這通常在哪裏完成?在文件系統中還是被編譯進內核?如何設置嵌入式Linux中USB設備的VID和PID
它在內核中完成:我推測你有一個你已經開發或者你正在使用的USB gadget驅動,這樣你的嵌入式Linux設備可以被用作USB設備。
此驅動程序肯定有一個struct usb_device_descriptor
聲明某處。正如你所看到的,這個結構有一些idVendor
,idProduct
字段。人類可讀的字符串是iManufacturer
,iProduct
和iSerialNum
。下面是完整的結構:
/* USB_DT_DEVICE: Device descriptor */
struct usb_device_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 bcdUSB;
__u8 bDeviceClass;
__u8 bDeviceSubClass;
__u8 bDeviceProtocol;
__u8 bMaxPacketSize0;
__le16 idVendor;
__le16 idProduct;
__le16 bcdDevice;
__u8 iManufacturer;
__u8 iProduct;
__u8 iSerialNumber;
__u8 bNumConfigurations;
} __attribute__ ((packed));
如果您使用的是已經developped驅動程序,有的給你設置這些字段與您傳遞的模塊參數的一些值,看看drivers/usb/gadget/printer.c
一個很好的例子的可能性。這樣,您可以將值從用戶空間傳遞給內核。