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

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

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

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

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

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

を実施して、バスとポート番号を確認する。このバスとポート番号はその都度変わってしまうようだ。
USBの差し位置が同じでも、変わってしまうから、コマンド一つで出来る訳じゃ無い。

バスが2、ポートが1と分かるので、次は下記のコマンドを実施する。

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

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

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

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

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

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

 

参考になった方、誤りを見つけた等、コメントを残してくれるとうれしいです。

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です