ishiz_iwy
2025年5月12日 18時00分
お世話になっております。
Armadillo-X2でFlutterを使用したマウスで操作を行う表示デバイスを開発しています。
前提として、Armadillo電源投入前にディスプレイを接続した状態で起動した場合、マウスは正常に動作します。
しかし、電源投入後にディスプレイをmicroHDMIで接続し(接続した際にFlutterが起動する?)、その後CON4/14へマウスを接続した際、マウスが使用できませんでした。再接続したり他機種のマウスを使用した場合でも動作しません。
また、片方のUSBポートにマウスAを接続した状態で電源投入し、ディスプレイ接続後に追加でもう片方のUSBポートへマウスBを接続した際、マウスAは動作しますがマウスBは動作しませんでしたが、ホストのABOS上でlsusbコマンドで見る限りマウスA/Bどちらも認識している状態でした。
ATDE上でapp.confには初期状態から特に手を加えておらず、add_hotplugs inputの記載は確認できました。
加えて、マウスが正常に動作している状態で切断と再接続を繰り返した際にも同様にマウスが使用できなくなる現象が確認できました。
そのため、Flutterが動作しているコンテナ上でのhotplug動作がうまく行っていない状態なのでは?と推察しています。
状況として、HDMI接続がなされていない状態で電源投入や使用中にマウスの再接続を実施することは想定されるため、対応策等ありましたらご教示いただけると幸いです。
==========
製品型番:Armadillo-X2
ABOSバージョン:3.20.5-at.8
カーネルバージョン:5.10.233-0-at
==========
コメント
ishiz_iwy
at_dominique.m…
横からすみません、
マルティネです。
> 回答の通り設定したところ、USBマウスが使用できなくなる現象は再現しなったように思えます。
> ABOSへ変更を加えるのは開発上本意ではないのですが、現状はこの対応をするほかないのでしょうか?
佐藤さんの回答ではっきり言ってませんでしたが、
今回の問題は ABOS の不具合ですので、
これから修正して今後のアップデートを適用していただければ修正されます。
お手数をおかけして申し訳ございません、連絡助かりました。
試していただいた内容は今のバージョンでも使えるワークアラウンドですので、
すぐに修正が必要な場合は適用しなくても待っていただければ修正します。
すぐ直したい場合はお手数ですがワークアラウンドを使ってください。
また、別のワークアラウンドとしては前の状態に戻して「set_network host」を
利用していただくと正常に動作すると思います。
背景を少し語ると、hotplug 機能にはデバイスのアクセスだけではなく
udev のイベントを「udevfw」というツールでコンテナに転送します。
転送のためは、podman の「poststart」フック機能でコンテナの
network namespace に転送するように udevfw を起動しています。
また、flutter アプリケーションでモニターが接続してない場合に
アプリケーションが失敗して、podman の「set_restart on-failure」設定
でコンテナを podman から再起動します。
そこで、podman 5.0 以降ではコンテナ再起動時に network namespace が
変わるようになってしまって、udevfw が正しくイベントを転送できない状態に
なってしまいます(最近までは変更してなかったのでこの問題は発生してなかったです)
本来でしたらそのリスタート時にも hook が実行されるはずですが、
ずっと前からの別の不具合で hook を実行できないので、
現状は udevfw の再起動はできない状態です。
そのため、佐藤さんのワークアラウンドで restart 機能を使わない様に
変更させて、こちらの不具合に当たらないようになりました。
今後のリリース(5月末か6月末)には hook 機能をちゃんと修正して、
udevfw を正しく制御するように修正しますので、少し待っていただければ
アップデートだけでも直ります。
(興味あれば、 podman の不具合は https://github.com/containers/podman/issues/17935
で管理しています(英語))
> また、後学のためで恐縮ですが、Flutterコンテナ起動時の挙動の理解を深めたく、今回行ったapp.confへの変更とシェルスクリプトの意図、udevへの設定追加について、内容の詳細をご教示いただけると幸いです。
app.conf の変更でコンテナが再起動しないように設定して、
udev ルールでコンテナが正しく起動できるタイミングを待って
エラーしなくなった時に起動しています。
よろしくお願いします
at_dominique.m…
連続更新ですみません、
マルティネです。
> 今後のリリース(5月末か6月末)には hook 機能をちゃんと修正して、
> udevfw を正しく制御するように修正しますので、少し待っていただければ
> アップデートだけでも直ります。
> (興味あれば、 podman の不具合は https://github.com/containers/podman/issues/17935
> で管理しています(英語))
修正は確認できましたので、5月21日予定の Armadillo X2 向け ABOS 3.21.3-at.11 リリースで修正されます。
すぐに確認したい場合は apk ファイルを添付できますので言ってください。
よろしくお願いします
ishiz_iwy
at_dominique.m…
マルティネです。
> 本件に関連するかもしれないと思い、追加での質問となり恐縮ですが、USBマウスを抜き差しした際、稀にFlutterコンテナが再起動する事象が複数回発生していました。再現しようとしても突発的に発生していたため詳細が掴みきれていない状況です。同様の不具合等は確認されていませんでしょうか?
すみません、そちらの現象については初めて聞きました。
コンテナが再起動するということは flutter のアプリケーション自体が停止したということになりますので、
発生した後の「podman logs [コンテナ名]
」の出力を確認すると何かの手がかりがあるかもしれません(再起動後の weston 起動ログの前に flutter 停止ログが残ってるはずです)
もし再現できましたら新規投稿にご利用のマウント方法と podman のログ、dmesg 出力あたりを提供していただければ確認します。
よろしくお願いします
at_makoto.sato
2025年5月13日 14時03分
佐藤です。
お手数ですが、
以下のようにするとどうでしょうか。
・app.conf の "set_restart" を "no" にする
・armadillo上の /root 下に以下のようなァイルを作る
"<コンテナ名>"はご自身のコンテナ名に置き換えてください
・armadillo 上にudev の rules ファイルを作る