h_k
2025年2月19日 16時18分
==========
製品モデル:Armadillo-IoT G4
ABOSバージョン:3.20.5-at.8
カーネルバージョン:5.10.233-0-at
その他:
==========
概要
ArmadilloのUSBコネクタにUSBハブを接続し、
その先のUSBシリアルデバイスにシリアル通信を行おうとしています。
USBコネクタに直接、USBシリアルデバイスを接続した際はシリアル通信ができますが、
USBハブを間に挟むとシリアル通信が行えなくなります。
解決方法が知りたいです。
コメント
マルティネ様
お世話になっております。
h_kです
返信ありがとうございます。
ほかのUSB機器を接続したところlsusbに反応がありました。
また、PCに直接ハブとUSBシリアル機器を接続して通信することはできました。
Armadilloにハブを接続し、
USBシリアルを接続前と接続後のdmesgとlsusbをお送りいたします。
何卒宜しくお願い致します。
ファイル | ファイルの説明 |
---|---|
dmesg接続後.log | |
dmesg接続前.log | |
lsusb接続後.log | |
lsusb接続前.log |
at_dominique.m…
マルティネです。
> ほかのUSB機器を接続したところlsusbに反応がありました。
> また、PCに直接ハブとUSBシリアル機器を接続して通信することはできました。
了解です。
lsusb でちゃんと 0403:6001 の FTDI (usbシリアル反感ベンダー)を認識しますね。
> USBシリアルを接続前と接続後のdmesgとlsusbをお送りいたします。
dmesg でも、「[ 2733.729383] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0」によると正しく認識されてるように見えますが、使えないということで合ってますか?
具体的に、使おうとすると何かエラーありますか?
エラーがなくて、送信した物を対向機で受信できないまたはその逆?
よろしくお願いします
h_kです
>dmesg でも、「[ 2733.729383] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0」によると正しく認識されてるように見えますが、使えないということで合ってますか?
はい、エラー時でもdmesgで上記の表示がされます。
>具体的に、使おうとすると何かエラーありますか?
>エラーがなくて、送信した物を対向機で受信できないまたはその逆?
Armadilloの起動時のログに下記のエラー表示が出ます。
Starting configured podman containers ...error: usb_so_jushin: device /dev/ttyUSB0 does not exist
podman-atmark | * ERROR: podman-atmark failed to start
この時のログを電源投入.logで送ります。
接続状況は
電源タップにArmadilloとUSBハブのACアダプタが接続されています。
ArmadilloのUSBコネクタ(CON4)にUSBハブが接続されており、
USBハブにマイコンボードとシリアル機器が接続されています。
Armadilloのシリアルコンソール(CON6)にパソコンを接続し、
電源タップに電源を投入、ログを確認する を繰り返しています。
成功時はシリアル機器に送信した内容がログで確認でき、
シリアル機器が無線で別の機器を作動させます。
結果は成功とエラーが交互に発生しています。
また、今回の利用とは関係ありませんが、
USBタップに追加で他のUSB機器を接続すると
シリアル通信の結果はログで確認できますが、
別の機器を作動させません。
成功した時と失敗時のdmesgと
エラー表示をお送りいたします。
ファイル | ファイルの説明 |
---|---|
error_1.log | エラー時のdmesgです |
succes_2.log | 成功時のdmesgです |
電源投入.log | 電源投入時のArmadilloのエラーログです。100行目近くにエラー表示があります。 |
at_dominique.m…
h_kさん
マルティネです
> Armadilloの起動時のログに下記のエラー表示が出ます。
> Starting configured podman containers ...error: usb_so_jushin: device /dev/ttyUSB0 does not exist
> podman-atmark | * ERROR: podman-atmark failed to start
> この時のログを電源投入.logで送ります。
なるほど、全く使えないのではなく、起動時にコンテナの起動が失敗しますね。
おそらくですが、その後コンソールで「podman_start usb_so_jushin」でコンテナを立ち上がると成功すると思いますが、いかがでしょうか?
USB ハブを挟まることで USB シリアルが認識される時間が少しだけ遅くなって、コンテナの起動が先に処理されるとこういう風に失敗します。
それでしたら「add_device(s)」コマンドで /dev/ttyUSB0 をコンテナに提供するのではなく、「add_hotplugs ttyUSB」でコンテナに提供してください。
add_hotplugs を利用するとデバイスがコンテナ起動後に認識されても利用できます。
ただし、アプリケーションを起動する際にまだデバイスが存在しない場合は同じくアプリケーションが失敗しますので、なにかのエラー処理が必要になるかもしれません(ファイルが存在しない場合にコマンドが失敗で終了すればコンテナを自動的にリスタートされますのでいずれ成功しますが、アプリ内で待つ処理を実装した方がわかりやすいと思います)
よろしくお願いします
at_dominique.m…
2025年2月19日 16時40分
h_k さん
お世話になっています、
マルティネです。
> USBハブを間に挟むとシリアル通信が行えなくなります。
* USB ハブ自体は正常に動作してますでしょうか?(USB シリアル以外に、USBメモリ等を接続すると認識されてますか)
動作しなかった場合は PC で動作してますでしょうか?
* USBハブとUSBシリアルを接続した状態の「dmesg」または「lsusb」の出力をご提供いただければ幸いです。
よろしくお願いします。