저는 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
프로세스가 약간 다릅니다.