title: Use iSerialNumber USB device descriptor to uniquely identify GoPro Camera
body: <p>The field I'm interested is iSerial from the output of: <code>lsusb -d &lt;idVendor&gt;:&lt;idProduct&gt; -v</code></p>
  
  <p>Example output of a non-unique iSerialNumber:</p>
  
  <pre><code>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  &lt;-- 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:
  </code></pre>
  
  <p>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 <a href="http://www.beyondlogic.org/usbnutshell/usb5.shtml#DeviceDescriptors" rel="nofollow">USB standard</a> to have string descriptors. </p>
  
  <p>Can someone who owns a GoPro tell me if it has a string descriptor for the serial number?</p>
  
  <p>I don't have a camera yet.</p>