2011-03-23 194 views

回答

3

它在內核中完成:我推測你有一個你已經開發或者你正在使用的USB gadget驅動,這樣你的嵌入式Linux設備可以被用作USB設備。

此驅動程序肯定有一個struct usb_device_descriptor聲明某處。正如你所看到的,這個結構有一些idVendor,idProduct字段。人類可讀的字符串是iManufacturer,iProductiSerialNum。下面是完整的結構:

/* 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一個很好的例子的可能性。這樣,您可以將值從用戶空間傳遞給內核。

相關問題