2016-08-15 58 views
0

我有一個紅外線溫度計,它通過USB運行在虛擬串行端口上,我試圖在Debian Linux上使用它。不幸的是,該系統沒有列舉出一個/dev/ttyUSB設備。Linux上的Cygnal集成產品串行端口

這是該設備的dmesg

usb 5-1: new full-speed USB device number 3 using uhci_hcd 
usb 5-1: New USB device found, idVendor=10c4, idProduct=834b 
usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
usb 5-1: Product: Infrared Online Sensor Adapter 
usb 5-1: Manufacturer: Silicon Labs 
usb 5-1: SerialNumber: CT00092755 

這裏是lsusb -v

Bus 005 Device 003: ID 10c4:834b Cygnal Integrated Products, Inc. 
Couldn't open device, some information will be missing 
Device Descriptor: 
    bLength    18 
    bDescriptorType   1 
    bcdUSB    1.10 
    bDeviceClass   0 (Defined at Interface level) 
    bDeviceSubClass   0 
    bDeviceProtocol   0 
    bMaxPacketSize0  64 
    idVendor   0x10c4 Cygnal Integrated Products, Inc. 
    idProduct   0x834b 
    bcdDevice   1.00 
    iManufacturer   1 
    iProduct    2 
    iSerial     3 
    bNumConfigurations  1 
    Configuration Descriptor: 
    bLength     9 
    bDescriptorType   2 
    wTotalLength   32 
    bNumInterfaces   1 
    bConfigurationValue  1 
    iConfiguration   0 
    bmAttributes   0x80 
     (Bus Powered) 
    MaxPower    100mA 
    Interface Descriptor: 
     bLength     9 
     bDescriptorType   4 
     bInterfaceNumber  0 
     bAlternateSetting  0 
     bNumEndpoints   2 
     bInterfaceClass  255 Vendor Specific Class 
     bInterfaceSubClass  0 
     bInterfaceProtocol  0 
     iInterface    2 
     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  0x01 EP 1 OUT 
     bmAttributes   2 
      Transfer Type   Bulk 
      Synch Type    None 
      Usage Type    Data 
     wMaxPacketSize  0x0040 1x 64 bytes 
     bInterval    0 

我怎樣才能得到這個工作,所以我可以與串行端口連接到它?

回答

1

事實證明,該設備使用標準的Silicon Labs CP2102接口芯片,該設備製造商在其中加載了一個定製的idProduct號碼。雖然芯片與cp210x.ko驅動程序100%兼容,但系統無法識別idProduct,並且不會將驅動程序與其關聯。

在這一點上,有幾種可能的解決方案:

  • 手動指示系統使用cp210x.ko驅動程序與此idProduct
  • idProduct添加到open source driver,編譯並安裝它。然後嘗試將更改推送到標準Linux存儲庫。
  • 用通用芯片替換定製芯片。
  • 重寫芯片上的idProduct

我選擇重寫idProduct。 Silicon Labs有一個free utility來做到這一點。我設置了idProduct=EA60,這是該芯片的默認設置。該設備現在可以被標準的內置驅動器識別,並且工作完美。