web-dev-qa-db-ja.com

polkit経由で有効にした後、13.10のメニューにはまだ休止状態がありません。有効にする方法

12.04以降、ハイバネーションを有効にするポリシーキットルールを追加する必要があることを知っています(質問 ハイバネーションを有効にする方法 および 公式ドキュメント を参照)。

Sudo pm-hibernateまたはSudo s2diskを使用してラップトップを正常に休止状態モードにすることができるため、ルールは適切に機能しますが、休止状態エントリはメニューにまだありません。

インジケーターセッションパッケージのソース(ただし、コード全体を理解していない)を調べると、コード内にまだ休止状態メニューエントリがあり、システムが休止状態になったときに表示されることがわかります。これに激怒したら落ち着いてください。 これは陰謀である可能性は非常に低く、むしろ、コードを移動したり置き換えたりするときに発生する可能性のある、より深いレベルでのバグ/回帰です。

質問:システムが休止状態にできることをindicator-sessionに正しく伝えるために13.10で何をする必要がありますか?


可能性のある重複: ハイバネーションはまだ利用できません -アクティビティはありません。saucyが当時開発中であったため、AskUbuntuの範囲外です。

関連バグレポート: https://bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1232814

52
LiveWireBT

14.04以降

ミッチは、14.04および16.04の回答で、何かを変更する前に10-vendor.d/com.ubuntu.desktop.pklaをチェックする必要があると指摘しています。また、セキュアブートが無効になっていることと、それがメニューオプションに戻ることを確認します。

メニューの休止状態オプションを再度有効にする

メニューの休止状態オプションを再度有効にするには、/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaをsaucy(13.10)で次のように変更する必要があります。

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

その後、再起動するか、セッションでkillall indicator-session-serviceを実行すると、休止状態機能/メニューオプションが元に戻ります。ファイルがまだ存在しない場合は作成します。

バグレポートからの調査

Jeffery ToのLaunchpadへの投稿からの引用 バグレポート#1232814

Saucyでは、inpower-sessionはupowerではなくlogind(org.freedesktop.login1)を使用するように更新されました。

/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pklaをチェックすると、upowerとlogindの両方で休止状態がデフォルトで無効になっていることがわかります。

したがって、Hibernateオプションを再度有効にする最初のステップは、/ etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaを次のように編集することです。

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

再起動後、ログイン画面のセッションメニューにHibernateオプションが表示されます。

[...]

すべての感謝とクレジットはJefferyに送られます!

休止状態が無効になったのはなぜですか?

Launchpadには、どのハードウェアがどの電力モードに対して「認証」するかを追跡するのではなく、サスペンド/ハイバネートを無効にすることを提案するバグレポートがあります。よりスケーラブルなアプローチであると主張されています。

言及すべきもう1つのことは、UEFIセキュアブートと休止状態を使用することは可能に見えますが、前者を回避するリスクになる可能性があることです。 ( 12 )念のため、ハイバネーションを使用する場合、RAMのすべてを暗号化せずにディスクに保存します。これには、暗号化されたファイルシステムのパスワードとコンテナ。

16.04のある時点で、ラップトップを休止状態にするためにセキュアブートを無効にする必要がありました。私の場合、uswsuspを使用し、s2diskでテストすると以下のメッセージが返されました。これにより、他のすべてが設定されているにもかかわらず休止状態にできない問題がセキュアブートに関連しているというヒントが得られる場合があります。

s2disk: Could not open the snapshot device. Reason: Operation not permitted 

ただし、これは文句を言う場所ではないことを理解してください。ニースにしてください。

関連する質問

62
LiveWireBT

それでも休止状態を機能させるのに問題がある場合は、 このバグレポートのコメント#58 を確認してください。

私はubuntu gnome 13.10で回避策を見つけました:hibernateをインストールするだけです:

Sudo apt-get install hibernate

唯一の問題は、通常の電源オフ後の起動時にapportが3つのエラーを発行することです。このために、apportを無効にできます。

Sudo -H gedit /etc/default/apport

次に、enabled=0を変更します。

設定を休止状態から変更するには、/etc/hibernateのファイルを編集します。

Hibernateパッケージをインストールすると適切な変更が加えられるようで、ubuntu gnome 13.10 x64で非常にうまく機能しました

2
cyberalex4life

前の手順を実行してもまだ機能しない場合は、/etc/pm/sleep.d/20_custom-ehci_hcdを次のように変更することをお勧めします。

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes

動作させるには、上記の手順に従って休止状態オプションを有効にします。これは本当にうまくいきました。

最後に、「[Re-enable hibernate ... ]」で2つのファイルを編集します。これを試してください。あなたがubuntu 13.10を使用している場合、それは確かに動作します

1
nba-crash

ここで追加したいことの1つは、AFAICRで、マウントされていないスワップパーティションです。スワップパーティションがマウントされていない場合、休止状態の設定に関係なく、休止状態オプションは表示/有効化されません。

また、スワップパーティションが自動マウントされない場合、休止状態のセッションは失われます。

1