Ubuntu 10.04のUSBのハードリセット


6

USBデバイス(モデム)がありますが、これは本当に面倒です。正常に機能する場合もありますが、接続を拒否する場合もあります。悪い状態になってから修正することがわかった唯一の解決策は、デバイスを物理的に取り外して再び接続することです。ただし、接続されているマシンに常に物理的にアクセスできるわけではないので、コマンドラインからこれを行う方法を探しています。

この投稿では、実行することをお勧めします。

$ sudo modprobe -w -r usb_storage; sudo modprobe usb_storage

ただし、「unknown option -w」の出力が表示されます。このわずかに変更されたコマンド:

$ sudo modprobe -r usb_storage

メッセージFATAL:Module usb_storage is in useで失敗します。実行前に[usb-storage]とマークされたプロセスを-9で強制終了しようとすると、それらは死ぬことを拒否します(カーネルに深く結びついているためだと思います)。

誰でもこれを行う方法を知っていますか?

注:どちらが適切かはわからなかったため、これをserverfaultにクロスポストしました。最初に回答された方を削除またはリンクします。


マシンに物理的にアクセスできない場合は、何らかのサーバーとして分類します。サーバー上で障害のあるハードウェアを保持し続けるポイントはほとんどありません。
ブブ

bubu、それはあなたが「失敗する」という意味に依存します。デバイスは正常に動作しているように聞こえますが、Linuxのサポートが不十分です。
nitro2k01

@ nitro2k01この質問は3年前です...とにかく常に接続できるとは限らないので、デバイスは失敗しています...質問者は間違ったデバイスをリセットしようとしているので、動作できず、Linuxサポートとは関係ありません。 ...
ローレント

回答:


4

Ubuntu 14.04.4。があります。これが10.04で機能するかどうかはわかりません。Cyborg Rumble Pad(および汎用USBフラッシュドライブ)でテストしました。

デバイスを接続した直後:

dmesg | grep usb | tail -n 20

私は(おそらく他のものの中で)得る:

[ 2875.790610] usb 2-1.2: new full-speed USB device number 7 using ehci-pci
[ 2875.887485] usb 2-1.2: New USB device found, idVendor=0738, idProduct=cb02
[ 2875.887489] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2875.887490] usb 2-1.2: Product: Cyborg Rumble Pad - PC/Xbox 360
[ 2875.887492] usb 2-1.2: Manufacturer: Saitek
[ 2875.887493] usb 2-1.2: SerialNumber: 0CFE6B97

重要な部分は2-1.2文字列です。USBポートを識別します。幸いなことに、デバイスを別のポートに接続しない限り、変更すべきではないので、文字列を一度だけ取得する必要があります。

次に、適切な場所に移動します。

cd /sys/bus/usb/drivers/usb

ルートとして起動します(例:sudo bash最初):

echo 2-1.2 > unbind ; sleep 3 ; echo 2-1.2 > bind

その結果、ランブルパッドは、プラグを抜き差ししたように再初期化されます。USBフラッシュドライブもテストしました。それ(そのLED)は何も起こらなかったかのように動作しますが、それでも私のKDEは反応し、マウントするかどうかを尋ねます。

デバイスに電力が供給されている間ずっと。電源が不足しているためにモデムがリセットされた場合、この方法は機能しません。



0

usb_storageデバイスがusbモデムの場合、なぜモジュールをアンロードしようとしていますか?

実行sudo lshwして、USBモデムのエントリを見つけます。次のconfiguration:ような行があるはずです(ドライバーは明らかに異なります)。

configuration: ... driver=iwlagn ...

モジュールがロードされていることを確認します(正しいドライバー名で置き換えます):

lsmod | grep iwlagn

それから:

sudo modprobe -r iwlagn && sleep 2 && sudo modprobe iwlagn

sleepデバイスの電源を切るのに時間がかかる場合に備えて、そこに入れるのが好きです。


lshwは、ドライバー usb_storageを使用していることを示しているようです(モデムもディスクとしてマウントされます)。モデム部分の個別のエントリが見つかりません。ドライバーをリロードできるようにプロセスを強制終了するにはどうすればよいですか?
コリー

0

これは「外に出る」ソリューションですが、うまくいくかもしれません。

  • 2番目の、古い、あまり強力ではないPCを入手します。Debianをインストールします。 その上にインストールusbipします。
  • 次に、usbipサーバーにインストールします。
  • モデムを2番目のPCに接続します。usbip2台目のPCに接続されたモデムがサーバーからVHCI経由で到達できるように、両方のマシンで構成します。
  • ssh2番目のPCまたは他のPCで設定すると、そこにリモート接続してコマンドを発行できます。
  • デバイスに障害が発生したら、rebootコマンドを使用してログインし、2台目のPCを再起動します。その後、起動したら、提供されている機能を使用して再接続しusbipます(実際に使用したことはありませんusbip)。これでデバイスがリセットされます。おそらくこれをスクリプト化できます。

0

コマンドラインから任意のUSBデバイスの電源をオフにする最も簡単な方法(つまり、USBへの実際の電源サイクルを使用):

  1. 4ポートDELOCK 87445 USBハブを購入(<DELOCK 87445>のGoogle)
  2. このハードウェアは、hub-ctrl.c(<hub-ctrl.c>のgoogle)と互換性があります。したがって、任意のポートのオン/オフを切り替えることができます。詳細については、http//code.google.com/p/wl500g/source/browse/branches/rt-n/utils/hub-ctrl.c?r = 2235も参照してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.