Làm cách nào tôi có thể tắt USB autosuspend cho một thiết bị cụ thể?


18

Điều này có liên quan đến vấn đề được thảo luận trong Chuột không dây tạm thời đóng băng (ngủ) trên nguồn pin .

Tóm tắt: chuột đóng băng khi hoạt động bằng pin vì nó được tự động lưu sau một thời gian nhất định và cần thêm thời gian để thức dậy.

Vô hiệu hóa USB autosuspend cho máy thu của chuột trong PowerTOP là một giải pháp tạm thời, nhưng nó không tồn tại trong quá trình khởi động lại.

Làm cách nào tôi có thể vô hiệu hóa vĩnh viễn USB autosuspend chỉ cho một thiết bị cụ thể ?

Một giải pháp không liên quan đến việc cài đặt các gói bổ sung được ưu tiên (sau tất cả, tôi muốn vô hiệu hóa một cái gì đó), nhưng nó không bắt buộc. Xóa PowerTOP (dường như là một giải pháp cho một số người) không phải là điều tôi muốn - tôi thích PowerTOP ...

Và cài đặt laptop-mode-toolsđể vô hiệu hóa USB autosuspend hoàn toàn không phải là điều tôi muốn, do đó, câu hỏi mới.

Ngoài ra: Điều này sẽ ảnh hưởng đến pin của máy tính xách tay của tôi? Bộ thu hợp nhất Logitech cho chuột vẫn được kết nối mọi lúc, vì vậy nếu điều đó ngăn việc tự động sửa lỗi xảy ra đối với tất cả các thiết bị có thể sẽ xấu.

Câu trả lời:


25

Ubuntu 16.04 (Xenial Xerus)

sudo apt install tlp
sudo lsusb

Tìm id đầu vào của thiết bị USB - nó sẽ trông như thế 1234:5678.

Chỉnh sửa tệp sudo vi /etc/default/tlpvà thêm ID đầu vào của thiết bị vào USB_BLACKLISTbằng cách thêm dòng sau vào id đầu vào của thiết bị như sau:

USB_BLACKLIST="1234:5678"

Ubuntu 14.04 (Trusty Tahr)

Như đã đề cập ở đây tại haicgeek.com , thủ thuật bao gồm hai phần:

Sử dụng lsusbđể xác định ID thiết bị của các thiết bị USB mà bạn muốn tắt tự động gửi cho.

Và sau đó thêm chúng vào AUTOSUSPEND_USBID_BLACKLISTtrong /etc/laptop-mode/conf.d/runtime-pm.conf( usb-autosuspend.conftập tin cấu hình cho đến khi Ubuntu 14.04) (chi tiết cũng là tài liệu trong đó là tốt).


Trên thực tế con chuột của tôi đã bị mất / bị đánh cắp ngay sau đó, vì vậy tôi không thể kiểm tra điều này. Nhưng đánh giá từ .conftập tin này chính xác là điều mà tôi đã hy vọng :)
black_puppydog

Có vẻ như AUTOSUSPEND_RUNTIME_DEVID_BLACKLISTbây giờ (Ubuntu 17.04)
tham gia vào

2
Các máy tính xách tay Ubuntu của Ubuntu với Ubuntu 16.04 LTS đã tlpđược cài đặt thay laptop-mode-toolsvì vậy, nếu bạn muốn đưa danh sách đen các thiết bị USB vào chế độ tự động gửi trên các máy tính xách tay này, hãy đặt USB_BLACKLISTcài đặt trong tệp /etc/default/tlp- các thay đổi sẽ diễn ra ngay lập tức
Stuart Caie

Các HID đã được đưa vào danh sách đen từ tlp: / etc / default / tlp # Lưu ý: các thiết bị đầu vào (usbhid) được loại trừ tự động (xem bên dưới) # USB_BLACKLIST = "045e: 07a5"
Tom

Tài liệu TLP đề cập rằng đó là quản lý năng lượng cho máy tính xách tay (cụ thể hơn là ThinkPad). Nó có hoạt động cho máy tính để bàn không?
Konrad Rudolph

7

Tôi đã gặp vấn đề tương tự với PC trên KVM Avrial , nơi các công cụ chế độ máy tính xách tay chưa được cài đặt (và không muốn giải quyết theo cách đó trong mọi trường hợp). Trong trường hợp của tôi, việc tự động phát hiện KVM khiến bàn phím và chuột hoạt động thất thường (sau vài giây nhàn rỗi, chúng sẽ tạm dừng và mất dữ liệu đầu vào trong một thời gian cho đến khi đủ số lần nhấp và lắc chúng).

Khi tôi chạy PowerTOP và tắt USB tự động tắt cho Avrial, PowerTOP đã cho tôi biết lệnh vô hiệu hóa nó khỏi dòng lệnh là:

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

Bit '3-10' sẽ khác nhau trên các hệ thống khác nhau. Tôi không chắc chắn làm thế nào để xác định điều đó ngoài việc chạy PowerTOP, nhưng có lẽ có một số cách.

Thay vào đó, tôi đã sử dụng quy tắc udev để khớp với id sản phẩm của thiết bị của mình:

trent + 14.04: /etc/udev/rules.d$ mèo 10-usb-avrial-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"

Để có được thông tin udev thích hợp, tôi đã chạy:

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

6

Trong /etc/laptop-mode/conf.d/usb-autosuspend.confbạn sẽ tìm thấy:

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

Bạn nên thay đổi nó thành CONTROL_USB_AUTOSUSPEND="0".

Điều này sẽ tự động làm cho bất kỳ thiết bị USB nào có giá trị "bật" trong /sys/bus/usb/devices/"DEVICE ID"/power/control. Điều này sẽ làm cho giá trị của các tệp tự động không hoạt động:

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

5

Các tùy chọn nguồn cho thiết bị USB nằm trong /sys/bus/usb/devices/n-n/power. Thật không may, những gì nn dành cho một thiết bị nhất định cần một chút điều tra để tìm hiểu, vì vậy tôi nghĩ rằng điều này sẽ chứng minh sự vấp ngã khi có một kịch bản tự động thực hiện

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

để tắt autosuspend trên thiết bị đó. Phép thuật nn thực sự xuất hiện trong đầu ra của

udevadm info --export-db

Vì vậy, tôi nghĩ rằng udev sẽ là bạn của bạn ở đây; một số loại tập lệnh udev được khóa trên một tham số xác định chuột của bạn, sau đó chạy tập lệnh có tiếng vang -1 vào tệp có liên quan.


4
Điều này sẽ tồn tại một khởi động lại? vang vọng vào / sys dường như là không cố định, phải không?
black_puppydog

2
Đặt lệnh trong /etc/rc.local trước dòng 'exit 0'
Bryce

4

Tôi đã tạo quy tắc udev của riêng mình :

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

2

Trong Ubuntu 16.04 LTS (Xenial Xerus), tôi đã tìm thấy một giải pháp trong /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

Ban đầu nó được đặt 2cho tôi. 30 phút là hợp lý hơn nhiều.

Sau khi thay đổi, hãy làm:

sudo service laptop-mode restart

Tôi vẫn không chắc chắn làm thế nào để vô hiệu hóa nó hoàn toàn, nhưng điều này là tốt cho tôi bây giờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.