У меня есть USB-лампа, которую я специально купил, чтобы программно выключить ее в определенное время, поэтому мне нужно отключить питание USB-порта.
Я думаю, что у меня есть USB-хаб на USB6. Лампа подключена к одному из портов в этом концентраторе:
#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, и я даже не могу сейчас их воспроизвести, так что, вероятно, это зависит от подключенных устройств. Мне придется подождать, чтобы вернуться домой, чтобы попытаться воспроизведите это.