Ubuntuがサスペンドから勝手に復帰する問題の解決!

Ubuntuが勝手にサスペンドから復帰ししてしまう問題,解決!
やり方
1) まずは問題の箇所を確認.
cat /proc/acpi/wakeup | grep enable
するとこういう出力が出る.
USB0 S3 *enabled pci:0000:00:1d.0 USB1 S3 *enabled pci:0000:00:1d.1 USB2 S3 *enabled pci:0000:00:1d.2 USB3 S3 *enabled pci:0000:00:1d.3 USBE S3 *enabled pci:0000:00:1d.7
僕の場合はこうだった
XHC S3 *enabled pci:0000:00:14.0
2) 次に問題を修正
su
にログイン.
sudo su
パスワードを入力します.次に以下を入力
echo ‘disabled’ > /sys/bus/pci/devices/0000:00:14.0/power/wakeup
数値の部分が重要!最初のコマンドで確認した問題箇所の数値と同じものを入力します.以降の作業は su
である必要がないので su
からログアウト
exit
3) 最後に変更を永続化
/etc/rc.local
にこれを書く
#!/bin/sh echo XHC > /proc/acpi/wakeup
やり方は何でもいいけど,例えば:
# make file if not exist
sudo touch /etc/rc.local
# open file with Gedit
sudo gedit /etc/rc.local
# write in file, then save and close
そしたら /etc/rc.local
に実行権限を付与する.
sudo chmod u+x /etc/rc.local
解説
基本的なことはこことか こことか ここに書いてある.というかこの記事の内容もこれらの記事たちとほとんど同じ.
僕が詰まったのは最後の3番目のステップ.Ubuntuでは /etc/rc.local
を標準で持ってない (そんなファイルはない) (と思う…).例えばここにそう書いてある.なので自分で作らなきゃいけないんだけど,そこで困った.参考サイトに書かれてるとおりに
echo XHC > /proc/acpi/wakeup
だけを書いてもダメなんです! /etc/rc.local
には1行目に,こういうおまじない
#!/bin/sh
を書かなきゃならない.それを分かるまでに結構調べました… これを見ると /etc/rc.local
にそのおまじないを書いたほうが良さそうなことが読み取れて,ここを見るとこのおまじないはコメントではなくて重要な意味を持ってるから省略しちゃダメだと分かる.
というわけで,全くの無から /etc/rc.local
を作成するときは,必要なさそうに見える1行目のコメント (じゃなくてShebang というらしいけど) も書かねばならないのでした.