linuxでのusbの抜き差しをコマンドで実施する
2016年3月7日
2020年3月15日
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が落ちている事が、多々あった。リブートしてくれていればまだ良いが、フリーズ状態だと、結局マシンのところに行くしかない。