USB-직렬 장치는 CP210x 드라이버를 배포하지 않습니다.

USB-직렬 장치는 CP210x 드라이버를 배포하지 않습니다.

저는 RPi2에서 Jessie Lite를 실행하고 있습니다. USB를 직렬 장치에 연결하면 표시되지만 드라이버가 할당되지 않습니다.

lsusb -t

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
        |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
        |__ Port 3: Dev 13, If 0, Class=Vendor Specific Class, Driver=, 12M

Silicon Labs의 CP210x 드라이버가 설치된 것으로 보입니다.

lsmod

Module                  Size  Used by
cp210x                  9419  0 
usbserial              29964  1 cp210x

이제 성공하지 못한 채 수동으로 바인딩을 시도했습니다.

echo -n "1-1.3:1.0" > /sys/bus/usb/drivers/cp210x/bind

write error: No such device

저는 Linux를 처음 접했고 이 기능을 실행해야 하므로 조언을 주시면 감사하겠습니다. 참고 사항: 장치와 잘 통신하는 Windows 시스템에서 실행되는 작은 Python 스크립트가 있습니다.

장치가 있는데 왜 찾을 수 없는지 모르겠습니다.

tree /sys/bus/usb/devices/

├── 1-1.3 -> ../../../devices/platform/soc/20980000.usb/usb1/1-1/1-1.3
├── 1-1.3:1.0 -> ../../../devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3:1.0

usb-devices문제를 식별하는 데 도움이 될 수 있는 추가 정보가 있습니까 ?

T:  Bus=01 Lev=02 Prnt=02 Port=04 Cnt=02 Dev#=  6 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=18ef ProdID=e030 Rev=01.00
S:  Manufacturer=Silicon Labs
S:  Product=ALC 8500 Expert
S:  SerialNumber=3ENAEFJAVJCO9AQQ
C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)

답변1

USB 장치 드라이버를 자동으로 로드하는 규칙을 udev에 추가합니다.

필요한 재료:

  • USB 장치 PID/VID 번호. lsusb산출.트리 모드에서는 표시되지 않습니다. lsusb -t
  • 장치 드라이버 modprobe명령./sbin/modprobe usb-storage

udev 규칙 생성.

아래에 자신만의 규칙 파일을 추가하세요./etc/udev/rules.d

sudo vi /etc/udev/rules.d/80-serialToUsb_VID-PID.rules

udev 규칙을 추가할 때. 이렇게 하면 udev가 USB가 연결될 때 나열된 vid/pid가 있는 모든 장치에 대한 드라이버를 자동으로 로드할 수 있습니다.

  • 바꾸다#동영상#기기의 VID로
  • 바꾸다#PID#장치의 PID로.
  • 바꾸다#운전사#모듈을 로드하려면 명령을 사용하십시오.
  • 바꾸다#체계#new_id해당 디렉토리에 있는 드라이버 파일의 위치 /sys .

ACTION=="add", ATTRS{idVendor}=="#VID#", ATTRS{idProduct}=="#PID#", RUN+="#DRIVER#" RUN+="/bin/sh -c 'echo #VID# #PID# > #SYS#'"

udev를 다시 시작하세요

sudo /etc/init.d/udev restart

기기를 연결하여 dmesg인증 에 사용하세요


이것은 맞춤형 MP3 플레이어에 사용하는 예입니다.

ACTION=="add", ATTRS{idVendor}=="a000", ATTRS{idProduct}=="a000", RUN+="/sbin/modprobe usb-storage" RUN+="/bin/sh -c 'echo a000 a000 > /sys/bus/usb/drivers/usb-storage/new_id'"

Silicon Labs 직렬 포트를 USB 장치로 사용자 정의하는 예도 있습니다.

ACTION=="add", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="84a0", RUN+="/usr/sbin/modprobe cp210x" RUN+="/bin/sh -c 'echo 10c4 84a0 > /sys/bus/usb-serial/drivers/cp210x/new_id'"

이는 Debian 8 및 Ubuntu 14에서 작동합니다.

데비안 라이트를 사용하고 있습니다. 따라서 이것이 귀하에게 효과가 있을 것이라고 100% 확신할 수는 없습니다.

mdev대신 Freescale 임베디드 장치 mx23을 사용하고 있는데 udev프로세스가 약간 다릅니다.

관련 정보