我有一个USB灯,我专门购买了USB灯,以便在特定时间以编程方式将其关闭,因此我需要断开USB端口的电源。
我相信我在usb6有一个usb-hub。灯泡连接到此集线器中的端口之一:
#myhost$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...
...
Bus 008 Device 006: ID 050d:0234 Belkin Components F5U234 USB 2.0 4-Port Hub
这是我尝试过的:
这里有两个解决方案,第一个建议:
echo disabled > /sys/bus/usb/devices/usb1/power/wakeup
echo suspend > /sys/bus/usb/devices/usb1/power/level # turn off
但是write error: Invalid argument
当我尝试写给我时/sys/bus/usb/devices/usb1/power/level
:
$sudo bash -c 'echo disabled > /sys/bus/usb/devices/usb6/power/wakeup'
$echo suspend|sudo tee /sys/bus/usb/devices/usb6/power/level suspend
tee: /sys/bus/usb/devices/usb6/power/level: Invalid argument
$sudo bash -c 'echo suspend> /sys/bus/usb/devices/usb6/power/level'bash: line 0: echo: write error: Invalid argument
第二种解决方案:
sudo bash -c 'echo 0 > /sys/bus/usb/devices/usb6/power/autosuspend_delay_ms; echo auto > /sys/bus/usb/devices/usb6/power/control'
确实会关闭USB集线器设备的电源。
我也试图遵循此:
但是输出lsusb -t
只是挂起:
$lsusb -t
4-1:0.0: No such file or directory
4-1:0.1: No such file or directory
^C
这使我无法使用此方法来获得“ 2-1.1”部分:
echo '2-1.1' > /sys/bus/usb/drivers/usb/unbind
是否有获取此信息的替代方法?
或者,是否有办法切断整个USB子系统的电源?像modprobe -r usb_etc
什么?
我的内核是:
$uname -r
3.2.0-4-amd64
lsusb -t
调用,但在必须调试的时间内没有发现任何有用的信息。老实说,我现在没有时间在lsub中发现错误,而且我现在甚至无法重现它,因此,这可能取决于所插入的设备。我必须等待回家才能尝试复制它。