Ubuntu 16.04(Xenial Xerus)でも同じ問題があり、解決策を探しました...
コンテキストストーリーを気にしない場合、解決策はこの回答の最後にあります。コンテキストは役に立たないように見えるかもしれませんが(おそらくそうです)、PCで解決した問題が自分の問題と同じかどうかを確認するのに役立つと思います。
環境
私は必死にウェブ上で見つけたすべてのヒントの近くでテストに失敗し、試行ごとに再起動しました:
- '/ etc / default / grub'カーネルブート
usbcore.autosuspend=-1
パラメーター
- ラップトップモードの「runtime-pm.conf」
CONTROL_RUNTIME_AUTOSUSPEND=0
- 「/etc/laptop-mode/laptop-mode.conf」ファイルからラップトップモードツールを完全に無効にし、問題がこのカーネル機能に関連していないことを確認します。確認のため、laptop_modeが実行されていないさまざまな方法を確認しました。(参照:
man laptop-mode.conf
&man laptop_mode
)
- 「/etc/laptop-mode/conf.d/usb-autosuspend.conf」に関するいくつかのトリックを読みましたが、このファイルは、ラップトップモードツールv1.68を搭載したUbuntu 16.04のバージョンには存在しません
- powertopアプリケーションのアンインストール。多くの場合、フォーラムで自動サスペンドの問題が発生する疑いがありますが、今日では、アンインストールしても何も修正されないため、私の場合はそうではないことがわかりました。
options usbcore autosuspend=1
'/etc/modprobe.d/usb.conf'内も非効率的です
- Gentoo公式Wikiが提供する「/etc/udev/rules.d/60-power.rules」スクリプト
- Serge Y. Stroobandtが推奨する「/etc/udev/rules.d/usb-power.rules」のデバイス固有
rules
ファイルudev
この技術資料をすべて読んだ後、構成にどのような変更を加えても、原因が2秒でスタックする「/ sys / module / usbcore / parameters / autosuspend」値に関連していることしか理解できませんでした。cat
コマンドで確認できます:
$ cat /sys/module/usbcore/parameters/autosuspend
2
そして、はい、2秒後にマウスが完全に無効になったので、正しい方向に進んでいることがわかりました。もちろんecho -1
、-1
自動サスペンドを無効にするために、あちこちで見たコマンドをテストしましたが...:
sudo echo -1 > sys/module/usbcore/parameters/autosuspend
bash: /sys/module/usbcore/parameters/autosuspend: Permission denied
sudoモードでも許可が拒否される理由がわかりませんでした。rootとしては試しませんでした。問題になるとは思わなかったからです。ここに間違いがありました:(
Alex Dekker&Bryceのコメントのおかげで、マウスだけで自動サスペンドを無効にする方法を学びました。しかし、もちろんこれで私の最初の試みは失敗したbash: Permission denied error
のでecho -1
、Alexによって提案されたコマンドが最終的に機能する前に、ルート/ sudoの混乱を理解するまで待たなければなりませんでした。
また、rootとしてログインせずに、rootユーザーとしてコマンドを実行するより良い方法を見つけました。ルートシェルとルートコマンドの使用法の違いは、Ubuntuの公式RootSudo wikiページで詳しく説明されています。私はこのようなことを学ぶのが大好きですが、ちょっと!なぜ苦痛を伴う方法で常に学ばなければならないのですか?笑
OMG、それは本当の頭痛の種であり、私のような初心者が理解するのに多くの時間がかかりました。私の目にはより多くのトレーニングが必要です。
自分のことを話すのをやめて、修正しましょう!以下に進んでください...
アイドル状態の外付けHDDに2番目のソリューションを使用することを強くお勧めします。しかし、私はあなたに両方の解決策を与えます、なぜなら彼/彼女自身の自由を愛する人はお互いの自由も愛すべきだからです:)
解決策1
すべてのUSBデバイス/ポートで自動サスペンドを無効にするには
ターミナルを開いて実行します:
sudo sh -c "echo -1 > /sys/module/usbcore/parameters/autosuspend"
これは確かに一時的な解決策であり、このコマンドでマウスまたはキーボードの自動サスペンドの問題が修正されるかどうかを即座にテストできます。
USBデバイスが正常に動作する場合は、「/ etc / rc.local」スクリプトを編集するだけで、システムが起動するたびにそのコマンドが実行されます。この方法で修正を永続的にします。たとえばnanoを使用して、ファイルを編集します。
sudo nano /etc/rc.local
そして、echo -1
コマンドを「/etc/rc.local」ファイルのexit 0
行の前に置きます
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
(...)
# By default this script does nothing.
echo -1 > /sys/module/usbcore/parameters/autosuspend
exit 0
コンピュータを再起動してください
(最後にある重要事項を確認してください。)
。
解決策2
特定のUSBデバイス/ポートの自動サスペンドを無効にするには
USBデバイスの電源オプションはにあり/sys/bus/usb/devices/n-n/power
ます。どのようなn-n
特定のデバイスのためであることを見つけるためにいくつかの操作を必要とするが、それは複雑ではないです。以下の例は、ワイヤレスマウスレシーバーのUSBポート番号がであるとどのように判断したかを示している3-1
ため、ご自身の状況に合わせて調整してください。
USBデバイスを取り外し、ターミナルを開いてsudo dmesg
コマンドを実行します
USBデバイスを接続しsudo dmesg
直し、ターミナルで再度実行して変更を確認します
dmesg
スロットにマウスを差し込んだ後、コマンド出力の最後は次のようになります。
[40208.575249] usb 3-1: new full-speed USB device number 8 using xhci_hcd
[40208.705233] usb 3-1: New USB device found, idVendor=062a, idProduct=4102
[40208.705240] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[40208.705245] usb 3-1: Product: 2.4G Wireless Mouse
[40208.705248] usb 3-1: Manufacturer: MOSART Semi.
[40208.707679] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:062A:4102.0007/input/input24
[40208.763946] hid-generic 0003:062A:4102.0007: input,hiddev0,hidraw0: USB HID v1.10 Mouse [MOSART Semi. 2.4G Wireless Mouse] on usb-0000:00:14.0-1/input0
これで、USBデバイスが接続されているポートがとして識別されていることがわかりusb 3-1
ます。
**Note:** this trick concerns the USB port ID, not a device ID. For example, if I plug my mouse to the next USB port, it becomes identified as `usb 3-2` in the `dmesg` result. But this solution #2 remains very useful if you take the habit to always plug your mice or keyboard to the same port, and it's generally what people use to do unconsciously ;)
ターミナルで次のコマンドを実行し、自分のポート番号3-1
を自分のdmesg
結果で見つけたものに変更します。
sudo sh -c "echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms"
Linuxの公式ドキュメントによると、カーネルバージョン2.6.38以降autosuspend_delay_ms
廃止されたものは置き換えられていることに注意してください。autosuspend
これは確かに一時的な解決策ですが、このコマンドでマウスまたはキーボードの自動サスペンドの問題が修正されたかどうかを簡単にテストできます。
USBデバイスが正常に機能する場合は、「/ etc / rc.local」スクリプトを編集するだけで、システムが起動するたびにそのコマンドが実行されます。この方法で修正を永続的にします。たとえばnanoを使用して、ファイルを編集します。
sudo nano /etc/rc.local
そして、echo -1
コマンドをexit 0
行の前の「/etc/rc.local」ファイルに入れます。もう一度n-n
コマンドのポート番号を変更することを忘れないでください:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
(...)
# By default this script does nothing.
echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms
exit 0
コンピュータを再起動してください
。
重要:sudo sh -c
デスクトップ環境がすでに起動しているときにUSBデバイスを切断/再接続すると、同じUSBプラグに再び接続した場合でも、手動で「一時」コマンドを再度実行する必要があることを忘れないでください。通常、「/ etc / rc.local」ファイルはシステムの起動時に一度だけ呼び出されるためです。
とにかく、回避策が可能です。優れたスキルを持つ人々にはもっと賢い方法があるかもしれませんが、Ubuntuではポート固有のエイリアスを設定しました。USBデバイスの取り外し/再接続が必要な場合は、シンプルusb1
またはusb2
コマンドを選択的に使用できます。君も!また、コマンドエイリアスを作成して、完全なコマンドを入力する代わりに短い単語で遊ぶこともできます。設定は2分未満で簡単で、Alt+ でも機能しますF2:)
より簡単にするためのより多くのアイデアも大歓迎です。