Mam lampę USB, którą kupiłem specjalnie w celu programowego wyłączenia w określonym czasie, dlatego muszę odłączyć zasilanie od portu USB.
Wydaje mi się, że mam hub usb w usb6. Lampa jest podłączona do jednego z portów w tym koncentratorze:
#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
Oto, co próbowałem:
Dwa rozwiązania są tutaj pierwszy proponuje:
echo disabled > /sys/bus/usb/devices/usb1/power/wakeup
echo suspend > /sys/bus/usb/devices/usb1/power/level # turn off
ale dostaję, write error: Invalid argument
gdy próbuję napisać do /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
Drugie rozwiązanie:
sudo bash -c 'echo 0 > /sys/bus/usb/devices/usb6/power/autosuspend_delay_ms; echo auto > /sys/bus/usb/devices/usb6/power/control'
który wyłącza zasilanie urządzenia USB-Hub.
Próbowałem również śledzić to :
Ale wynik po lsusb -t
prostu zawiesza się:
$lsusb -t
4-1:0.0: No such file or directory
4-1:0.1: No such file or directory
^C
Co uniemożliwia mi użycie tej metody, aby uzyskać część „2-1.1”:
echo '2-1.1' > /sys/bus/usb/drivers/usb/unbind
Czy istnieje alternatywny sposób uzyskania tych informacji?
Alternatywnie, czy istnieje sposób na odcięcie zasilania całego podsystemu USB? Coś takiego modprobe -r usb_etc
?
Moje jądro to:
$uname -r
3.2.0-4-amd64
lsusb -t
połączenie i nie znalazłem nic przydatnego w czasie, kiedy musiałem go debugować. Naprawdę nie mam teraz czasu na znalezienie błędów w lsub i nie mogę nawet teraz odtworzyć tego, więc prawdopodobnie zależy to od podłączonych urządzeń. Będę musiał poczekać, aż wrócę do domu, aby spróbować powielać to.