SSブログ

サスペンド、ハイバネーションできない件、回避策?[Vine 6.0b1, X200s]

ThinkPad X200sにインストールしたVine Linux 6.0β1、非常に良いのですが、サスペンドとハイバネーションどちらも失敗するので困っていました。
調べましたところ、回避策が見つかったかもしれません。うまく行ったらBTSに報告しなくては。




サスペンドに失敗した時、/var/log/messages にはこんな記録が残っていました:


Jul  2 01:26:46 localhost kernel: sd 0:0:0:0: [sda] Stopping disk
Jul  2 01:26:46 localhost kernel: tpm_tis 00:0a: tpm_transmit: tpm_send: error -5
Jul  2 01:26:46 localhost kernel: legacy_suspend(): pnp_bus_suspend+0x0/0x6f returns -5
Jul  2 01:26:46 localhost kernel: PM: Device 00:0a failed to suspend: error -5
Jul  2 01:26:46 localhost kernel: PM: Some devices failed to suspend
Jul  2 01:26:46 localhost kernel: sd 0:0:0:0: [sda] Starting disk


セキュリティ関係のものにtpmというものがあるらしいのですが、ここでエラーメッセージを出しているのはそれに関係したものなのでしょうか?

6.0β1 のカーネルソースを見てみると、こんなファイルがありました:

/usr/src/kernels/2.6.35-18vl6-x86_64/drivers/char/tpm/Kconfig:
#
# TPM device configuration
#

menuconfig TCG_TPM
        tristate "TPM Hardware Support"
        depends on HAS_IOMEM
        depends on EXPERIMENTAL
        select SECURITYFS
        ---help---
          If you have a TPM security chip in your system, which
          implements the Trusted Computing Group's specification,
          say Yes and it will be accessible from within Linux.  For
          more information see <http://www.trustedcomputinggroup.org>. 
          An implementation of the Trusted Software Stack (TSS), the 
          userspace enablement piece of the specification, can be 
          obtained at: <http://sourceforge.net/projects/trousers>.  To 
          compile this driver as a module, choose M here; the module 
          will be called tpm. If unsure, say N.
          Notes:
          1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
          and CONFIG_PNPACPI.
          2) Without ACPI enabled, the BIOS event log won't be accessible,
          which is required to validate the PCR 0-7 values.
(以下略)

Vine 6.0β1のカーネルでは、モジュールとして取り込まれているようです:

# grep -i tpm /usr/src/kernels/2.6.35-18vl6-x86_64/.config 
CONFIG_TCG_TPM=m

そして、モジュールとしてtpmナントカというものが動いています:

# lsmod |grep tpm
tpm_tis                 7877  0 
tpm                    10301  1 tpm_tis
tpm_bios                4913  1 tpm

それでは、と、これらのモジュールを止めてサスペンドしてみます。

# rmmod tpm_tis tpm tpm_bios


……あ、サスペンドしました!

ハイバネーションもするかな?

……ハイバネーションOK。 そして復帰もOKです。

それでは、/etc/pm/config.d/suspend_modules   を

# cat suspend_modules
SUSPEND_MODULES="xhci-hcd tpm_tis tpm tpm_bios"

として、一旦再起動してみます。

うまく動いているようです。

TPMというものが関係していそうだと分かったので、これをキーワードに検索しなおすと、いくつか「解決策」というものが見つかりました:
  • Topic: Fixed Suspend Issues (kubuntuforums.net)
    SUSPEND_MODULES="tpm tpm_bios tpm_tis" だけではサスペンド時にハングアップすることがあるので /etc/pm/config.d/99local に 
    DISPLAY_QUIRK_VBE_POST="true"
    DISPLAY_QUIRK_VBEMODE_RESTORE="true"
    QUIRKOPTS="true"
    と書いた、とあります。これにならいました。

  • tpm prevents suspend 
    Looks like this has been addressed: $ rpm -q --changelog kernel-2.6.35.6-48.fc14.x86_64
    ...
    * Fri Oct 22 2010 Kyle McMartin <kyle@redhat.com> 2.6.35.6-47
    - tpm-autodetect-itpm-devices.patch: Auto-fix TPM issues on various
    laptops which prevented suspend/resume.
    ... Testing on my W500 with -48 confirmed suspend/resume now works. I assume it
    will for others too so closing now. Re-open if it doesn't. :-)

  • Lenovo ThinkPad T400 (gentoo-wiki.com)
    ファイル中ほどの "Power Management" のところ、 File:tpm-workaround.conf と File: /etc/pm/config.d/tpm-workaround のあたりに回避策があります。

しばらくはこの
# cat suspend_modules
SUSPEND_MODULES="xhci-hcd tpm_tis tpm tpm_bios"
および
# cat /etc/pm/config.d/99local 
DISPLAY_QUIRK_VBE_POST="true"
DISPLAY_QUIRK_VBEMODE_RESTORE="true"
QUIRKOPTS="true"

という設定でやってみます。うまくいきますように。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

Xerox DocuPrint C325..install-assist-* と s.. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。