Linux(Ubuntu) on Macでサスペンドしたらすぐに復帰してしまう問題を解決した
ラボでMacBook Airが支給されているのですが,OSが好きになれないので,Linux(Ubuntu 14.04)+XMonadを入れて使っています.
Linux on Macの環境でサスペンドをしたら,すぐに復帰してしまうという問題が発生していて困っていました.*1
ちなみに,似た問題がLinux on LavieZにも発生していて仕方ないのかなぁと諦めていました.
Linux on Macの環境での解決策がわかったので書いておきます.
Mac - ArchWiki
Arch LinuxのWikiに書いてありました.さすが!
/proc/acpi/wakeupを確認してください.
$ cat /proc/acpi/wakeup Device S-state Status Sysfs node P0P2 S3 *disabled EC S3 *disabled HDEF S3 *disabled pci:0000:00:1b.0 RP01 S3 *disabled pci:0000:00:1c.0 RP02 S3 *disabled pci:0000:00:1c.1 RP03 S3 *disabled pci:0000:00:1c.2 ARPT S4 *disabled pci:0000:03:00.0 RP05 S3 *disabled pci:0000:00:1c.4 RP06 S3 *disabled pci:0000:00:1c.5 SPIT S3 *disabled XHC1 S3 *enable pci:0000:00:14.0 ADP1 S3 *disabled LID0 S3 *enabled
もしも,LID0以外がenableになっていたら,LID0だけがenableになるように他をdisableにします.
僕の場合だとXHC1がenableになっていたのでXHC1をdisableにします
# echo XHC1 > /proc/acpi/wakeup ↑rootで実行 $ cat /proc/acpi/wakeup Device S-state Status Sysfs node P0P2 S3 *disabled EC S3 *disabled HDEF S3 *disabled pci:0000:00:1b.0 RP01 S3 *disabled pci:0000:00:1c.0 RP02 S3 *disabled pci:0000:00:1c.1 RP03 S3 *disabled pci:0000:00:1c.2 ARPT S4 *disabled pci:0000:03:00.0 RP05 S3 *disabled pci:0000:00:1c.4 RP06 S3 *disabled pci:0000:00:1c.5 SPIT S3 *disabled XHC1 S3 *disabled pci:0000:00:14.0 ↑disableになっていることを確認 ADP1 S3 *disabled LID0 S3 *enabled
この設定が続くように設定ファイルを書きます(?).
/etc/udev/rules.d/90-xhc_sleep.rulesに以下を書き込みます.
同ファイルが存在しなければ作成して書き込みます.
# disable wake from S3 on XHC1 SUBSYSTEM=="pci", KERNEL=="0000:00:14.0", ATTR{device}=="0x9c31" RUN+="/bin/sh -c '/bin/echo disabled > /sys$env{DEVPATH}/power/wakeup'"
うちのLavieZはこれと類似の問題でバッテリーがやられてしまったのでですが,Macではそれを避けられそうでよかったです.
Lavieの敵は打ったよ
*1:バッテリーにすごく良くない