The field I'm interested is iSerial from the output of: lsusb -d <idVendor>:<idProduct> -v
Example output of a non-unique iSerialNumber:
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x0402 ALi Corp.
idProduct 0x9665 Gateway Webcam
bcdDevice 0.09
iManufacturer 3
iProduct 1
iSerial 0 <-- Three string descriptors exist to provide details of the manufacturer, product and serial number. There is no requirement to have string descriptors. If no string descriptor is present, a index of zero should be used.
bNumConfigurations 1
Configuration Descriptor:
As far as I know the iSerialNumber does not always include a uniquely identifiable string value. For example the Iphone and Ipad include this information, but some other devices I've tested do not have this value. It is not mandatory according to the USB standard to have string descriptors.
Can someone who owns a GoPro tell me if it has a string descriptor for the serial number?
I don't have a camera yet.