素晴らしいUSB LANギガビットアダプタを含む小さなLinuxテストボックスがあります。アダプタは最初に4ポートUSB3ハブに接続し、次に本機に接続します。
デバイス->USB3 4ポートハブ->LANアダプタ
また、外部からハブに電力を供給してみましたが、結果は変わりませんでした。ランダムな時間が経過すると、USB LANポートが死にます。
これはログ制御ログでは、インターフェイス名はeth1です。
myhost kernel: usb 2-1: USB disconnect, device number 3
myhost kernel: usb 2-1.1: USB disconnect, device number 5
myhost kernel: ax88179_178a 2-1.1:1.0 eth1: unregister 'ax88179_178a' usb-0000:00:14.0-1.1, ASIX AX88179
myhost kernel: ax88179_178a 2-1.1:1.0 eth1: Failed to read reg index 0x0002: -19
myhost kernel: ax88179_178a 2-1.1:1.0 eth1: Failed to write reg index 0x0002: -19
myhost systemd[1]: Stopping ifup for eth1...
myhost kernel: ax88179_178a 2-1.1:1.0 eth1 (unregistered): Failed to write reg index 0x0002: -19
myhost kernel: ax88179_178a 2-1.1:1.0 eth1 (unregistered): Failed to write reg index 0x0001: -19
myhost kernel: ax88179_178a 2-1.1:1.0 eth1 (unregistered): Failed to write reg index 0x0002: -19
代わりに、このようなことが起こります。LSSBデバイスが応答しなくなる前のロギング:
Bus 002 Device 007: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 006: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 003: ID 05e3:0626 Genesys Logic, Inc.
Bus 002 Device 004: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:07dc Intel Corp.
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
デバイスが応答しない場合:
Bus 002 Device 007: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 006: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 004: ID 05e3:0626 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:07dc Intel Corp.
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
USB3ハブには2つのデバイスアドレスUSB2とUSB3部分があるようです... USB3部分バス002デバイス002死バス 001 デバイス 002まだ。
30分以上システムを再起動すると問題が解決します。
しかし、システムを再起動することは非常に面倒です。
30分ごとにシステムを再起動しなくても、USBハブまたはUSB全体のルートを物理的に無効にして再度有効にするコードを呼び出すことはできますか?
このように不安定なハードウェアを変更する前に、私はこの問題を解決するためにcronスクリプトを書くことを望みました。
また、他の質問で要求された他の回避策も試してみましたが、アクセスできなくなった単一のデバイスを再起動する代わりに、使用できるデバイスの完全なUSBルートを再起動したいと思います。
ありがとう
ベストアンサー1
uhubctl
ポートの電源を切ってから電源を入れることができます。これによりデバイスがリセットされ、カーネルがそれを再検出する必要があります。
たとえば、マイコンピュータでは、USBポート1-2.2の電源をオフまたはオンにします。
# /usr/sbin/uhubctl -l 1-2 -p 2 -a off
Current status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
Port 2: 0101 power connect []
Sent power off request
New status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
Port 2: 0000 off
# uhubctl -l 1-2 -p 2 -a on
Current status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
Port 2: 0000 off
Sent power on request
New status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
Port 2: 0101 power connect []
すべてのUSBポートをこの方法で制御できるわけではありませんが、以前にUSBデバイスを再検出するためにこの方法を使用したことがあります。
`-pの正しい値を計算するには-l
試行錯誤が必要な場合があります。
あなたが書いた
myhost kernel: usb 2-1.1: USB disconnect, device number 5
だから私は最初にやろう-l 2-1 -p 1