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 LinuxWikiに書いてありました.さすが!

/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:バッテリーにすごく良くない