Tengo una lámpara usb que compré específicamente para apagarla mediante programación en un momento determinado, por lo que necesito quitar la alimentación de su puerto usb.
Creo que tengo un usb-hub en usb6. La lámpara está conectada a uno de los puertos en este concentrador:
#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
Esto es lo que he intentado:
Aquí hay dos soluciones , la primera sugiere:
echo disabled > /sys/bus/usb/devices/usb1/power/wakeup
echo suspend > /sys/bus/usb/devices/usb1/power/level # turn off
pero write error: Invalid argument
cuando intento escribir a /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
La segunda solución:
sudo bash -c 'echo 0 > /sys/bus/usb/devices/usb6/power/autosuspend_delay_ms; echo auto > /sys/bus/usb/devices/usb6/power/control'
que apaga el dispositivo usb-hub.
También estaba tratando de seguir esto :
Pero la salida de lsusb -t
simplemente se cuelga:
$lsusb -t
4-1:0.0: No such file or directory
4-1:0.1: No such file or directory
^C
Lo que me impide usar este método para obtener la parte '2-1.1' para esto:
echo '2-1.1' > /sys/bus/usb/drivers/usb/unbind
¿Hay alguna forma alternativa de obtener esta información?
Alternativamente, ¿hay alguna forma de desconectar la alimentación de todo el subsistema usb? Algo como modprobe -r usb_etc
?
Mi núcleo es:
$uname -r
3.2.0-4-amd64
lsusb -t
llamada y no encontré nada útil en el tiempo que tuve que depurarla. Sinceramente, no tengo tiempo en este momento para encontrar errores en lsub, y ni siquiera puedo reproducirlo en este momento, por lo que probablemente dependa de los dispositivos que estén conectados. Tendré que esperar para llegar a casa para intentar reproducirlo