
MacBook Air(2012年半ば)にUbuntu 14.04 GNU / Linuxがインストールされています。rtcwake
次のように、「一時停止による遅延した休止状態」を実装しようとしています。https://askubuntu.com/a/33192(ここでは特定のユースケースは重要ではありません。)しかし、rtcwake
たとえば、次のように公開します。
sudo rtcwake --seconds 120 --mode mem
一時停止(--mode mem
)入力ほんの数秒で(--seconds
オプションに関係なく)すぐに返します。たとえば、pm-suspend
またはpm-hibernate
(カーネルを使用swsusp
)によってトリガされたとき、またはカバーが閉じられている場合、一時停止モードと休止状態の両方がこのシステムで正しく機能します。機械は正確な時間を維持し、Ubuntuでそれらを表示または更新できます。同様のGNU / Linuxオペレーティングシステムを使用している他の(Apple以外の)コンピュータでも、同じコマンドが期待どおりに機能します。
MAC OS X には、あらかじめ設定された時間またはあらかじめ設定された期間の後にスリープモードで目覚める機能があることがわかります。だから私は彼らが内部時計に近づいていると信じています。私の質問は次のとおりです(すべて関連)。
すぐに覚醒を引き起こす覚醒イベントが後ろから起こっていますか?上記のように、これが原因であると思います。それ以外の場合、機械は正しく停止します。 (しかし、繰り返しますが、適切なサスペンドは、問題のモジュールが「通常の」サスペンドの前にフックによって取り外されたためです。)また、システムは、スケジュールが必要になるSUSPEND_MODULES
まで通常のサスペンションから目覚めません。rtcwake
、ふたを閉めます。
この内部時計を使用して「隠された」覚醒イベントなしでGNU / Linuxで保留中の予約覚醒をトリガーするにはどうすればよいですかrtcwake
?うまくいかないと思いますか?この時計は、GNU / Linuxツールの標準ドライバモデルウェイクフラグをサポートするためにRTCと互換性がありますか?この結果を得るための他の方法/解決方法はありますか?
答え1
犯人を見つけました。を実行してデバイスを1つずつcat /proc/acpi/wakeup
無効にすると(たとえば、上記の出力にリストされているデバイスの略語を使用している場合)、システムが「早期」に起きるようになりました。*enabled
sudo echo 'DEVABBRV' > /proc/acpi/wakeup
DEVABBRV
cat
LID0
これは、カバーにいくつかの非標準の専用ハードウェアセンサーがあるために発生する可能性があります。ウェイクアップ機能LID0
(追加して永続的にすることができますecho 'LID0' > /proc/acpi/wakeup
)を無効にすると、特に期待どおりに機能/etc/rc.local
します。rtcwake
sudo rtcwake --seconds 120 --mode mem
しかし、私の特定のユースケースでは問題はまだ解決されていません(スクリプトはhttps://askubuntu.com/a/33192)、からrtcwake
確かにこのスクリプトを実行するときにマシンを目覚めさせてください。