La razón por la cual la gente publica preguntas como esta se debe a la temida " EVIL " - USB "Auto-Suspend" feature ".
La suspensión automática reduce la potencia de un dispositivo USB "inactivo" y, a menos que el controlador del dispositivo admita esta función correctamente, el dispositivo puede volverse no contactable. Por lo tanto, encender / apagar un puerto USB es un síntoma del problema, no el problema en sí mismo.
Te mostraré cómo GLOBALMENTE deshabilitar la suspensión automática, negando la necesidad de activar y desactivar manualmente los puertos USB:
Respuesta corta:
NO necesita editar " autosuspend_delay_ms " individualmente: la suspensión automática de USB puede deshabilitarse global y PERSISTENTEMENTE usando los siguientes comandos:
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/&usbcore.autosuspend=-1 /' /etc/default/grub
update-grub
systemctl reboot
Una captura de pantalla de Ubuntu 18.04 sigue al final de la "Respuesta larga" que ilustra cómo se lograron mis resultados.
Respuesta larga:
Es cierto que la documentación del kernel de administración de energía USB indica que la suspensión automática se debe dejar de usar y en su lugar " autosuspend_delay_ms " se usa para desactivar la suspensión automática de USB:
"In 2.6.38 the "autosuspend" file will be deprecated
and replaced by the "autosuspend_delay_ms" file."
SIN EMBARGO, mis pruebas revelan que la configuración usbcore.autosuspend=-1
en / etc / default / grub, como se muestra a continuación, se puede usar como una palanca GLOBAL para la funcionalidad de autosuspend USB; NO es necesario editar " autosuspend_delay_ms " individuales archivos ".
El mismo documento vinculado anteriormente establece que un valor de "0" está HABILITADO y un valor negativo está DESHABILITADO :
power/autosuspend_delay_ms
<snip> 0 means to autosuspend
as soon as the device becomes idle, and negative
values mean never to autosuspend. You can write a
number to the file to change the autosuspend
idle-delay time.
En la captura de pantalla de Ubuntu 18.04 anotada a continuación que ilustra cómo se lograron mis resultados (y reproducibles), observe que el valor predeterminado es "0" ( habilitado ) en autosuspend_delay_ms .
Luego, tenga en cuenta que después de SOLO configurar usbcore.autosuspend=-1
en Grub, estos valores ahora son negativos ( deshabilitados ) después del reinicio. Esto me ahorrará la molestia de editar valores individuales y ahora puede deshabilitar la secuencia de comandos para desactivar la suspensión automática de USB.
Espero que esto haga que deshabilitar la suspensión automática de USB sea un poco más fácil y más programable.
power/level
está en desuso ahora; utilizarpower/control
en su lugar . (power/wakeup
está bien.) Además, solo acepta "auto" y "on", no "suspender" más. "auto" es lo suficientemente inteligente, y si la alimentación no se apaga mientras está inactiva, es culpa del dispositivo. De todos modos, no puede apagar la alimentación manualmente. Para obtener más información, consulte la respuesta a continuación de tlwhitec y el documento del kernel: kernel.org/doc/Documentation/usb/power-management.txt