USB CDCデバイスに接続できません

USB CDCデバイスに接続できません

USB経由で接続された8チャンネルUSBリレーボードがあります。委員会マニュアルには次のように記載されています。

Linuxでこの製品を使用するには、USB CDCドライバをカーネルにコンパイルする必要があります。幸い、ほとんどのLinuxディストリビューション(Ubuntu、Redhat、Debianなど)にはこのドライバがプリインストールされています。

USB CDCドライバを含めるためにカーネルを再構築する必要がある可能性は非常に少ないです。

Linux コンピュータに接続した後、製品は /dev ディレクトリにシリアルポートとして表示されます。通常、デバイス名は ttyACMxこれに似ています。名前は、使用しているLinuxディストリビューションによって異なる場合があります。

私の場合は、(Gentoo実行)USB CDC ACM用のドライバをカーネルに含める必要がありました。

リレーを接続すると、次のように表示できますdmesg

[76094.036163] usb 4-1: new full-speed USB device number 4 using uhci_hcd
[76094.618717] usb 4-1: New USB device found, idVendor=2a19, idProduct=0c02
[76094.618722] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[76094.618725] usb 4-1: Product: Numato Lab 8 Channel USB Relay Module
[76094.618728] usb 4-1: Manufacturer: Numato Systems Pvt. Ltd.

ランlsusbttyACM0表示されます。しかし、コマンド文字列を送信してもecho -ne 'string' > /dev/ttyACM0効果はありません。また、ls -alof は文字デバイスファイルでは/devないことを示します。ttyACM0実際には次のように表示されます。

-rw-rw-rw- 1 root root 13 Nov 9 09:38 ttyACM0

他のドライバまたはモジュールを有効にする必要がありますか?なぜttyACM0文字デバイスとして表示されないのですか?コマンドの送信方法に問題がありますかttyACM0

会社が提供するWindowsドライバをインストールした後、Windowsでリレーが正常に実行されました。 PuTTYを使用して何の問題もなくコマンドを送信できますが、Linuxでは何をしているのかわかりません。

答え1

このデバイス/dev/ttyACM0は仮想シリアルポートです。 PuTTY、minicom、screenなどの端末エミュレータを使用して接続する必要があります。 screenを使用すると、次のことを実行できます。

screen /dev/ttyACM0 9600

ここで、9600はボーレートです。これにより、取締役会と通信するための対話型セッションが提供されます。

答え2

USB CDC ACM用のドライバをカーネルに含める必要がありました。

私はあなたがそれを実装した方法を書いていませんが、あなたと同じ問題に直面しました。アナログ入力付きNumato 8チャンネルUSB GPIOモジュールリストにない/dev/ttyACM0 私は単純に次のように解決しました。

sudo apt install linux-modules-extra-raspi

最後に、読み書きに使用できる/dev/ttyACM0があります。

トピックを整理するのに役立つことを願っています。

関連情報