Wednesday, August 07, 2013

キーボードでサスペンドから復帰しないようにする

LinuxMint15でサスペンドからの復帰がキーボード、マウスとも有効になっているので、猫がのると復帰してしまう。ので、キーボードを無効にする。(マウスはワイヤレスなので電源を切ればよい)

http://d.hatena.ne.jp/atsuoishimoto/20120711/1341992902
を参考に

$ sudo apt-get install input-utils

でパッケージをインストール。(lsinput を使うため)
(不要なパッケージがあるというので、 $ sudo apt-get autoremove で削除)

lsinputコマンドでキーボード、マウスの接続先を探す。

$ sudo lsinput
  ・
  ・
  ・
/dev/input/event2
   bustype : BUS_I8042
   vendor  : 0x1
   product : 0x1
   version : 43841
   name    : "AT Translated Set 2 keyboard"
   phys    : "isa0060/serio0/input0"
   bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

/dev/input/event3
   bustype : BUS_USB
   vendor  : 0x45e
   product : 0x745
   version : 273
   name    : "Microsoft Microsoft® Nano Trans"
   phys    : "usb-0000:00:14.0-9/input0"
   uniq    : ""
   bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP
  ・
  ・
  ・
イベント2がキーボード、3がマウスらしい。



acpiのデバイス指定を確認する。

$ cat /proc/acpi/wakeup

Device    S-state      Status   Sysfs node
PS2K      S4    *enabled   pnp:00:0a
UAR1      S4    *disabled  pnp:00:0b
USB1      S3    *disabled
RP01      S4    *disabled  pci:0000:00:1c.0
RP04      S4    *disabled  pci:0000:00:1c.3
GLAN      S4    *disabled  pci:0000:00:19.0
EHC1      S4    *enabled   pci:0000:00:1d.0
EHC2      S4    *enabled   pci:0000:00:1a.0
XHC      S4    *enabled   pci:0000:00:14.0
HDEF      S4    *disabled  pci:0000:00:1b.0
PEG0      S4    *disabled
PEGP      S4    *disabled
PEG1      S4    *disabled
PEG2      S4    *disabled

PS2Kがキーボードだろう。
マウスのphysが"usb-0000:00:14.0-9なのでXHCのpci:0000:00:14.0が合いそうだ。
どちらも *enabled になっていて、復帰が有効になっている。
これを無効にするには、キーボードは


$ sudo echo PS2K > /proc/acpi/wakeup

とすれば良い。もう一度


$ sudo echo PS2K > /proc/acpi/wakeup

とすれば、再び有効になる。
はずなんだが、「許可がありません」ではじかれる。

が、起動時にキーボードによる復帰を無効とするために、/etc/rc.localの最後に以下の記述を追加して再起動すればOK.

r=`cat /proc/acpi/wakeup | grep "PS2K\s*\w\+\s*\*enabled"`
  if [ -n "$r" ] ; then
    echo PS2K > /proc/acpi/wakeup
 fi