GNU/Linux >> Tutoriales Linux >  >> Linux

Linux USB:¿encender y apagar la alimentación?

La interacción usbfs parece haber cambiado varias veces desde que se respondió originalmente esta pregunta. Entonces, así es como hago un ciclo de encendido del puerto del concentrador en Ubuntu Oneiric Ocelot desde un shell Bash.

Busque el bus y el número de dispositivo:

sudo lsusb -v|less

Ubique el dispositivo en la jerarquía de puertos de bus/hub utilizando el bus y el número de dispositivo:

sudo lsusb -t|less

La sintaxis parece ser 'bus-port.port.port.port.port...' Por ejemplo, mi mouse está conectado a un concentrador externo que se conecta al concentrador de mi computadora que se conecta internamente a un concentrador raíz:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 1: Dev 3, If 0, Class=hub, Driver=hub/3p, 480M
            |__ Port 1: Dev 6, If 0, Class=HID, Driver=usbhid, 1.5M

Entonces, '2-1.1.1' en el caso anterior. Finalmente, cicle la energía del puerto:

echo '2-1.1.1'|sudo tee /sys/bus/usb/drivers/usb/unbind
sleep 1
echo '2-1.1.1'|sudo tee /sys/bus/usb/drivers/usb/bind

No he conectado un analizador de protocolos para ver lo que realmente sucede en el bus, pero sé que la luz de mi mouse se apaga cuando lo desenlazo. Supongo que en una capa inferior esto está interactuando con el controlador de host EHCI para apagar el puerto. Esto es particularmente útil para dispositivos integrados, como cámaras web UVC, que nunca parecen funcionar correctamente y, de lo contrario, requerirían un reinicio del sistema para restablecerse.

Véase también el udevadm comando.


Hay una entrada de sistema para esto en Linux. De Documentación/usb/power-management.txt:

potencia/nivel

This file contains one of three words: "on", "auto",
or "suspend".  You can write those words to the file
to change the device's setting.

"on" means that the device should be resumed and
autosuspend is not allowed.  (Of course, system
suspends are still allowed.)

"auto" is the normal state in which the kernel is
allowed to autosuspend and autoresume the device.

"suspend" means that the device should remain
suspended, and autoresume is not allowed.  (But remote
wakeup may still be allowed, since it is controlled
separately by the power/wakeup attribute.)

Algo como:echo on > /sys/bus/usb/devices/usb5/power/level

Es posible que también deba jugar con la configuración de suspensión automática. Sin decirle al núcleo que deje de intentarlo, puede suspender el puerto automáticamente.

¡Buena suerte!


Linux
  1. Ver comandos y tareas con el comando watch de Linux

  2. Introducción a los comandos chgrp y newgrp de Linux

  3. El comando Sed de Linux:uso y ejemplos

  4. Cómo crear un alias y usar el comando Alias ​​en Linux

  5. Encuentra los archivos y directorios más grandes en Linux

Linux en el mainframe:antes y ahora

Lo bueno, lo malo y lo feo de Linux en 2014

¿Cuál es la diferencia entre Linux y Unix?

Cómo hacer un USB de arranque múltiple en Linux y Windows

Cómo encontrar el número de puerto de un servicio en Linux

Cómo cambiar el puerto SSH predeterminado en Linux [de forma adecuada y segura]