http://loginroot.com/power-off-and-on-usb-device-in-linux-ubuntu/
There are two methods of doing this. So first method is for kernels after 2.6.32, and second for older ones.
To view kernel version, simply enter:
|
1
2
|
r
generic
|
find Your USB device, no mather what it is USB flash drive, Yubikey, USB disk drive:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
lsusb
Hub
Hub
hub
hub
.
Hub
t
480M
480M
480M
480M
480M
480M
480M
|
Our target is:
|
1
|
.
|
Which is located at 2-1.1 (tree part where device 5 is located)
First method (newer kernel)
To turn it off simply echo address:
|
1
|
unbind
|
here is result from syslog:
|
1
|
Device
|
Unfortunately this device was still visible in lsusb, so I turned off whole usb hub there (2-1), and voila, usb device gone.
To enable it, echo same address to “bind” part, for example:
|
1
|
bind
|
Second method (older kernel)
You need to go to devices:
|
1
|
devices
|
Addressess will be listed similar:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# ls -alh
0
.
.
1.0
1
1.0
1.0
1
1.1
1.0
1.0
1.1
1.5
1.0
usb1
usb2
|
So go to in our example 2-1.1/power (full path /sys/bus/usb/devices2-1.1/power)
|
1
|
power
|
to turn off device:
|
1
|
level
|
to turn on:
|
1
|
level
|
~ $ sudo echo ‘1-1.2’ > /sys/bus/usb/drivers/usb/unbind
-bash: /sys/bus/usb/drivers/usb/unbind: Permission denied
Thanks, finally got it working! :)
Anonymous: your command executes “echo ‘1-1.2′” under sudo, and then tries to write that to /sys/bus/usb/drivers/usb/unbind as the normal user again. Try this: echo ‘1-1.2″ | sudo tee /sys/bus/usb/drivers/usb/unbind
You could also use a switchable USB hub.
Something like this https://www.yepkit.com/products/ykush
but it’s more expensive :)
Smart way of leaving a backlink.
I encourage doing opensource projects :)
Usually the budget depends on what are the requirements. For a simple “faulty” usb emergency device reset I would use my way (I wouldn’t expect something to break, would I?).
But for day to day planned switch off/on I’d consider such device.
Thanks for sharing Your product.
That’s pretty useful thing, it should have more reliable switching capability and it’s more powerful than a server usb port.
You should consider making a bigger hub, as it seems to be possible to use it as a powersource for usb devices (2Amps of current).
For example external usb 2.5 hdd would already take 2 ports, leaving only one free.
Or make an usb controlled power source switcher with relays, it would perfectly go as a combo with this usb hub device :)
Fully agree with you, the best approach depends of the requirements.
Those are cool ideas for improving the product.
Cheers
Pingback: » Linux: Turning off power to usb port. Or turn off power to entire usb subsystem
Pingback: Raspberry Pi + L-02C でバッチリ安定する多機能 LTE ルータをつくったメモ – 怠惰の形而上学