Bagaimana saya bisa menonaktifkan USB autosuspend untuk perangkat tertentu?

18

Ini terkait dengan masalah yang dibahas dalam Mouse nirkabel sementara membeku (tidur) pada daya baterai .

Rangkuman: mouse membeku saat beroperasi dengan baterai karena ditangguhkan secara otomatis setelah waktu tertentu dan membutuhkan lebih banyak waktu untuk bangun.

Menonaktifkan autosuspend USB untuk penerima mouse di PowerTOP adalah solusi sementara, tetapi tidak selamat dari reboot.

Bagaimana saya bisa secara permanen menonaktifkan USB autosuspend hanya untuk satu perangkat tertentu ?

Solusi yang tidak melibatkan menginstal paket tambahan lebih disukai (setelah semua, saya ingin menonaktifkan sesuatu), tetapi tidak diperlukan. Menghapus PowerTOP (yang tampaknya menjadi solusi bagi sebagian orang) bukan yang saya inginkan - Saya suka PowerTOP ...

Dan menginstal laptop-mode-toolsuntuk menonaktifkan autosuspend USB sama sekali bukan yang saya inginkan, jadi, pertanyaan baru.

Juga: Apakah ini akan mempengaruhi baterai notebook saya? Penerima pemersatu Logitech untuk mouse tetap terhubung setiap saat, jadi jika hal itu mencegah terjadinya autosuspend untuk semua perangkat yang mungkin buruk.

black_puppydog
sumber

Jawaban:

25

Ubuntu 16.04 (Xenial Xerus)

sudo apt install tlp
sudo lsusb

Temukan id input perangkat USB - seharusnya terlihat seperti 1234:5678.

Edit file sudo vi /etc/default/tlpdan tambahkan ID input perangkat Anda USB_BLACKLISTdengan menambahkan baris berikut dengan id input perangkat Anda seperti:

USB_BLACKLIST="1234:5678"

Ubuntu 14.04 (Tahr Trusty)

Seperti yang disebutkan di sini di hecticgeek.com , triknya terdiri dari dua bagian:

Menggunakan lsusbuntuk memastikan ID perangkat perangkat USB yang ingin Anda nonaktifkan untuk belanja otomatis.

Dan kemudian menambahkannya ke AUTOSUSPEND_USBID_BLACKLISTdalam file konfigurasi /etc/laptop-mode/conf.d/runtime-pm.conf( usb-autosuspend.confhingga Ubuntu 14.04) (detail juga didokumentasikan dengan baik di sana).

dlukes
sumber
Sebenarnya mouse saya hilang / dicuri tak lama setelah itu, jadi saya tidak bisa menguji ini. Tetapi menilai dari .conffile ini adalah persis hal yang saya harapkan :)
black_puppydog
Sepertinya AUTOSUSPEND_RUNTIME_DEVID_BLACKLISTsekarang (Ubuntu 17.04)
partofthething
2
Laptop Dell Dell dengan Ubuntu 16.04 LTS telah tlpdiinstal daripada laptop-mode-tools, jadi jika Anda ingin memasukkan perangkat USB dari daftar hitam ke mode autosuspend pada laptop ini, atur USB_BLACKLISTpengaturan dalam file /etc/default/tlp- perubahannya segera terjadi
Stuart Caie
HID sudah masuk daftar hitam dari tlp: / etc / default / tlp # Catatan: perangkat input (usbhid) dikecualikan secara otomatis (lihat di bawah) # USB_BLACKLIST = "045e: 07a5"
Tom
Dokumentasi TLP menyebutkan bahwa ini adalah manajemen daya untuk laptop (lebih khusus ThinkPad). Apakah ini berfungsi untuk PC desktop?
Konrad Rudolph
7

Saya memiliki masalah yang sama dengan PC pada Avocent KVM , di mana laptop-mode-tools tidak diinstal (dan tidak ingin menyelesaikannya dengan cara apapun). Dalam kasus saya, pengeluaran otomatis KVM membuat keyboard dan mouse berperilaku tidak menentu (setelah beberapa detik menganggur, mereka akan menangguhkan dan kehilangan data input untuk sementara waktu sampai cukup klik dan getar membangunkan mereka).

Ketika saya menjalankan PowerTOP dan mematikan autosuspend USB untuk Avocent, PowerTOP memberi tahu saya perintah untuk menonaktifkannya dari baris perintah adalah:

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

Bit '3-10' akan berbeda pada sistem yang berbeda. Saya tidak yakin bagaimana menentukan itu selain menjalankan PowerTOP, tetapi mungkin ada beberapa cara.

Sebagai gantinya, saya menggunakan aturan udev untuk mencocokkan id produk perangkat saya:

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"

Untuk mendapatkan informasi udev yang tepat, saya menjalankan:

udevadm info -a --path /sys/bus/usb/devices/N-N
Bryce
sumber
6

Dalam /etc/laptop-mode/conf.d/usb-autosuspend.confAnda akan menemukan:

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

Anda harus mengubahnya ke CONTROL_USB_AUTOSUSPEND="0".

Ini secara otomatis akan membuat perangkat USB mana pun memiliki nilai "aktif" /sys/bus/usb/devices/"DEVICE ID"/power/control. Ini akan membuat nilai file autosuspend tidak aktif:

$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend
2
$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend_delay_ms
2000
Mahmoud Mubarak
sumber
5

Opsi daya untuk perangkat USB sedang aktif /sys/bus/usb/devices/n-n/power. Sayangnya, apa nn untuk perangkat tertentu membutuhkan beberapa pencarian untuk mencari tahu, jadi saya pikir ini akan membuktikan batu sandungan ketika datang untuk memiliki skrip yang secara otomatis tidak

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

untuk mematikan belanja otomatis pada perangkat itu. The magic nn sebenarnya muncul di output dari

udevadm info --export-db

jadi saya pikir udev akan menjadi teman Anda di sini; beberapa jenis skrip udev dikunci pada parameter yang mengidentifikasi mouse Anda, kemudian menjalankan skrip yang menggemakan -1 ke dalam file yang relevan.

Alex Dekker
sumber
4
Apakah ini akan selamat dari reboot? bergema ke / sys tampaknya tidak permanen, bukan?
black_puppydog
2
Letakkan perintah di /etc/rc.local Anda sebelum baris 'exit 0'
Bryce
4

Saya membuat aturan udev saya sendiri :

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

Di Ubuntu 16.04 LTS (Xenial Xerus), saya menemukan solusi di /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

Awalnya diatur 2untuk saya. 30 menit jauh lebih masuk akal.

Setelah perubahan, lakukan:

sudo service laptop-mode restart

Saya masih tidak yakin cara menonaktifkannya sepenuhnya, tetapi ini baik untuk saya sekarang.

Berto
sumber