Armadilloフォーラム

USBの再接続を連続して繰り返すと機器を認識しなくなる

ishiz_iwy

2025年5月23日 18時09分

お世話になっております。

podmanでadd_hotplugsを利用する際の修正を受け、3.20.5-at.8から3.21.3-at.11へアップデートを行い、検証を行っていました。
通常であればCON4/CON17へのUSB接続は正常に行えている状態です。

CON17にマウスをスイッチャー経由で接続して使用し、切り替えを比較的早く(1秒間に5回以上)連続して行ったところ、マウスが認識しなくなりました。
電源を再投入しlsusbをwatchで監視しながら同様に切り替え操作を行ったところ、途中でマウスが表示されなくなりABOS上で認識されていないようでした。このとき、CON17へマウスを直接接続したり他のUSBデバイスを接続したりした場合でも同様に認識されませんでした。CON4でのUSB接続は問題なく認識され使用できており、上記同様の連続切り替えの操作を行っても認識しなくなることはありませんでした。

本不具合が発生する状況は限定的とは考えていますが、これはCON4/CON17で挙動が異なるのはホスト/ハブといったインターフェイスとしての仕様上の差による問題なのか、あるいは何か対策が行えるものなのか、ご回答いただけると幸いです。
==========
製品型番:Armadillo-X2
Debian/ABOSバージョン:3.21.3-at.11
カーネルバージョン:5.10.237-0-at
==========

コメント

at_dominique.m…

2025年5月23日 18時39分

ishiz_iwyさん

お世話になっています、
マルティネです。

> 本不具合が発生する状況は限定的とは考えていますが、これはCON4/CON17で挙動が異なるのはホスト/ハブといったインターフェイスとしての仕様上の差による問題なのか、あるいは何か対策が行えるものなのか、ご回答いただけると幸いです。

CON17 は USB2422という USBハブ経由でデバイスを接続していますので、そのハブの問題かもしれません。

月曜日は再現してみて本格的な修正できないかを確認しますが、いくつか確認させてください

* 再現した時の確認のため、問題が発生した際の dmesg 出力を提供していたでけますでしょうか。
* 再現した際に usb2422 をリロードすると再認識されると思いますが、手間じゃなければ確認してください。
修正に時間かかる場合は問題なんとか問題を確認した際にそれで対策できるかもしれません。

# /sys パスの確認。最後のところが「3-1」であってると思いますが、違う場合は次のコマンドを直してください
armadillo:~# abos-ctrl usb-filter list-devices | grep 2422
     2  allow 003:002 0424 2422 2422 :090000: 0424_2422 /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1
 
# 方法 1 authorized ファイル
armadillo:~# echo 0 > /sys/bus/usb/devices/3-1/authorized 
armadillo:~# echo 1 > /sys/bus/usb/devices/3-1/authorized 
 
# 方法 2 ドライバーのリロード
armadillo:~# echo 3-1 > /sys/bus/usb/drivers/usb/unbind 
armadillo:~# echo 3-1 > /sys/bus/usb/drivers/usb/bind 

よろしくお願いします

マルティネ様
早速のご回答ありがとうございます。

> * 再現した時の確認のため、問題が発生した際の dmesg 出力を提供していたでけますでしょうか。

[  126.855741] usb 3-1.1: new low-speed USB device number 3 using xhci-hcd
[  127.000254] input: Kensington Eagle Trackball Mouse as /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1/3-1.1/3-1.1:1.0/0003:047D:2048.0003/input/input6
[  127.002138] hid-generic 0003:047D:2048.0003: input,hidraw2: USB HID v1.11 Mouse [Kensington Eagle Trackball Mouse] on usb-xhci-hcd.2.auto-1.1/input0
[  130.386521] usb 3-1.1: USB disconnect, device number 3
[  133.095525] usb 3-1.1: new low-speed USB device number 4 using xhci-hcd
[  133.263640] input: Kensington Eagle Trackball Mouse as /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1/3-1.1/3-1.1:1.0/0003:047D:2048.0004/input/input7
[  133.264745] hid-generic 0003:047D:2048.0004: input,hidraw2: USB HID v1.11 Mouse [Kensington Eagle Trackball Mouse] on usb-xhci-hcd.2.auto-1.1/input0
[  135.467581] usb 3-1.1: USB disconnect, device number 4
[  148.171539] usb 3-1.1: new low-speed USB device number 5 using xhci-hcd
[  148.333910] input: Kensington Eagle Trackball Mouse as /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1/3-1.1/3-1.1:1.0/0003:047D:2048.0005/input/input8
[  148.334943] hid-generic 0003:047D:2048.0005: input,hidraw2: USB HID v1.11 Mouse [Kensington Eagle Trackball Mouse] on usb-xhci-hcd.2.auto-1.1/input0
[  150.281685] usb 3-1.1: USB disconnect, device number 5
[  160.759525] usb 3-1.1: new low-speed USB device number 6 using xhci-hcd
[  160.927326] input: Kensington Eagle Trackball Mouse as /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1/3-1.1/3-1.1:1.0/0003:047D:2048.0006/input/input9
[  160.927687] hid-generic 0003:047D:2048.0006: input,hidraw2: USB HID v1.11 Mouse [Kensington Eagle Trackball Mouse] on usb-xhci-hcd.2.auto-1.1/input0
[  174.138327] usb 3-1.1: USB disconnect, device number 6
[  195.071536] usb 3-1.1: new low-speed USB device number 7 using xhci-hcd
[  195.222011] input: Kensington Eagle Trackball Mouse as /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1/3-1.1/3-1.1:1.0/0003:047D:2048.0007/input/input10
[  195.222941] hid-generic 0003:047D:2048.0007: input,hidraw2: USB HID v1.11 Mouse [Kensington Eagle Trackball Mouse] on usb-xhci-hcd.2.auto-1.1/input0
[  199.154009] usb 3-1.1: USB disconnect, device number 7

最後のメッセージ(切断後)から再接続(認識しない)するまでに新規にメッセージは確認できませんでした。

> * 再現した際に usb2422 をリロードすると再認識されると思いますが、手間じゃなければ確認してください。
> 修正に時間かかる場合は問題なんとか問題を確認した際にそれで対策できるかもしれません。
方法1および方法2のどちらでも再認識が確認できました。
方法1での再認識時のdmesg

[  645.480581] hub 3-1:1.0: USB hub found
[  645.481512] hub 3-1:1.0: 2 ports detected
[  645.482023] usb 3-1: authorized to connect
[  645.767538] usb 3-1.1: new low-speed USB device number 8 using xhci-hcd
[  645.933099] input: Kensington Eagle Trackball Mouse as /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1/3-1.1/3-1.1:1.0/0003:047D:2048.0008/input/input11
[  645.934662] hid-generic 0003:047D:2048.0008: input,hidraw2: USB HID v1.11 Mouse [Kensington Eagle Trackball Mouse] on usb-xhci-hcd.2.auto-1.1/input0

方法2での再認識時のdmesg

[  923.533531] hub 3-1:1.0: USB hub found
[  923.533620] hub 3-1:1.0: 2 ports detected
[  923.819550] usb 3-1.1: new low-speed USB device number 11 using xhci-hcd
[  923.985058] input: Kensington Eagle Trackball Mouse as /devices/platform/soc@0/32f10108.usb/38200000.dwc3/xhci-hcd.2.auto/usb3/3-1/3-1.1/3-1.1:1.0/0003:047D:2048.000B/input/input14
[  923.985900] hid-generic 0003:047D:2048.000B: input,hidraw2: USB HID v1.11 Mouse [Kensington Eagle Trackball Mouse] on usb-xhci-hcd.2.auto-1.1/input0

使用しているスイッチャーは物理的な接点変化が伴うもので、ソフト的な介在はありません。
再現する際、認識不良が発生する条件が掴みきれず、再接続する速さや切断回数というよりも、何かのタイミングが合致した際に認識できていないように見受けられした。

at_dominique.m…

2025年5月29日 14時53分

ishiz_iwyさん

お待たせしました、
マルティネです。

> 最後のメッセージ(切断後)から再接続(認識しない)するまでに新規にメッセージは確認できませんでした。

メッセージにもう何もないですね。

> 方法1および方法2のどちらでも再認識が確認できました。

確認ありがとうございます。
エラーメッセージもないのでとても微妙ですが、例えば「しばらくマウスをが認識されてない状態が続いたらワークアラウンドを実行する」ような対策を考えれますね。

> 件が掴みきれず、再接続する速さや切断回数というよりも、何かのタイミングが合致した際に認識できていないように見受けられした。

そうですね、タイミングだけではなくデバイスにもよるかもしれません。

手元には物理的なスイッチャーがなかったんですが、いくつかのパターンを確認しました:

* on/offスイッチのある USB ハブを挟んで、スイッチをいくら操作しても認識の失敗はなかった(ハブ挟んでるので、2422ハブの不具合だったら納得できます)
* Armadillo X2 の usb用 5V の regulator を操作してデバイスの電源をランダムに切ってみましたが、これも再現できませんでした。
いくつかのデバイスで試しましたが、ものによって一回認識されなかったこともありますが、また電源入れ直したら認識できたのと、同じタイミングをCON4でためしたら再現できたのでデバイスの問題ですね。
CON17 の 5V にダイオードもありますので、念の為 CON11 のピンヘッダーに接続して USB デバイスの 5V だけを操作するように操作しても同じでした。
* CON17 で手動に挿しなおすのは物理的に無理ですが、CON11 のピンヘッダーで荒く挿し直したら似たような再現は何回かできたようにも見えます。
同じ CON11 で挿し直しても認識されなかったが、別のデバイスを挿し込むと認識されたり、CON17に何かを挿したら両方が認識されたり、デバイス認識が失敗した後に変な状態になってるのは間違いないですが提供していただいたログでドライバー側にイベントがなさそうなので対応は難しいかと思います。(簡単に再現できたらもうちょっと確認できるかもしれませんが、現状では再現するに時間がかかりdata通信失敗エラーも大量発生していますので、まずは再現方法を改善しないといけません)

試した感覚ですが、手動での再現率が低くて、data のピンも中途半端に接続されてる状態でしか発生しなかったように見えますので、変な状態で接続されて USB 規格外の電圧で data ピンを認識できなかったかもしれません。
使って頂いてる USB スイッチャーで線の切り替えのタイミング情報など持ってますか?スイッチャーで GND/5V を先に接続しておいて電圧が落ち着いてからデータ線を接続できればいいんですが…

大変お手数ですが背景を少し教えていただけますでしょうか?この不具合で実際何かの製品で問題になっていますか?

お手数ですがよろしくお願いします