特定のデバイスのUSB自動サスペンドを無効にするにはどうすればよいですか?


18

これは、ワイヤレスマウスでバッテリ電源で一時的にフリーズ(スリープ)する問題に関連しています。

要約:バッテリーで動作しているとき、マウスは一定時間後に自動サスペンドされ、起動するのにより多くの時間が必要になるため、フリーズします。

PowerTOPでマウスのレシーバーのUSB自動サスペンドを無効にすることは一時的な解決策ですが、再起動しても存続しません。

特定の1つのデバイスのみのUSB自動サスペンドを永久に無効にするにはどうすればよいですか?

追加のパッケージのインストールを伴わないソリューションが推奨されます(結局のところ、何かを無効にしたい)が、それは必須ではありません。PowerTOPを削除する(一部のソリューションのようです)は、私が望むものではありません-PowerTOPが好きです...

そして、laptop-mode-toolsUSB自動サスペンドを完全に無効にするためにインストールすることも、私が望んでいることではないため、新しい質問です。

また、これはノートブックのバッテリーに影響しますか?マウスのLogitech統合レシーバーは常に接続されたままなので、それが原因ですべてのデバイスで自動サスペンドが実行されない可能性があります。

回答:


25

Ubuntu 16.04(Xenial Xerus)

sudo apt install tlp
sudo lsusb

USBデバイスの入力IDを見つけます-のようになります1234:5678

ファイルsudo vi /etc/default/tlpを編集しUSB_BLACKLIST、次の行をデバイスの入力IDに追加して、デバイスの入力IDを追加します。

USB_BLACKLIST="1234:5678"

Ubuntu 14.04(Trusty Tahr)

ここでhecticgeek.comで述べたように、トリックは2つの部分で構成されています。

lsusb自動サスペンドを無効にするUSB​​デバイスのデバイスIDを確認するために使用します。

そして、それらを追加することAUTOSUSPEND_USBID_BLACKLIST/etc/laptop-mode/conf.d/runtime-pm.confusb-autosuspend.confまでのUbuntu 14.04)設定ファイル(詳細はよくだけでなく、そこに記載されています)。


実際、私のマウスはすぐに紛失/盗難に遭ったので、これをテストすることはできません。しかし、.confファイルから判断すると、これはまさに私が望んでいた種類です:)
black_puppydog

ルックス、それはだようAUTOSUSPEND_RUNTIME_DEVID_BLACKLISTになりました(Ubuntuの17.04)
partofthething

2
Ubuntuの16.04 LTSとDellのUbuntuのラップトップをしているtlpのではなく、インストールされlaptop-mode-toolsますが、これらのラップトップで自動サスペンドモードに置かれてからブラックリストUSBデバイスにしたいのであれば、設定、USB_BLACKLIST設定ファイルの設定/etc/default/tlp-変更はすぐに反映
スチュアートCAIE

HIDはすでにTLPからブラックリストされていますは、/ etc / default / TLP#注:入力デバイス(USBHID)が自動的に除外されている(下記参照)#USB_BLACKLIST = "045e:07a5"
トム・

TLPのドキュメントには、ラップトップ(より具体的にはThinkPad)の電源管理であることが記載されています。デスクトップPCでも動作しますか?
コンラッドルドルフ

7

Avocent KVMの PCでも同様の問題が発生しました。laptop -mode-toolsはインストールされていません(どのような場合でもそのように解決したくありませんでした)。私の場合、KVMの自動サスペンドにより、キーボードとマウスの動作が不安定になりました(数秒間アイドル状態になると、十分なクリックとシェイクで目が覚めるまで一時的に入力データが一時停止され、失われます)。

PowerTOPを実行し、AvocentのUSB自動サスペンドをオフに切り替えたとき、PowerTOPはコマンドラインから無効にするコマンドを次のように教えてくれました。

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

「3-10」ビットは、システムごとに異なります。PowerTOPを実行する以外にそれを判断する方法はわかりませんが、おそらく何らかの方法があります。

代わりに、udevルールを使用して、デバイスの製品IDを一致させました。

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はここであなたの友達になると思います。マウスを識別するパラメータをキーとするある種のudevスクリプトは、関連ファイルに-1をエコーするスクリプトを実行します。


4
これは再起動後も存続しますか?/ sysへのエコーは永続的ではないようです。
black_puppydog

2
コマンドを/etc/rc.localの「exit 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

完全に無効にする方法はまだわかりませんが、今はこれで問題ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.