Debian / BeagleBone Black で RS-232 から USB CDC_ACM が動作しない

Debian / BeagleBone Black で RS-232 から USB CDC_ACM が動作しない

私は、USB ケーブルを介して一定のシリアル データ ストリームでデータを出力する太陽光発電システムに取り組んでいます。このシステムは、Windows 7 PC (太陽光発電システムのそばの埃っぽい箱の中に入っていた CD-ROM で見つかったドライバーを使用) と、ドライバーをインストールせずに Windows 10 PC (他のデバイスで作業していたときにドライバーが以前にインストールされていた可能性はありますが) で動作しました。

Windows デバイス マネージャーから、ケーブルのタイプが であることがわかりましたCDC_ACM

今は、データ収集を自動化できるように、BeagleBone Black と一緒に使用しようとしています。太陽系の近くにはプラグ ポイントがないので (皮肉なことに)、BeagleBone には PC から電源を供給しています。ケーブルを差し込んで入力するとlsusb、デバイスが接続されていないことがわかります。

debian@beaglebone:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

メッセージ ログを見ると、次のような内容が表示されています。

debian@beaglebone:~$ dmesg | tail -n 20
[  442.566683] hub 1-0:1.0: hub_resume
[  442.566753] hub 1-0:1.0: port 1: status 0101 change 0001
[  442.668291] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[  442.668381] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
[  442.721964] CAUTION: musb: Babble Interrupt Occurred
[  442.773713] usb 1-1: new full-speed USB device number 44 using musb-hdrc
[  442.823536] musb-hdrc: setup fifo_mode 4
[  442.823583] musb-hdrc: 28/31 max ep, 16384/16384 memory
[  442.826509] hub 1-0:1.0: unable to enumerate USB device on port 1
[  442.833788] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
[  442.833924] hub 1-0:1.0: port 1, status 0500, change 0003, 480 Mb/s
[  442.941687] hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x500
[  442.941807] hub 1-0:1.0: hub_suspend
[  442.941867] usb usb1: bus auto-suspend, wakeup 1
[  443.006061] usb usb1: usb wakeup-resume
[  443.006138] usb usb1: usb auto-resume
[  443.006178] hub 1-0:1.0: hub_resume
[  443.006253] hub 1-0:1.0: port 1: status 0101 change 0001
[  443.107772] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[  443.107860] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s

最初に送信した場合、sudo modprobe cdc_acmケーブルを接続すると同じ結果が得られるようです。(別の BeagleBone Black では、「ケーブルが不良です」というメッセージが一度表示されましたが、Windows PC ではケーブルがまだ機能することを確認しました)。

カーネル上にドライバーが存在するようです:

debian@beaglebone:/sys/bus/usb/drivers$ ls
cdc_acm    cdc_ncm  rndis_host  usb    usbhid
cdc_ether  hub      rt2870      usbfs  usb-storage
debian@beaglebone:/sys/bus/usb/drivers$ cd cdc_acm
debian@beaglebone:/sys/bus/usb/drivers/cdc_acm$ ls
bind  new_id  remove_id  uevent  unbind

このデバイスを動作させるための手順が抜けているのでしょうか?

答え1

エラー メッセージに示されているように、USB ルート ハブは接続されたデバイスを列挙できません。このようなエラーの原因として考えられるのは、Beaglebone がそのデバイスに十分な電力を供給できないことです。

電源付きハブを Beaglebone に接続し、デバイスをハブに接続してみてください。

(コメントによると、これで問題は解決しました)。

関連情報