Hello, We produce extremely high-end GNSS (GPS, etc) receivers that are often used for a very wide range of applications. Our receivers can be connected to via USB, which will provide 3 USB-to-serial ports that can be used to issue commands and get receiver data. We typically get Linux users to create a udev file so their systems attach the USB serial ports to /dev. I just noticed that when my receiver enumerates, dmesg outputs: [ 414.374523] usb 1-1.1.3: new full-speed USB device number 8 using dwc_otg [ 414.508473] usb 1-1.1.3: New USB device found, idVendor=09d7, idProduct=0100 [ 414.508488] usb 1-1.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 414.508497] usb 1-1.1.3: Product: NovAtel GPS Receiver [ 414.508505] usb 1-1.1.3: Manufacturer: NovAtel Inc. [ 414.508514] usb 1-1.1.3: SerialNumber: DMGW18050122R [ 414.511608] usbserial_generic 1-1.1.3:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes. [ 414.511624] usbserial_generic 1-1.1.3:1.0: Tell mailto:linux-usb@xxxxxxxxxxxxxxx to add your device to a proper driver. [ 414.511636] usbserial_generic 1-1.1.3:1.0: generic converter detected [ 414.512004] usb 1-1.1.3: generic converter now attached to ttyUSB0 [ 414.512352] usb 1-1.1.3: generic converter now attached to ttyUSB1 [ 414.512805] usb 1-1.1.3: generic converter now attached to ttyUSB2 The udev rules file I have, which I've arbitrarily placed at /etc/udev/rules.d/z90_novatel.rules contains: SUBSYSTEM=="usb", SYSFS{idProduct}=="0100", SYSFS{idVendor}=="09d7", PROGRAM="/sbin/modprobe usbserial vendor=0x09d7 product=0x0100" BUS=="usb", SYSFS{idProduct}=="0100", SYSFS{idVendor}=="09d7", SYSFS{product}=="NovAtel GPS Receiver", SYSFS{manufacturer}=="NovAtel Inc.", SYMLINK+="gps%n" Note that the SYMLINK component of that appears non-functional. I was looking at correcting it when I noticed the dmesg output directing me to email you. Below is some additional details that may be of use. Of note, the idVendor is wrong. We are "NovAtel Inc." By contrast, "Novatel Wireless" is an entirely unrelated company. Also, the idProduct in this case is also flawed and would ideally read as: "NovAtel FlexPak GNSS receiver" ("FlexPak" is not a typo). References to "GPS" may be changed to "GNSS", which is a broader scope term that applies to our products, though this is a minor point. # lsusb -s 001:008 -v Bus 001 Device 008: ID 09d7:0100 Novatel Wireless NovAtel FlexPack GPS receiver Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 255 bMaxPacketSize0 64 idVendor 0x09d7 Novatel Wireless idProduct 0x0100 NovAtel FlexPack GPS receiver bcdDevice 1.01 iManufacturer 1 NovAtel Inc. iProduct 2 NovAtel GPS Receiver iSerial 3 DMGW18050122R bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 60 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 4 UART via USB bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 6 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 255 iInterface 5 Bulk Data Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0001 Self Powered I think it would be "nice" if our receiver's USB-delivered serial ports attached to /dev as /dev/novatel0, .. /dev/novatelN or (/dev/gnss0 .. /dev/gnssN). Though if they continued to appear as /dev/ttyUSB0 .. /dev/ttyUSBN, that'd also be great. I'm not entirely sure if the dmesg output that's directed me here is really intended for this sort of request. If not, I'm willing to make my own git merge request, though I've not toyed much with the Linux Kernel, so tips would be extremely appreciated. Can we please get our Vendor ID (0x09d7) and Product ID (0x0100) added to the Kernel in a sensical manner? James T Snell, P.Eng Applications Engineer NovAtel, part of Hexagon. E: mailto:james.snell@xxxxxxxxxxx The information contained in this e-mail may contain confidential or privileged material and is intended only for the stated addressee(s). If you are not a valid addressee, the use, disclosure, copying or distribution of this information is prohibited and may be unlawful. If you have received this message in error, please notify the sender immediately and delete all copies of the message from your computer. Notwithstanding any applicable legislation which may provide for contracts to be formed from electronic communication, this email does not create, form part of, or vary any contract, nor is it otherwise intended to bind any Hexagon group company.