linuxでのusbの抜き差しをコマンドで実施する

linuxもUSBを引っこ抜いて、再度指すと、再認識してくれる。

しかし、linuxが遠方にあり、引っこ抜いて指し直しするのが、難しい事がある。

そういうときは、コマンドでそれを実施する。

http://server-setting.info/blog/usb-reset-for-command.html
に答えが書いてあるが、必要なところだけを自分のメモに残しておく。

まずは、lsusb -tを実行する。

root@OpenWrt:~# lsusb -t
 /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
     |_ Port 1: Dev 4, If 0, Class=Vendor Specific Class, Driver=option, 12M     |_ Port 1: Dev 4, If 1, Class=Vendor Specific Class, Driver=option, 12M
     |_ Port 1: Dev 4, If 2, Class=Vendor Specific Class, Driver=option, 12M     |_ Port 1: Dev 4, If 3, Class=Mass Storage, Driver=, 12M
 /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M

Bus 02とPort 1があります。
このバスとポートの番号を使用していく。この値はUSBの差し込み場所を変えると変わるので、注意が必要。
バスが2、ポートが2のこの配下のUSBポートを抜き差ししたいので、 次は下記のコマンドを実施する。

echo -n "2-1" > /sys/bus/usb/drivers/usb/unbind

これで、USBが認識しなくなった。
lsusb -tを実施し、確認してみる。

次に、再認識させるために、下記のコマンドを実施。
取り外しは、unbindで、取り付けはbindなので。

echo -n "2-1" > /sys/bus/usb/drivers/usb/bind

lsusb -tを実施し、認識してる事を確認する。

この取り外し、の手続きをする前に、他のサービスで掴んでない事を確認した方が良い。
直に手でUSBを外した場合でも、コマンドでunbindで行った場合でも、他のサービスが掴んでいるまま、外すとlinuxが落ちている事が、多々あった。リブートしてくれていればまだ良いが、フリーズ状態だと、結局マシンのところに行くしかない。

コメントする

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload the CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください