Il motivo per cui la gente pubblica domande come questa è dovuto alla temuta - in effetti " EVIL " - funzione " Auto-Suspend USB ".
La sospensione automatica interrompe l'alimentazione di un dispositivo USB "inattivo" e, a meno che il driver del dispositivo non supporti correttamente questa funzione, il dispositivo può diventare non raggiungibile. Quindi accendere / spegnere una porta USB è un sintomo del problema, non il problema in sé.
Ti mostrerò come disabilitare GLOBALMENTE la sospensione automatica, annullando la necessità di attivare e disattivare manualmente le porte USB:
Risposta breve:
NON è necessario modificare " autosuspend_delay_ms " singolarmente: la sospensione automatica USB può essere disabilitata a livello globale e PERSISTENTEMENTE utilizzando i seguenti comandi:
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/&usbcore.autosuspend=-1 /' /etc/default/grub
update-grub
systemctl reboot
Un Ubuntu 18.04 screen-grab segue alla fine della "risposta Lunghi" che illustra come sono stati raggiunti i miei risultati.
Risposta lunga:
È vero che la documentazione del kernel di gestione dell'alimentazione USB afferma che l'autosuspend deve essere deprecato e al suo posto " autosuspend_delay_ms " utilizzato per disabilitare l'autosuspend USB:
"In 2.6.38 the "autosuspend" file will be deprecated
and replaced by the "autosuspend_delay_ms" file."
TUTTAVIA i miei test rivelano che l'impostazione usbcore.autosuspend=-1
in / etc / default / grub come di seguito può essere utilizzata come interruttore GLOBAL per la funzionalità di sospensione automatica USB - NON è necessario modificare singoli file " autosuspend_delay_ms ".
Lo stesso documento collegato sopra afferma che un valore di "0" è ABILITATO e un valore negativo è DISATTIVATO :
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.
Nella schermata annotata di Ubuntu 18.04 riportata di seguito che illustra come i miei risultati sono stati raggiunti (e riproducibili), si noti che il valore predefinito è "0" ( abilitato ) in autosuspend_delay_ms .
Quindi notare che dopo aver impostato SOLOusbcore.autosuspend=-1
in Grub, questi valori sono ora negativi ( disabilitati ) dopo il riavvio. Questo mi risparmierà il fastidio di modificare i singoli valori e ora è possibile disabilitare lo script di disabilitazione della sospensione automatica USB.
Spero che questo renda la disabilitazione della sospensione automatica USB un po 'più facile e più scriptabile-
power/level
è ora obsoleto; usapower/control
invece . (power/wakeup
va bene.) Inoltre, accetta solo "auto" e "on", non "sospendere" più. "auto" è abbastanza intelligente, e se l'alimentazione non viene spenta mentre è inattivo, è colpa del dispositivo. Ad ogni modo non è possibile spegnere manualmente. Per di più, vedi la risposta di seguito da tlwhitec e il documento del kernel: kernel.org/doc/Documentation/usb/power-management.txt