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で動作します。

Debian ライトを使用しています。したがって、これがあなたに効果があると100%確信することはできません。

mdev代わりに、Freescale組み込みデバイスmx23を使用していますが、udevプロセスは少し異なります。

おすすめ記事