Причина, через яку люди ставлять такі запитання, пов’язана з жахливою справді " EVIL " - функцією автоматичного призупинення USB ".
Автоматично призупиняє вимкнення живлення до "простоючого" USB-пристрою, і якщо драйвер пристрою не підтримує цю функцію правильно, пристрій може стати незмінним. Отже, включення / вимкнення USB-порту є симптомом проблеми, а не проблемою.
Я покажу вам, як ГЛОБАЛЬНО відключити автоматичне призупинення, заперечуючи необхідність вмикання та вимикання USB-портів вручну:
Коротка відповідь:
НЕ потрібно редагувати " autosuspend_delay_ms " окремо: Автозапуск USB може бути відключений у всьому світі та ОСОБЛИВО за допомогою наступних команд:
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/&usbcore.autosuspend=-1 /' /etc/default/grub
update-grub
systemctl reboot
У кінці "Довгої відповіді" слідує знімок екрана Ubuntu 18.04, який ілюструє досягнення моїх результатів.
Довга відповідь:
Це правда, що документація ядра управління живленням USB заявляє, що автоматична залежність має бути застарілою, а на її місці " autosuspend_delay_ms " використовується для відключення автоматичного автозалежності 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» ВКЛЮЧЕНИЙ і негативне значення DISABLED :
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" досить розумний, і якщо живлення не вимикається в режимі очікування, це несправність пристрою. У будь-якому разі ви не можете вимкнути живлення вручну. Докладніше див . Відповідь нижче від tlwhitec та doc ядра: kernel.org/doc/Documentation/usb/power-management.txt