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

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

カーネルでHTPCを更新しました。3.7.10到着3.10.7そうだCONFIG_USB_SUSPENDこれでカーネルオプションから消え、PMに含まれます。

私が直面している主な問題は、外付けハードドライブがあり、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)

以前のカーネルでは、HDDが独自に休止状態を処理し、マウントポイントに常にアクセスできたため、CONFIG_USB_SUSPEND = Nを設定すると問題が解決されました。 HDDがスリープモードで、HTPCがHDDマウントポイントで何かを要求すると、HDD自体が目覚め、正常に動作します。

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

  1. 手動変更/sys/bus/USB/devices/USB*/電源/制御到着「存在する」変える「自動車」
  2. 手動変更/sys/bus/usb/devices/usb*/power/自動一時停止到着「-1」変える「0」

ただし、HTPCが再び起動すると、マウントポイントにアクセスできなくなります。回避策としてマウントポイントをアンマウントしてから再マウントすると、問題なく再びうまく機能しますが、OSがUSB自動一時停止を処理しないようにする方法が必要であると確信しています。

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

ベストアンサー1

~のためUbuntuそしてダーバンusbcoreカーネルにコンパイルされるため、/etc/modprobe.dエントリはwillで作成されます。いいえ働く代わりに、カーネルブートパラメータを変更する必要があります。

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

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

quiet splashオプションはすでに存在します。だから別のオプションを開いておいてください。

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

sudo update-grub

そして再起動

ここでautosuspend値を確認してください。

cat /sys/module/usbcore/parameters/autosuspend

が表示されます-1

追加情報

カーネル文書には、このパラメータが将来autosuspend_delay_ms(代わりに)に変更されることが示されていますが、現在はまだ同じ名前です。autosuspend

この値のドキュメントは-1カーネルソースファイルにありますdrivers/usb/core/hub.c

1808:    * - If user has indicated to prevent autosuspend by passing
1809:    *   usbcore.autosuspend = -1 then keep autosuspend disabled.

おすすめ記事