サスペンドをデバッグする方法は?


29

私は約5年前からUbuntuを使用していますが、必要に応じてUbuntuを中断することはできません。嵐をプログラムし、他の多くの方法でマシンをハックできるのは非常にいらいらしますが、それでもサスペンドまたはデバッグサスペンドをしようとすると、惨めに失敗します。

私は助けが必要です。

どこで問題を見つけ始めますか?修正するにはどうすればよいですか?私は文字通りこの問題のために私の人生の何時間もを失ったので、私はこれに賞金をかけています、そしていつも私のコンピューターを残しておくのはひどいです。

症状:

  • サスペンドを押すと、コンピューターのカーソルが点滅し、ファンが作動し、HDがオフになったようだ(私は思う)ので、この状態から戻すために何もできないハードリブート)。
  • 関連する可能性があります:シャットダウン後もファンが作動し続けます。その場合でも、電源ボタンを5秒間押してから起動する必要があります。
  • 問題をデバッグするためにどのログを調べるべきかわかりませんが、とにかく再起動時にそれらが丸くなると思います。

助けてください。これは私を完全に夢中にさせ、私はそれと1年以上生きてきました。


これで幸運はありましたか?個人的にはグラフィックハードウェアの初期化にこだわっています。おそらく十分な時間を与えれば、そこから抜け出す方法をプログラムすることができます...しかし、問題に直接到達するための何らかの方法があると、はるかにスムーズになります。
ヘンリック

運がない。どうやら、サスペンドをデバッグする方法はありませんが、これは少し衝撃的です。
mlissner

1
どのように中断していますか? コマンドラインから実行していますpm-suspendか?キーボードでサスペンドキーを使用していますか?acpiを呼び出していますか(例:/etc/acpi/sleep.shまたは/etc/acpi/sleepbtn.sh)?
M. Tibbits

1
賞金稼ぎのために:私はほとんどの一般的なデバッグレシピ、すなわちsystemdを使用したより最近のUbuntuインストールのための情報収集を探しています。私の希望は、この質問を、経験の浅いユーザーによる広範な中断問題の質問の標準的な複製として使用できることです。
デビッドフォースター

2
@pbhj:いずれにせよ、解決への道の最初のステップとして、適切な問題診断が必要です。
デビッドフォースター

回答:


22

https://wiki.ubuntu.com/UnderstandingSuspendから

  • 最大の問題はグラフィックスハードウェアです
  • 制限されたデバイス(nvidia、fglrx)なしで中断してみてください
  • カーネルはグラフィカルデバイスを処理する方法を知りません
  • BIOSはグラフィックス状態を復元する方法を知っています
    • 16ビットセグメントモードを介して、C000:xxxxには可視の64kビデオROMが含まれます。
    • C000:0003で実行を開始し、通常はビデオBIOSを再POSTします(/ usr / sbin / vbetool post)
      • 16ビットコールをエミュレートする必要があるため、64ビットモードではより困難です。
      • 一部のメモリは3〜4Gの範囲にあり、エミュレートするときに同じ空間にマッピングされているカーネルにヒットしないように再マッピングが必要です。oビデオBIOSがC000ウィンドウのPOSTコードをページングした可能性があります。o nvidia BIOSは、ROMを書き換えて、再ポストを停止してコンソールからの一時停止を試みます(/etc/acpi/sleep.shを使用)。
    • Xorgからログアウトしていることを確認してください(または "force"引数を指定してsleep.shを実行してください)
    • ビデオBIOSが正常な状態になっていない場合、Xorgに戻るとハードウェアがハングする可能性があります
    • 再開時にcapslockをテストします(capslockがない場合、カーネルがハングします)
    • バックライトが点灯しない場合、ビデオBIOSはおそらく再初期化されていません
    • 画面が空白であるがバックライトがある場合は、Enterキーを押すか、仮想端末を切り替えてみてください
    • シングルユーザーモードで試してください(grubカーネルブートオプションに「シングル」を追加することにより)
    • アクションの詳細については、bash -x /etc/acpi/sleep.sh> /root/sleep.log 2>&1を試してください。
    • /usr/share/acpi-support/*.configの設定に一致するdmidecode情報を確認します
    • シングルユーザーモードのコンソールのサスペンドまたはレジュームが失敗した場合
    • デバイスハッシュをシステムタイマーに書き込むPMトレース(エコー "1"> / sys / power / pm_trace)
    • 中断しようとする
    • 障害の後、再起動時に、「デバイスハッシュ」エントリのdmesg出力を調べて、再開中にシステムをハングさせたデバイスを追跡します。
    • これによりシステムクロックがリセットされ、fsckが異常終了することに注意してください(「31337日間fsckがなくなった」)。tune2fs -c 0 / dev / your / filesystemsを検討してください。

2
制限されたデバイスをオフにするにはどうすればよいですか?
オーウェン

1
正常に動作するスクリプトへのリンクは、サスペンドが失敗したときにボックスをチェックしますか?...この種の問題は... Linuxとブロックマス利用の悩みの種である
スコットStensland

4

多くのガイドライン/アドバイスはこちらこちらにあります

説明から、ACPIが正常に動作していないか、カーネルドライバーが完全なサスペンドを妨げているように聞こえます。2番目のリンクは、そのような問題に対処する方法を示しています。


2
私はこれらを読み直しましたが、私の問題にとって実際に役立つ情報が不足しています。より多くの助けとより良い詳細が必要です。この質問に対して賞金を用意しました。
mlissner

4
悪い答え-リンクだけ。Stack *サイトのポイントは、すべての質問にアクセスできる場所を提供することであり、無限のグースチェイスでユーザーを送信したり、「ただf * google it」と言ったりすることではありません。質問に回答を挿入し、mlissnerのコメントに従って更新してください。
ヘンリック

ありがとう:元のホームページを読むと便利な場合があります!
abu_bua

4

症状:

  • サスペンドを押すと、コンピューターのカーソルが点滅し、ファンが作動し、HDがオフになったようだ(私は思う)ので、この状態から戻すために何もできないハードリブート)。
  • 関連する可能性があります:シャットダウン後もファンが作動し続けます。その場合でも、電源ボタンを5秒間押してから起動する必要があります。
  • 問題をデバッグするためにどのログを調べるべきかわかりませんが、とにかく再起動時にそれらが丸くなると思います。

多くのLinuxの問題のサイトへのアクセスはArch Linuxです。以下は、お客様と同様のサスペンド/レジュームの問題について投稿されたものです。

サスペンドからの即時ウェイクアップ

LynxPointおよびLynxPoint-LPチップセットを搭載した一部のIntel Haswellシステムでは、一時停止後の瞬間的なウェイクアップが報告されます。これらは、誤ったBIOS ACPI実装と、xhci_hcdブート中にモジュールがそれを解釈する方法にリンクしています。回避策として、影響を受けるシステムはXHCI_SPURIOUS_WAKEUP、カーネルごとにブラックリスト(名前付き)に追加されます。[ 2 ]

たとえば、サスペンド中にUSBデバイスが接続され、ACPIウェイクアップトリガーが有効になっている場合、瞬時に再開することがあります。そのようなシステムが実行可能な回避策は、まだブラックリストに載っていない場合、ウェイクアップトリガーを無効にすることです。USBによるウェイクアップを無効にする例は次のとおりです。[ 3 ]

現在の構成を表示するには:

$ cat /proc/acpi/wakeup

Device  S-state   Status   Sysfs node
...
EHC1      S3    *enabled  pci:0000:00:1d.0
EHC2      S3    *enabled  pci:0000:00:1a.0
XHC       S3    *enabled  pci:0000:00:14.0

...

関連するデバイスはEHC1EHC2およびXHC(USB 3.0の場合)です。それらの状態を切り替えるには、デバイス名をルートとしてファイルにエコーする必要があります。

# echo EHC1 > /proc/acpi/wakeup
# echo EHC2 > /proc/acpi/wakeup
# echo XHC > /proc/acpi/wakeup

これにより、サスペンションが再び機能するようになります。ただし、この設定は一時的なものであり、再起動するたびに設定する必要があります。これを自動化するには、systemd#Writing unit filesご覧ください。可能な解決策および詳細については、BBSスレッドを参照してください。


上記のSuspend / Resumeに関するArch Linuxの記事全体は、多くの分野の優れたリファレンスです。

1 Low level interfaces
    1.1 kernel (swsusp)
    1.2 uswsusp
2 High level interfaces
    2.1 systemd
3 Hibernation
    3.1 About swap partition/file size
    3.2 Required kernel parameters
        3.2.1 Hibernation into swap file
    3.3 Configure the initramfs
4 Troubleshooting
    4.1 ACPI_OS_NAME
    4.2 VAIO Users
    4.3 Suspend/hibernate doesn't work, or not consistently
    4.4 Wake-on-LAN
    4.5 Instantaneous wakeups from suspend

いいね!他の人に答える機会を与えるために、あと1日か2日待ちます。たぶん誰かがあなたに触発されたと感じるでしょう。:
デビッドフォースター

@DavidFoersterありがとう。8歳の質問に答えるのは難しいです。NVMe M.2 PCIe SSDの今夜追加予定のサスペンド/レジュームの問題もあります。これらのタイプのSSDは2010年には存在しなかったため、特別なgrubカーネル引数が必要です。
WinEunuuchs2Unix

特定のサスペンド問題の解決策を探しているのではなく、systemdを使用した最近のUbuntuインストールの一般的なデバッグレシピを探していました。
デビッドフォースター

@DavidFoersterその場合、私は答えをそのままにしておきます:)
WinEunuuchs2Unix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.