Linux上的Cygnal Integrated Products串行端口 [英] Cygnal Integrated Products serial port on Linux
问题描述
我有一个红外测温仪,该测温仪通过USB在虚拟串行端口上运行,我正在尝试在Debian Linux上使用它.不幸的是,系统没有枚举/dev/ttyUSB
设备.
I have an infrared thermometer which operates on a virtual serial port over USB, which I am trying to use on Debian Linux. Unfortunately, the system does not enumerate a /dev/ttyUSB
device.
这是设备的 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
如何使它工作,以便可以通过串行端口连接到它?
How can I get this working, so I can connect to it with the serial port?
推荐答案
事实证明,此设备使用标准的Silicon Labs CP2102接口芯片,设备制造商已加载了自定义的 idProduct
编号.虽然该芯片与 cp210x.ko
驱动程序100%兼容,但是 idProduct
无法被系统识别,也不会将驱动程序与其关联.
It turns out this devices uses a standard Silicon Labs CP2102 interface chip, which the device manufacturer loaded with a custom idProduct
number. While the chip is 100% compatible with the cp210x.ko
driver, the idProduct
is not recognized by the system, and does not associate the driver with it.
目前,有几种可能的解决方案:
At this point, there are several possible solutions:
- 手动引导系统将该
cp210x.ko
驱动程序与此idProduct
一起使用. - 将
idProduct
添加到开源驱动程序,进行编译并安装.然后尝试将更改推送到标准Linux存储库中. - 用通用芯片代替定制芯片.
- 重写芯片上的
idProduct
.
- Manually direct the system to use the
cp210x.ko
driver with thisidProduct
. - Add the
idProduct
to the open source driver, compile, and install it. Then try to push the changes into standard Linux repositories. - Replace the customized chip with generic one.
- Rewrite the
idProduct
on the chip.
我选择重写 idProduct
.Silicon Labs具有免费实用程序来执行此操作.我设置了 idProduct = EA60
,这是该芯片的默认设置.现在,该设备已被标准的内置驱动程序识别,并且可以正常运行.
I chose to rewrite the idProduct
. Silicon Labs has a free utility to do just this. I set the idProduct=EA60
, which is the default for this chip. The device is now recognized by the standard built-in driver, and works perfectly.
这篇关于Linux上的Cygnal Integrated Products串行端口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!