web-dev-qa-db-ja.com

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

HTPCをカーネル.7.1から.10.7に更新しましたCONFIG_USB_SUSPENDはカーネルオプションから削除され、午後。

私が直面している主な問題は、外付け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自動サスペンドを無効にする方法はありますか?

41
Peter

buntおよびDebianの場合、usbcoreはカーネルでコンパイルされるため、/etc/modprobe.dにエントリを作成します[〜#〜] not [〜#〜]作業:カーネルブートパラメータを変更する必要があります。

/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

そしてrebootです。

次に、autosuspend値を確認します。

cat /sys/module/usbcore/parameters/autosuspend

そして-1が表示されます。

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

35

カーネルツリーのドキュメント によると、自動サスペンドのアイドル遅延時間は、autosuspendusbcoreモジュールパラメータによって制御されます。初期デフォルトのアイドル遅延を-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デバイスに影響します。すでに存在するデバイスは影響を受けません。

20
Thomas Nyman

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

コマンドラインで次のコマンドを実行して、これを永続的に変更できます。

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現在。

3