특정 장치에 대해 USB 자동 일시 중단을 비활성화하려면 어떻게합니까?


18

이것은 배터리 전원 에서 무선 마우스가 일시적으로 정지 (절전) 되는 문제와 관련이 있습니다.

요약 : 배터리는 특정 시간이 지나면 자동 일시 중단되고 깨어날 시간이 더 필요하므로 배터리로 작동 할 때 정지됩니다.

PowerTOP 에서 마우스 수신기에 대해 USB 자동 일시 중지 기능을 비활성화 하는 것은 임시 해결책이지만 재부팅 후에도 지속 되지는 않습니다.

하나의 특정 장치 에 대해서만 USB 자동 일시 중단을 영구적으로 비활성화하려면 어떻게 해야합니까?

추가 패키지 설치가 필요없는 솔루션이 선호되지만 (결국 비활성화 하고 싶습니다 ) 필수는 아닙니다. PowerTOP을 제거하는 것은 내가 원하는 것이 아닙니다-PowerTOP을 좋아합니다 ...

그리고 laptop-mode-toolsUSB 자동 일시 중지 기능을 사용하지 않도록 설치 하는 것은 내가 원하는 것이 아니며 따라서 새로운 질문입니다.

또한 : 이것이 내 노트북 ​​배터리에 영향을 줍니까? 마우스에 대한 Logitech 통합 수신기는 항상 연결 상태를 유지하므로 이로 인해 모든 장치에 대해 자동 일시 중단이 발생하지 않을 수 있습니다.

답변:


25

우분투 16.04 (Xenial Xerus)

sudo apt install tlp
sudo lsusb

USB 장치의 입력 ID를 찾으십시오 1234:5678.

다음과 같이 장치의 입력 ID에 다음 줄을 sudo vi /etc/default/tlp추가하여 파일을 편집하고 장치의 입력 ID를 USB_BLACKLIST추가하십시오.

USB_BLACKLIST="1234:5678"

우분투 14.04 (Trusty Tahr)

여기 hecticgeek.com에서 언급했듯이 트릭은 두 부분으로 구성됩니다.

사용 lsusb당신이 비활성화 autosuspend하고자하는 USB 장치의 장치 ID를 확인 할 수 있습니다.

그리고 다음에 추가 AUTOSUSPEND_USBID_BLACKLIST에서 /etc/laptop-mode/conf.d/runtime-pm.conf( usb-autosuspend.conf까지 우분투 14.04) 구성 파일 (세부 사항은 아니라도 거기에 설명되어 있습니다).


실제로 곧 마우스가 분실 / 도난 당 했으므로 테스트 할 수 없습니다. 그러나에서 판단 .conf이 파일 정확히 내가 :) 기대했다 물건의 종류
black_puppydog

외모가처럼 AUTOSUSPEND_RUNTIME_DEVID_BLACKLIST지금 (우분투 17.04)
partofthething

2
우분투 16.04 LTS와 델의 우분투 노트북은 한 tlp보다는 설치 laptop-mode-tools당신이이 노트북에 autosuspend 모드로 전환되는 블랙리스트 USB 장치에 원하는 경우 그래서, 설정 USB_BLACKLIST파일의 설정 /etc/default/tlp- 변경 내용이 즉시 적용
스튜어트 Caie

HID는 이미 tlp에서 블랙리스트에 올랐습니다 : / etc / default / tlp # 참고 : 입력 장치 (usbhid)는 자동으로 제외됩니다 (아래 참조) # USB_BLACKLIST = "045e : 07a5"
Tom

TLP 설명서에는 랩탑 (특히 ThinkPad) 의 전원 관리가 언급되어 있습니다 . 데스크탑 PC에서도 작동합니까?
Konrad Rudolph

7

랩톱 모드 도구가 설치되어 있지 않은 Avocent KVM의 PC와 비슷한 문제가있었습니다 (어쨌든 그렇게하지 않으려 고합니다). 필자의 경우 KVM을 자동 일시 중지하면 키보드와 마우스가 비정상적으로 작동합니다 (몇 초 동안 유휴 상태가되면 충분한 클릭과 작동이 발생할 때까지 잠시 동안 입력 데이터가 일시 중단되고 손실됩니다).

PowerTOP을 실행 하고 Avocent를 위해 USB autosuspend를 토글 했을 때 PowerTOP은 명령 줄에서이를 비활성화하라는 명령을 다음과 같이 말했습니다.

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

'3-10'비트는 시스템마다 다릅니다. PowerTOP을 실행하는 것 이외의 방법을 결정하는 방법을 모르겠지만 방법이있을 수 있습니다.

대신, 장치의 제품 ID와 일치 시키기 위해 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 장치가 자동으로 "on"값을 갖습니다 /sys/bus/usb/devices/"DEVICE ID"/power/control. 그러면 autosuspend 파일의 값이 비활성화됩니다 :

$ 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가 당신의 친구가 될 것 같아요. 마우스를 식별하는 매개 변수를 사용하여 udev 스크립트를 입력 한 다음 관련 파일에 -1을 표시하는 스크립트를 실행합니다.


4
재부팅해도 살아남을 수 있습니까? / sys로 에코하는 것은 비 영구적 인 것 같습니다.
black_puppydog

2
'exit 0'줄 앞에 /etc/rc.local에 명령을 입력하십시오
Bryce

4

내 자신의 udev 규칙을 만들었습니다 .

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

2

우분투 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

여전히 완전히 비활성화하는 방법을 모르겠지만 지금은 괜찮습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.