web-dev-qa-db-ja.com

LinuxでUSBデバイスを外さずにリセットするにはどうすればよいですか?

USBデバイスをリセットする必要が時々あるかもしれませんが、デバイス自体を外してプラグインせずにソフトウェアでリセットを実行する方法はありますか?

より具体的には、guvcaptureの設定でプレイしすぎると混乱し、正常に戻るにはリセットが必要なウェブカメラがあります。

7
Grumbel

すべてのデバイスをリセットするために Benjamin Closeのresetusbプログラム を試すことができます。使用可能なバイナリはありませんが、コンパイルはかなり簡単です。ソースコードをresetusb.cとして保存し、次を実行します。

gcc -lusb resetusb.c -o resetusb

これで、ツールをresetusbとして実行できます。または、@ unhammerは Alan Sternの単一デバイスバージョン をポイントします(さらにいくつかの 使用方法のヒント )。

一部の人々も運が良かった 関連するモジュールを削除してmodprobe- ingするだけ

modprobe -vr ehci_hcd
modprobe -v ehci_hcd

(もちろんこれをスクリプト化できます)

一部のディストリビューションには、USBサブシステムを再起動するための独自のツールがある場合もあります。 Mandrakeには/etc/init.d/usb があるようです。

9
supervacuo

リセットしたいとしましょう/dev/sdc

# udevadm info -q all /dev/sdc | grep DEVPATH
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1.4/2-1.4:1.0/Host2/target2:0:0/2:0:0:0/block/sdc

私は取ります 2-1.4上記(あなたのものは2-1-私のデバイスはハブに接続されています)、次の操作を行います:

# echo 2-1.4 > /sys/bus/usb/drivers/usb/unbind
# echo 2-1.4 > /sys/bus/usb/drivers/usb/bind
5
Tom Hale

ハードウェアアブストラクションレイヤーを再起動できます:Sudo /etc/init.d/hal restart

1
Nerdfest