Armadilloフォーラム

USB gadgetのUSB-CDC接続状況確認

kyas-t5

2020年12月14日 14時24分

お世話になります。

LinuxとArmadilloの初心者です。
Armadillo-x1のCOM8を利用してUSB-CDC/MSCのgadgetを使用し
USB-CDCはModbusRTUを実装してModbus通信を行います。
また、Ethernetを利用したModbusTCPの実装も進めています。
2つのModbusの通信調停を行うため、USB-CDC側の接続を
検知したらModbusTCP側の処理を停止したいと考えています。
ですのでUSB-CDCの抜き差しを検知する方法を教えて頂きたいです。

コメント

at_akihito.irie

2020年12月22日 14時40分

入江です。

> ですのでUSB-CDCの抜き差しを検知する方法を教えて頂きたいです。
udevルールを使用することで検知できます。
詳しい記述方法については udev のmanページをご確認ください。

[armadillo]# man udev

USB-CDCが挿された時に作成されるデバイスファイルがわかっていれば、下記
コマンドでudevルールの記述に必要な情報を取得できます。

[armadillo]# udevadm info -a -n /dev/[デバイスファイル名]

以上、よろしくお願いいたします。

kyas-t5

2020年12月22日 18時42分

ご返信ありがとうございます。

> udevルールを使用することで検知できます。
> 詳しい記述方法については udev のmanページをご確認ください。
>
>

> [armadillo]# man udev
> 

>
> USB-CDCが挿された時に作成されるデバイスファイルがわかっていれば、下記
> コマンドでudevルールの記述に必要な情報を取得できます。
>
>

> [armadillo]# udevadm info -a -n /dev/[デバイスファイル名]
> 

デバイスはttyGS0を使用していまして上記コマンドを打つと
looking at device `/devices/virtual/tty/ttyGS0`
KERNEL=="ttyGS0"
SUBSYSTEM=="tty"
DRIVER==""
と表示されます。

udevmonitor info /dev/ttyGS0で状態変化を確認してみましたが
なにもログが表示されませんでしたがその状態でUSB TypeAのところにUSBメモリを抜き差ししたところログが出ました。
(接続時はaddのログで抜いた時はremoveのログ)
今回、ArmadilloがUSBデバイスになり、Windowsがマスターとなり接続しています。
また、補足としてUSBを接続するとg_acm_ms gadget: high-speed config #1 Composite Gadget (ACM+MS)は表示されます。
何か設定が良くないのでしょうか?

at_akihito.irie

2020年12月23日 16時31分

入江です。

以下のコマンドを実行後、Armadilloと対向機間のUSB接続を抜き差しした時の
出力を送っていただけますでしょうか。

[armadillo]# udevadm monitor

以上、よろしくお願いいたします。

kyas-t5

2021年1月22日 10時41分

> 入江です。
>
> 以下のコマンドを実行後、Armadilloと対向機間のUSB接続を抜き差しした時の
> 出力を送っていただけますでしょうか。
>
>

> [armadillo]# udevadm monitor
> 

>
> 以上、よろしくお願いいたします。
>
>

返事が遅くなり申し訳ありません。
udevadm monitorを使用するとttyGS0のUSB抜き差しログはArmadilloボードのUSB端子の抜き差ししかログが出力されませんした。
そこでいろいろ調べた中で以下の場所でCOM8のUSB gadgetによる抜き差しで情報が変化することを確認できたのでその情報を見るようにしました。
/sys/devices/soc0/soc/30800000.aips-bus/30b20000.usb/ci_hdrc.2/pools
上記の監視に問題があるようであればご指摘ください。