気がついたら時代に取り残されていた
Fedora 19で「液晶パネル(LID)を閉じたらスリープする」動作を抑止しようとしたら、仕様が変わってて困ったので、健忘禄代わりに、設定方法を記載しておきます。設定方法が知りたい人は、一番下を見てください。
ちょっと休みのうちに複数サーバ環境の検証を…っと思って、今使っているFedora 19のクローンをゴリゴリ作り、ノートPCで起動。えっ?!なんでFedora? しかも仮想ではなく物理環境? うーん、昔は別のディストリビューション使ってたんだけどね、会社がRHEL使う様になったからFedora(Fedora Core)に移行して、後はズルズルとって感じですよ? あとなんで物理マシンを使っているのかは、主にメモリの問題…何ともアナログな…
で、ちょっと新しめのノートを心配したが、取りあえず問題なく起動完了。無線LANも認識したので個別修正…。仮サーバ共は邪魔なので液晶を閉じ、転がしておく。
クライアント側の設定をチョロチョロ弄り接続…ありゃサーバ共が応答しない??
よく見たら電源ランプが点滅しているよ〜そういえば、今のLinuxで液晶閉じるとスリープに入るの忘れてた。
/etc/UPower/UPower.conf
IgnoreLid=false
のfalseをtrueに変えて、/usr/libexec/upowerdを再起動…
# upower -d …省略… lid-is-present: no …省略…
今度こそ準備完了。おりゃ!リトライ!っておい!!また止まってるぞ??えーなんで?
確かFedora 15のあたりは問題なかった様な気がするのだが??
…本来やるはずの検証を外れ、別の検証を始める…
Fedora 15
- kernel-PAE-2.6.38.6-26.rc1.fc15
- upower-0.9.10-1.fc15
fc15の初期構成。「IgnoreLid=true」に変えればスリープせず。
- kernel-PAE-2.6.43.8-1.fc15
- upower-0.9.12-1.fc15
fc15の最終リリース。「IgnoreLid=true」に変えればスリープせず。
Fedora 17
- kernel-PAE-3.3.4-5.fc17
- upower-0.9.16-1.fc17
fc17の初期構成。「IgnoreLid=true」に変えればスリープせず。
- kernel-PAE-3.9.10-100.fc17
- upower-0.9.19-1.fc17
fc17の最終リリース。「IgnoreLid=true」に変えればスリープせず。
Fedora 18
- kernel-PAE-3.6.10-4.fc18
- upower-0.9.18-2.fc18
fc18の初期構成。「IgnoreLid=true」に変えても、スリープしない環境とする環境がある。スリープしない環境でもスリープするときもある。かなり不安定。
- kernel-PAE-3.6.10-4.fc18
- upower-0.9.19-1.fc18
取りあえずupowerだけfc18の最終リリースに上げてみる。現象変わらず不安定なまま。
- kernel-PAE-3.10.14-100.fc18
- upower-0.9.19-1.fc18
カーネルもfc18の最終リリースに上げてみる。「IgnoreLid=true」に変えてもスリープしてしまう。前カーネルでスリープしない環境で実施してもスリープしてしまい、何度か試したが「スリープしない」現象を確認できず。つまり、Fedora 19の状態。
検証結果まとめ
追加調査
upowerdが言うことを聞かないので、killすることに決定。少なくとも、電源ボタン/スリープボタン操作が効かなくても、現状困ることはないし。で、液晶パタン…うをい、またか。どうやら、upowerdが言うことを聞かないのではなく、upowerdに関係なくupowerdのやっていたことを代行している奴がいるらしい。
dmesgを眺めていたところ、奇妙な行を発見。
systemd-logind[470]: Watching system buttons on /dev/input/event0 (Lid Switch)
LIDスイッチを見てるsystemd-logindとかいう奴がおるの? psで確認すると確かに動いているし。
で、こいつ何? と言う訳で systemd-logind → logind.conf とマニュアルを辿っていくと、(他に分担している作業もあるが)upowerdのH/Wボタン監視の上位モデルらしい。肝心の液晶パネルのスイッチ(LIDスイッチ)は…HandleLidSwitchで、設定可能値は、ignore, poweroff, reboot, halt, kexec, suspend, hibernate, hybrid-sleep, lockの9種類があるらしい(デフォルトがsuspend)。画面ロックされても面倒なだけだし、ここは何もするなのignoreかね。と言う訳で、logind.confを弄る。
/etc/systemd/logind.conf
#HandleLidSwitch=suspend ↓ HandleLidSwitch=ignore
killして再起動しても問題ない気もするが一応サービスプログラムらしいので、systemctlコマンドを使う。
# systemctl restart systemd-logind
今度こそ…液晶パタン…おぉ〜スリープしない〜クライアントからもアクセスできるよ。念のため、upowerdの設定をfalseに戻しても、upowerdが干渉してこないことを確認。
結論
Fedoraで液晶パネルを閉じてもスリープさせないためには…
- Fedora 17までは、/etc/UPower/UPower.confのIgnoreLidにtrueを設定する。
- 確かLIDスイッチの監視が実装されたときはIgnoreLidは用意されておらず、後から増えた設定値なので、この隙間に入ると多分駄目。
- Fedora 18は、/etc/systemd/logind.confのHandleLidSwitchのコメントを外し、ignore等を指定する。さらに念のため、/etc/UPower/UPower.confのIgnoreLidにtrueを設定する。
- Fedora 19は、/etc/systemd/logind.confのHandleLidSwitchのコメントを外し、ignore等を指定する。
- Fedora 19の初期リリース状態で試してしないので、これで駄目だったらUPower.confの方も修正して。