LINUX.ORG.RU

Драйвер для CP2102

 


2

2

Ситуация следующая. Есть устройство где в качестве преобразователя интерфейса используется чип Silicon Labs CP2102 в принципе я часто его в своих проектах использую, обычно все хорошо. Но вот не задача, попалась партия китайских чипов которая отличается idVendor и idProduct. И вот они упорно отказываются работать.

Устройство подключается но наотрез отказывается распознаваться как USB - UART конвретр. Операционная система Ubuntu 18.04

Результат dmesg

[ 1848.098360] usb 3-1: new full-speed USB device number 18 using xhci_hcd
[ 1848.247818] usb 3-1: New USB device found, idVendor=0b00, idProduct=3070
[ 1848.247824] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1848.247828] usb 3-1: Product: Ingenico 3070
[ 1848.247832] usb 3-1: Manufacturer: Silicon Labs
[ 1848.247836] usb 3-1: SerialNumber: 0001

результат 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 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 0b05:17cb ASUSTek Computer, Inc. Broadcom BCM20702A0 Bluetooth
Bus 003 Device 004: ID 046d:c52e Logitech, Inc. MK260 Wireless Combo Receiver
Bus 003 Device 019: ID 0b00:3070 INGENICO 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Для примера вот результат dmesg другого устройства с чипом CP2102 из другой партии. Все на том же компе

[ 1771.978223] usb 3-1: new full-speed USB device number 17 using xhci_hcd
[ 1772.127894] usb 3-1: New USB device found, idVendor=10c4, idProduct=ea60
[ 1772.127900] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1772.127904] usb 3-1: Product: CP2102 USB to UART Bridge Controller
[ 1772.127908] usb 3-1: Manufacturer: Silicon Labs
[ 1772.127912] usb 3-1: SerialNumber: 0001
[ 1772.129087] cp210x 3-1:1.0: cp210x converter detected
[ 1772.131005] usb 3-1: cp210x converter now attached to ttyUSB0

В моем понимание основное различие в idVendor и idProduct. Как сделать так что бы операционка idVendor=0b00 и idProduct=3070 воспринимала как cp210x converter и использовала для него cp210x?


добавить VID:PID китайских чипов в драйвер оригинального, перекомпилировать, перезагрузить

Harald ★★★★★
()

Попробуй так (от рута):

modprobe cp210x
echo 0b00 3070 >/sys/bus/usb-serial/drivers/cp210x/new_id
И после смотри что появилось в dmesg. Если нормально заработает - отпишись, добавим ID в драйвер.

Deleted
()
Ответ на: комментарий от Deleted

dmesg сказал ...

[ 4078.674471] usb 3-1: new full-speed USB device number 20 using xhci_hcd
[ 4078.823977] usb 3-1: New USB device found, idVendor=0b00, idProduct=3070
[ 4078.823983] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4078.823988] usb 3-1: Product: Ingenico 3070
[ 4078.823992] usb 3-1: Manufacturer: Silicon Labs
[ 4078.823995] usb 3-1: SerialNumber: 0001
[ 4078.824948] cp210x 3-1:1.0: cp210x converter detected
[ 4078.827107] usb 3-1: cp210x converter now attached to ttyUSB0

И все заработало! Большое спасибо

dvalov
() автор топика
Ответ на: комментарий от dvalov

Отлично, позже сегодня попробую сделать патч и отправить в LKML.

Если хочешь, могу тебя добавить в Reported-by к коммиту. Для этого нужен будет твой имейл и имя или ник.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.