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.
ランlsusb
がttyACM0
表示されます。しかし、コマンド文字列を送信してもecho -ne 'string' > /dev/ttyACM0
効果はありません。また、ls -al
of は文字デバイスファイルでは/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があります。
トピックを整理するのに役立つことを願っています。