usb-devices
T: Bus=03 Lev=01 Prnt=01 Port=04 Cnt=01 Dev#= 9 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=ff MxPS=16 #Cfgs= 1
P: Vendor=09d7 ProdID=0100 Rev=01.01
S: Manufacturer=NovAtel Inc.
S: Product=NovAtel GPS Receiver
S: SerialNumber=DAB08180262
C: #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 6 Cls=ff(vend.) Sub=00 Prot=ff Driver=(none)
dmesg
[ 323.226674] usb 3-5: USB disconnect, device number 6
[ 323.530748] usb 3-5: new full-speed USB device number 7 using xhci_hcd
[ 323.660748] usb 3-5: New USB device found, idVendor=09d7, idProduct=0100
[ 323.660758] usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 323.660763] usb 3-5: Product: OEM4 Family of Receivers
[ 323.660768] usb 3-5: Manufacturer: NovAtel Inc.
[ 323.660772] usb 3-5: SerialNumber: DAB08180262
[ 324.535659] usb 3-5: USB disconnect, device number 7
[ 330.472340] usb 3-5: new full-speed USB device number 8 using xhci_hcd
[ 330.601440] usb 3-5: New USB device found, idVendor=09d7, idProduct=0100
[ 330.601444] usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 330.601445] usb 3-5: Product: NovAtel GPS Receiver
[ 330.601447] usb 3-5: Manufacturer: NovAtel Inc.
[ 330.601448] usb 3-5: SerialNumber: DAB08180262
lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 174c:5106 ASMedia Technology Inc. Transcend StoreJet 25M3
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 5986:014c Acer, Inc
Bus 003 Device 003: ID 13d3:3394 IMC Networks
Bus 003 Device 002: ID 062a:410c Creative Labs
Bus 003 Device 009: ID 09d7:0100 Novatel Wireless NovAtel FlexPack GPS receiver
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb -v
Bus 003 Device 009: 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 16
idVendor 0x09d7 Novatel Wireless
idProduct 0x0100 NovAtel FlexPack GPS receiver
bcdDevice 1.01
iManufacturer 1 NovAtel Inc.
iProduct 2 NovAtel GPS Receiver
iSerial 3 DAB08180262
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 60
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 5 Config 1
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 6
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 255
iInterface 4 Interface 0
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 0x86 EP 6 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 0x07 EP 7 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 0x8b EP 11 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 0x0c EP 12 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0001
Self Powered
На официальном сайте вендора есть вот такая статья
http://support.novatel.com/entries/311990-OEM4-OEMV-USB-Driver-for-Linux-, но она для очень старых ядер и у меня нет в системе ttyUSB поэтому я не знаю можно ли её вообще применить в моём случае, хотя для моего поколения приёмника данная статья подходит.
Как заставить всё это хозяйство работать? Что нужно сделать чтобы система хотя бы попыталась взаимодействовать с устройством как с обычным COM-портом.
Пользователь решил продолжить мысль 26 Ноября 2014, 15:05:00:
Выглядит парадоксально, но у меня получилось.
Похоже железка гораздо умнее, чем может показаться на первый взгляд, но сразу видимо с ОС она договориться не может или это ОС не может с ней договориться, не знаю.
В общем нужно несколько раз выгрузить и загрузить модуля usbserial c указанием PID и VID, проверять успешность можно dmesg | tail, в конце будет написано что создалось несколько ttyUSB, в моём случае аж целых 3(так и должно быть). Дальше всё как обычно echo и cat. Еще одной особенностью является по всей видимости интерпретация команд. Ранее приёмник был подключён к ПК с Windows и у него осталась настроенной посылка команд, при первом cat /dev/ttyUSB0 он вываливает дикое количество непонятных иероглифов, после нескольких отправок одной и той же команды он наконец её воспримет и дальше уже будет отвечать на читабельном языке.
root:~# rmmod usbserial
root:~# modprobe usbserial vendor=0x09d7 product=0x0100
root:~# dmesg | tail
[ 1360.500925] usbcore: deregistering interface driver usbserial
[ 1370.110752] usbcore: registered new interface driver usbserial
[ 1370.110799] usbcore: registered new interface driver usbserial_generic
[ 1370.110837] usbserial: USB Serial support registered for generic
[ 1370.110867] usbserial_generic 3-5:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
[ 1370.110871] usbserial_generic 3-5:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
[ 1370.110874] usbserial_generic 3-5:1.0: generic converter detected
[ 1370.111069] usb 3-5: generic converter now attached to ttyUSB0
[ 1370.111247] usb 3-5: generic converter now attached to ttyUSB1
[ 1370.111392] usb 3-5: generic converter now attached to ttyUSB2
root:~#