Як я можу відключити автоматичне використання USB для певного пристрою?


18

Це пов’язано з проблемою, обговорюваною в бездротовій миші, тимчасово замикає (спить) від заряду акумулятора .

Підсумок: миша замерзає під час роботи від акумулятора, оскільки вона автоматично зависає через певний час і їй потрібно більше часу, щоб прокинутися.

Вимкнення автозапчастини USB для приймача миші в PowerTOP є тимчасовим рішенням, але воно не переживе перезавантаження.

Як я можу назавжди вимкнути автозалежність USB лише для одного конкретного пристрою?

Краще рішення, яке не передбачає встановлення додаткових пакетів (адже я хочу щось відключити ), але це не потрібно. Видалення PowerTOP (який, здається, є рішенням для деяких) - не те, що я хочу - мені подобається PowerTOP ...

І встановлення laptop-mode-toolsдля відключення автоматичного автозапчастини USB теж не те, що я хочу, тому нове питання.

Також: Це вплине на акумулятор мого ноутбука? Об'єднувальний приймач Logitech для миші залишається підключеним весь час, тому, якщо це не запобіжить автоматичному сприйняттю для всіх пристроїв, це, мабуть, було б погано.

Відповіді:


25

Ubuntu 16.04 (Xenial Xerus)

sudo apt install tlp
sudo lsusb

Знайдіть вхідний ідентифікатор USB-пристрою - він повинен виглядати так 1234:5678.

Відредагуйте файл sudo vi /etc/default/tlpта додайте вхідний ідентифікатор вашого пристрою, USB_BLACKLISTдодавши наступний рядок із вхідним ідентифікатором пристрою таким чином:

USB_BLACKLIST="1234:5678"

Ubuntu 14.04 (Trusty Tahr)

Як згадувалося тут на hecticgeek.com , трюк складається з двох частин:

Використовується lsusbдля встановлення ідентифікаторів пристроїв USB-пристроїв, для яких ви хочете відключити автоматичне використання.

А потім додати їх AUTOSUSPEND_USBID_BLACKLISTв /etc/laptop-mode/conf.d/runtime-pm.conf( usb-autosuspend.confфайл конфігурації до Ubuntu 14.04) (деталі добре задокументовані там, а).


Насправді миша втратилась / вкралась незабаром після цього, тому я не можу цього перевірити. Але судячи з .confфайлу, це саме та річ, на яку я сподівався :)
black_puppydog

Схоже , це в AUTOSUSPEND_RUNTIME_DEVID_BLACKLISTданий час (Ubuntu 17.04)
partofthething

2
Ноутбуки Ubuntu Dell з Ubuntu 16.04 LTS tlpвстановлені, а не laptop-mode-toolsтому, якщо ви хочете ввести в чорний список USB-пристрої від переходу в режим автоматичного розмикання на цих ноутбуках, встановіть USB_BLACKLISTу файлі налаштування /etc/default/tlp- зміни відбудуться негайно
Stuart Caie

HIDs вже в чорний список з TLP: / і т.д. / по замовчуванням / TLP # Примітка: пристрої введення (usbhid) автоматично виключаються (дивись нижче) # USB_BLACKLIST = "045e: 07a5"
Том

У документації TLP зазначається, що це управління живленням для ноутбуків (точніше ThinkPad). Чи працює це на настільних ПК?
Конрад Рудольф

7

У мене була схожа проблема з ПК на комп'ютері Avocent KVM , де інструменти в режимі ноутбука не були встановлені (і не хотілося вирішити це таким чином ні в якому разі). У моєму випадку автоматичне зависання KVM змусило клавіатуру та мишу поводитися нерівномірно (через кілька секунд в режимі очікування вони призупинять і втрачають вхідні дані на деякий час, поки не прокинеться їх достатня кількість клацань і тремтінь).

Коли я запустив PowerTOP і відключив автоматичну автозалежність USB для Avocent, PowerTOP сказав мені, що команда відключити його з командного рядка:

echo 'on' > '/sys/bus/usb/devices/3-10/power/control'

Біт '3-10' буде різним у різних системах. Я не впевнений, як визначити це, крім запуску PowerTOP, але, мабуть, є якийсь спосіб.

Натомість я використав правило udev для відповідності ідентифікатора продукту свого пристрою:

trent + 14.04: /etc/udev/rules.d$ cat 10-usb-avocent-kvm-pm.rules

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{idProduct}=="0013", ATTR{product}=="SC Secure KVM", TEST=="power/control", ATTR{power/control}:="on"

Щоб отримати належну інформацію про udev, я побіг:

udevadm info -a --path /sys/bus/usb/devices/N-N

6

У /etc/laptop-mode/conf.d/usb-autosuspend.confви знайдете:

# Enable USB autosuspend feature?
# Set to 0 to disable
CONTROL_USB_AUTOSUSPEND="auto"

Ви повинні змінити його на CONTROL_USB_AUTOSUSPEND="0".

Це автоматично призведе до того, що будь-який USB-пристрій має значення "включений" в /sys/bus/usb/devices/"DEVICE ID"/power/control. Це зробить значення файлів автоматичного розміщення неактивним:

$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend
2
$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend_delay_ms
2000

5

Параметри живлення для USB-пристрою ввімкнено /sys/bus/usb/devices/n-n/power. На жаль, те, що nn для даного пристрою, потребує певного пошуку, тому я думаю, що це стане каменем спотикання, коли справа доходить до того, що сценарій автоматично виконує

echo -1 > /sys/bus/usb/devices/3-2/power/autosuspend

щоб вимкнути автозалежність на цьому пристрої. Чарівний nn насправді з'являється на виході

udevadm info --export-db

тому я думаю, що удев буде твоїм другом тут; якийсь скрипт udev, введений на параметр, який ідентифікує вашу мишу, а потім запускає сценарій, який повторюється -1 у відповідному файлі.


4
Чи переживе це перезавантаження? ехо в / sys, здається, не є постійним, чи не так?
black_puppydog

2
Поставте команду у /etc/rc.local перед рядком "вихід 0"
Брайс

4

Я створив своє власне правило udev :

ACTION=="add", ATTR{idVendor}=="0cf3", ATTR{idProduct}=="3004", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"

2

У Ubuntu 16.04 LTS (Xenial Xerus) я знайшов рішення в /etc/laptop-mode/conf.d/runtime-pm.conf:

# Auto-Suspend timeout in seconds
# Number of seconds after which the USB devices should suspend
AUTOSUSPEND_TIMEOUT=1800

Спочатку він був призначений 2для мене. 30 хвилин набагато розумніше.

Після зміни зробіть:

sudo service laptop-mode restart

Я досі не впевнений, як повністю відключити це, але зараз це добре для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.