デバイスをドライバーにバインドするプロセスをよりよく理解しようとしています。 Id(製品とベンダー)が知られているUSBツール(Arduinoのシステムプログラマー)があります。ドライバーcdc_acm.koは、それを認識しません(もちろん、内部デバイスリストにはありません!)。だから...私はモジュールをロードしました
Sudo modprobe cdc_acm
lsmod | grep cdc
$>cdc_acm
$>dmesg
...
[41244.510906] usbcore: registered new interface driver cdc_acm
[41244.510915] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
パーフェクト。次に、デバイスを挿入すると、dmesgの出力は次のようになります。
...
[41447.794431] usb 2-1.2: new full-speed USB device number 17 using ehci-pci
[41447.887680] usb 2-1.2: New USB device found, idVendor=03eb, idProduct=2ff7
[41447.887690] usb 2-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[41447.887695] usb 2-1.2: Product: Arduino USB-Serial DFU
USBドライバーが対処しているように思えます。それに応じて、次の点を確認しましょう http://lwn.net/Articles/143397/
$>ls -la /sys/bus/usb/drivers/usb/usb2/2-1/2-1.2/2-1.2\:1.0/
total 0
drwxr-xr-x 3 root root 0 gen 20 19:29 .
drwxr-xr-x 5 root root 0 gen 20 12:51 ..
-r--r--r-- 1 root root 4096 gen 20 12:58 bAlternateSetting
-r--r--r-- 1 root root 4096 gen 20 12:51 bInterfaceClass
-r--r--r-- 1 root root 4096 gen 20 12:51 bInterfaceNumber
-r--r--r-- 1 root root 4096 gen 20 12:58 bInterfaceProtocol
-r--r--r-- 1 root root 4096 gen 20 12:58 bInterfaceSubClass
-r--r--r-- 1 root root 4096 gen 20 12:58 bNumEndpoints
-r--r--r-- 1 root root 4096 gen 20 12:58 modalias
drwxr-xr-x 2 root root 0 gen 20 12:58 power
lrwxrwxrwx 1 root root 0 gen 20 12:58 subsystem -> ../../../../../../../bus/usb
-r--r--r-- 1 root root 4096 gen 20 12:58 supports_autosuspend
-rw-r--r-- 1 root root 4096 gen 20 12:51 uevent
モジュールリンクが存在しないため、デバイスがusbモジュールドライバーにリンクされていないようです。モーダルファイルの内容は私が期待していたものであることに注意してください:
usb:v03EBp2FF7d0000dc00dsc00dp00icFEisc01ip02in00
次のコマンドを使用して、デバイスをモジュールcdc_acmにリンクしようとしました。
$>Sudo echo -n "2-1.2:1.0" > Sudo /sys/bus/usb/drivers/cdc_acm/bind
dmesgの出力には、発行したばかりのコマンドに固有のものは何も表示されません。
ここで何が間違っていますか?少なくともいくつかのデバッグ出力が必要です。問題のあるリクエストを発行した場合は、少なくともカーネルメッセージが返ってくるはずです...少なくともシステムフィードバックがあれば、問題の理解に役立ちます。ありがとう。 PS。 Intel Core i3 ASUSラップトップF552CでUbuntu 14.10 64ビットを使用しています。
これは非常に一般的な状況で、Sudo
を使用してシェルリダイレクトを使用して、ルート所有ファイルに書き込みます。次のように実行できます。
Sudo sh -c 'echo -n "2-1.2:1.0" > /sys/bus/usb/drivers/cdc_acm/bind'
シェルをルートとして実行し、その内部でリダイレクトを使用します。他にも多くの方法があります。 リダイレクトでSudoを使用すると、「許可が拒否されました」と表示されます