カーネル3.7.10以降でUSB自動サスペンドを無効にする方法


38

私は、カーネルからの私のHTPCを更新しました3.7.103.10.7と思わCONFIG_USB_SUSPENDが今カーネルオプションから消えやPMに含まれています。

私が直面している主な問題は、外付けHDDがあり、HTPCをサスペンドしてウェイクアップすると、システムで使用できないことです。HDDが起動します(再びスピンアップするのが聞こえます)が、マウントポイントにアクセスしようとすると、次のエラーが表示されます。

ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error

そしてdmesgで:

[  253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading   directory block (ino 2, block 0)

以前のカーネルでは、CONFIG_USB_SUSPEND = Nを設定することで問題が解決しました。HDDは自動的に休止状態を処理し、マウントポイントは常にアクセス可能であったためです。HDDがスリープ状態で、HTPCがHDDのマウントポイントから何かを必要とする場合、HDD自体が問題なく起動して動作します。

今のところ、私は成功せずに次のことを試しました:

  1. / sys / bus / usb / devices / usb * / power / control「auto」ではなく「on」に手動で変更します。
  2. / sys / bus / usb / devices / usb * / power / autosuspend「0」ではなく「-1」に手動で変更します。

ただし、HTPCを再度起動すると、マウントポイントは再びアクセスできなくなります。回避策として、マウントポイントをアンマウントして再マウントすることができ、問題なく再び動作しますが、OSがUSBの自動サスペンドを処理しないようにする方法があるはずです。

カーネル3.7.10以降でUSB自動サスペンドを無効にする方法はありますか?


しっぽ/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persistはあなたに与えます1か?ないgrep CONFIG_PM_RUNTIME /boot/config-$(uname -r)あなたを与えますかypower-management.txt
Runium

1
power/persist与える1と私は設定ファイルがありません/bootCONFIG_PM_RUNTIME=yカーネルの.configファイルで構成されます。
ピーター

回答:


33

以下のためのUbuntuDebianのusbcoreカーネルにコンパイルされているので、上のエントリを作成し/etc/modprobe.dますしない仕事:私たちは、カーネルのブートパラメータを変更する必要があります。

/etc/default/grubファイルを編集し、GRUB_CMDLINE_LINUX_DEFAULT行を変更してusbcore.autosuspend=-1オプションを追加します。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"

quit splashすでに存在するオプションに注意してください。したがって、他のオプションも用意してください。

ファイルを保存した後、grubを更新します。

sudo update-grub

そして再起動します。

次にautosuspend値を確認します。

cat /sys/module/usbcore/parameters/autosuspend

表示されるはず-1です。

カーネルのドキュメントには、将来いつかこのパラメーターがautosuspend_delay_ms(ではなくautosuspend)に変更されることが記載されています。


1
これはDebianにも当てはまるようです。
ベンジャミントレント

2
ラエル、これに感謝します。同じことがカリの最新バージョンにも当てはまります。上記を追加し、USB IRToy(v2)が正常に動作するようになりました。
-joat

1
私はmPCIEスロットの1つにUSBカードを持っていますが、真実を知りたくありませんでした。Debian Jessieを実行しています。これで私の頭の痛い問題が解決しました。ありがとうございます!
xebo

Ubuntu 15.10でこれを試しましたが、値は適用されません(値は2)。他に試すことができるものはありますか?
ジョナスアドラー

私はまだ14.04にいます。ただし、最新のカーネルバージョンでは、変更するパラメーターはautosuspend_delay_msです。
ラエルグゲルミンクーニャ

20

カーネルツリーのドキュメントによると、自動サスペンドのアイドル遅延時間はのautosuspendモジュールパラメーターによって制御されますusbcore。初期デフォルトのアイドル遅延を-1に設定すると、USBデバイスの自動サスペンドが防止されます。選択したデバイスの自動サスペンドを有効にできるはずです。

usbcore.autosuspendモジュールを手動でロードされたときにカーネルパラメータを設定することができます。

$ modprobe usbcore autosuspend=-1

または、次の行を構成ファイルに追加します/etc/modprobe.d

options usbcore autosuspend=-1

usbcoreがカーネルにコンパイルされている場合、以下をカーネルコマンドラインに追加することでパラメーターを調整できます。

usbcore.autosuspend=-1

最後に、実行時にオプションを調整することができます:

echo -1 >/sys/module/usbcore/parameters/autosuspend

この変更は、すべての新しいUSBデバイスに影響します。既存のデバイスは影響を受けません。


2
私がしているusbcoreカーネルにコンパイルが、使用したmodprobe.dオプションは、動作するようには思えません。とmodprobe -c usbcore | grep autosuspend表示されている-1にも関わらず、cat /sys/module/usbcore/parameters/autosuspend私が得たもの2
Peter

1
@Peter:autosuspendは非推奨です。新しいファイルではautosuspend_delay_ms、数秒ではなくmsがかかります。REF。ただし、同じ効果power/controlがあるonはずです。
ルニウム

@Sukminder、自動サスペンドを永久に無効にするには、何を設定する必要がありますか?パラメータとパラメータのautosuspend=-1両方modprobe.dで使用してみましたkernelが、HDDはまだ一時停止し、うまく起動しません。
ピーター

1
@ピーター:私が知っていれば私はあなたに言う:)。私はどのドキュメントを引用するだけです。言う。あなたのpt 私の知る限り、あなたの投稿の1はそれをやったはずです、なぜそうしないのか分かりません。に設定しようとしautosuspend_delay_msました-1か?(In /sys/bus/usb/devices/<device>/power/autosuspend_delay_ms
ルニウム

1
私はカーネル4.4にいますautosuspend_delay_msが、そこにはいません。しかし、autosuspendです。
マリアノデュポン

3

Linux Mint Debian Editionシステムをkernelにアップグレードしてから、Microsoft Wheel Mouse Optical USBおよびPS / 2 Compatibleで同様の問題が発生しました。カーネルのUSB電源管理による不適切な自動サスペンドが疑われました。Debianでは、これはモジュールとしてカーネルにコンパイルされます。3.10-2-amd64usbcore

コマンドラインで発行することにより、これを永続的に変更できます。

sudo echo "options usbcore autosuspend=-1" | sudo tee /etc/modprobe.d/disable-usb-autosuspend.conf > /dev/null

autosuspend=0ただし、一部のカーネルではが必要になる場合があります。

システムで使用している場合initrd(ほとんどの場合)、initrdカーネル用に再構築します。

例えば:

uname -r
sudo dpkg-reconfigure linux-image-3.10-2-amd64

再起動して確認します:

cat /sys/module/usbcore/parameters/autosuspend

これは得られるはず-1今。


私は使用しておらずinitrd、ここで説明されているアクションは、以前に回答したように、この場合は機能しません。
ピーター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.