私は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
プロセスは少し異なります。