なんだか、14.04にしてから勝手にサスペンド(スリープ)が直後に復帰してしまうことがあるようです。
毎回ならまだしもなのですが、時折だったりするからよくわかりません。
/var/log/syslogとか、/var/log/pm-suspend.log等のログを見ても何がトリガーになったのかさっぱりわかりません。
まず疑ったのはNIC(Realtek r8169)なのですが、これが確かにWOLやら、サスペンド解除可否の/sys/bus/pci/devices/パス/wakeupがenabledになっております。
WOLはethtool eth0で、解除可否はcatで確認しました。
PCIのパスはlspciでわかります。一部を抜粋しますと
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
この先頭の02:00.0がそうで、
cat /sys/bus/pci/devices/0000\:02\:00.0/power/wakeup
というようにします。帰ってくるのはenabledかdisbledになっていると思います。あるいは存在しないというエラーが出た場合は、そのデバイスはwakeupに対応していないのでしょう…
しかし、ethtool -s eth0 wol dしたり、rootからecho 'disabled' > /sys/bus/pci/devices/0000\:02\:00.0/power/wakeupとしても、反映はするのですが、動作は一向に改善しません。どうも濡れ衣の模様。
次は疑わしいのはUSBかな〜と思って/sys/bus/usb/devices/以下を調べまくったのですが、そもそもwakeupがなかったり、あってもdisabledになってたりします。
そこでまたもlspciして、もよかったのですが、とりあえず/proc/acpi/wakeupを思い出したのでcatしてみました
: cat /proc/acpi/wakeup | grep enabled EHC1 S4 *enabled pci:0000:00:1d.0 EHC2 S4 *enabled pci:0000:00:1a.0 XHC S4 *enabled pci:0000:00:14.0
むぅ…?
それでこの出力に従い、enabledになってる部分をとりあえず片っ端から、
echo 'disabled' > /sys/bus/pci/devices/0000\:00\:1d.0/power/wakeup
echo 'disabled' > /sys/bus/pci/devices/0000\:00\:1a.0/power/wakeup
echo 'disabled' > /sys/bus/pci/devices/0000\:00\:14.0/power/wakeup
としていったら、サスペンド(スリープ)が勝手に解除されることはなくなりました。
どうもusbがらみのようですね。それももしかするとインターフェース側のドライバかなぁ?と…
ちなみにこの環境でlspciした時の、上記のバスに該当する部分は
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04) 00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04) 00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
当然ながら、これでキーボードから復帰することができなくなってしまいましたが、本体電源ボタンで復帰できるのでおいら的には実用上、問題はないです。
なんだか、14.04にしてから勝手にサスペンド(スリープ)が直後に復帰してしまうことがあるようです。
毎回ならまだしもなのですが、時折だったりするからよくわかりません。
/var/log/syslogとか、/var/log/pm-suspend.log等のログを見ても何がトリガーになったのかさっぱりわかりません。
まず疑ったのはNIC(Realtek r8169)なのですが、これが確かにWOLやら、サスペンド解除可否の/sys/bus/pci/devices/パス/wakeupがenabledになっております。
WOLはethtool eth0で、解除可否はcatで確認しました。
PCIのパスはlspciでわかります。一部を抜粋しますと
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
この先頭の02:00.0がそうで、
cat /sys/bus/pci/devices/0000:02:00.0/power/wakeup
というようにします。帰ってくるのはenabledかdisbledになっていると思います。あるいは存在しないというエラーが出た場合は、そのデバイスはwakeupに対応していないのでしょう…
しかし、ethtool -s eth0 wol dしたり、rootからecho 'disabled' > /sys/bus/pci/devices/0000:02:00.0/power/wakeupとしても、反映はするのですが、動作は一向に改善しません。どうも濡れ衣の模様。
次は疑わしいのはUSBかな〜と思って/sys/bus/usb/devices/以下を調べまくったのですが、そもそもwakeupがなかったり、あってもdisabledになってたりします。
そこでまたもlspciして、もよかったのですが、とりあえず/proc/acpi/wakeupを思い出したのでcatしてみました
: cat /proc/acpi/wakeup | grep enabled EHC1 S4 enabled pci:0000:00:1d.0 EHC2 S4 enabled pci:0000:00:1a.0 XHC S4 *enabled pci:0000:00:14.0
むぅ…?
それでこの出力に従い、enabledになってる部分をとりあえず片っ端から、
echo 'disabled' > /sys/bus/pci/devices/0000:00:1d.0/power/wakeup
echo 'disabled' > /sys/bus/pci/devices/0000:00:1a.0/power/wakeup
echo 'disabled' > /sys/bus/pci/devices/0000:00:14.0/power/wakeup
としていったら、サスペンド(スリープ)が勝手に解除されることはなくなりました。
どうもusbがらみのようですね。それももしかするとインターフェース側のドライバかなぁ?と…
ちなみにこの環境でlspciした時の、上記のバスに該当する部分は
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04) 00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04) 00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
当然ながら、これでキーボードから復帰することができなくなってしまいましたが、本体電源ボタンで復帰できるのでおいら的には実用上、問題はないです。
fc2コメント:
Re: タイトルなし
2014/06/02 16:43:02 |
trip:NbbOyPNtM/4/flzI
2014/06/03 05:09:38 |
trip:kLX8MjfbHlY9BifB
Re: タイトルなし
2014/06/03 12:09:27 |
trip:NbbOyPNtM/4/flzI
更なる情報、ありがとうございます 了解しました〜
2014/06/29 18:37:20 |
trip:4pKgCPtosQ99Cs/c
2014/06/02 09:23:29 | Ubuntuユーザ
trip:kLX8MjfbHlY9BifB