Причина , почему люди размещать такие вопросы, как это связано с dreaded- в самом деле « ЗЛО „- USB Auto-Приостановить“ функция ».
Автоматическая приостановка отключает питание «незанятого» USB-устройства, и если драйвер устройства не поддерживает эту функцию правильно, устройство может стать недоступным. Таким образом, включение / выключение USB-порта является симптомом проблемы, а не самой проблемой.
Я покажу вам, как ГЛОБАЛЬНО отключить авто-приостановку, избавляя от необходимости вручную включать и выключать порты USB:
Короткий ответ:
Вам НЕ нужно редактировать « autosuspend_delay_ms » по отдельности: USB autosuspend можно отключить глобально и ПРОСТО, используя следующие команды:
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/&usbcore.autosuspend=-1 /' /etc/default/grub
update-grub
systemctl reboot
В конце «Длинного ответа» следует скриншот из Ubuntu 18.04, показывающий, как были достигнуты мои результаты.
Длинный ответ:
Это правда, что в документации по ядру управления питанием USB указано, что autosuspend не рекомендуется использовать и вместо нее используется autosuspend_delay_ms, которая используется для отключения autosuspend USB:
"In 2.6.38 the "autosuspend" file will be deprecated
and replaced by the "autosuspend_delay_ms" file."
ОДНАКО мое тестирование показало, что настройка usbcore.autosuspend=-1
в / etc / default / grub, как показано ниже, может использоваться в качестве GLOBAL- переключателя для функции автоподключения USB - вам НЕ нужно редактировать отдельные файлы " autosuspend_delay_ms ".
В том же документе, ссылка на который приведена выше, указано, что значение «0» ВКЛЮЧЕНО, а отрицательное значение ОТКЛЮЧЕНО :
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.
На аннотированном скриншоте Ubuntu 18.04 ниже, иллюстрирующем, как мои результаты были достигнуты (и воспроизводимы), пожалуйста, отметьте, что по умолчанию «0» ( включено ) в autosuspend_delay_ms .
Затем обратите внимание, что после ТОЛЬКО настройки usbcore.autosuspend=-1
в Grub, эти значения теперь отрицательны ( отключены ) после перезагрузки. Это избавит меня от необходимости редактировать отдельные значения и теперь может отключить автоматическое отключение USB.
Надеюсь, что это делает отключение USB-автоподвески немного проще и удобнее для написания сценариев.
power/level
устарел; используйтеpower/control
вместо этого . (power/wakeup
все в порядке.) Кроме того, он принимает только «auto» и «on», а не «suspend» больше. «Авто» достаточно умный, и если питание не отключается во время простоя, это ошибка устройства. В любом случае, вы не можете выключить питание вручную. Более подробно см ответа ниже по tlwhitec и док в ядре: kernel.org/doc/Documentation/usb/power-management.txt