2012-11-06

А вас раздражает когда ноут просыпается от открытия крышки?

Лично меня - да.
Я обычно предпочитаю его открыть поставить в дальний угол стола, подключить все мониторы, сетевой кабель, usb-хаб, и только потом нажать кнопку power.
Но - не судьба. Под убунтой он просыпается от открытия крышки :(

Не беда! Это можно полечить.
Разгадка этой проблемы в /proc/acpi/wakeup:
# cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
P0P1      S4    *disabled 
EHC1      S4    *enabled   pci:0000:00:1d.0
EHC2      S4    *enabled   pci:0000:00:1a.0
XHC       S4    *enabled   pci:0000:00:14.0
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *disabled  pci:0000:01:00.0
RP05      S4    *disabled  pci:0000:00:1c.4
PXSX      S4    *disabled  pci:0000:02:00.0
RP06      S4    *disabled 
PXSX      S4    *disabled 
PEG0      S4    *disabled 
LID0      S3    *enabled  
Это список устройств которые могут будить систему из разных уровней сна(S3=suspend to ram, S4=hibernate to disk), и то разрешено им это делать или нет(enabled/disabled).
Что за pci устройства можно проверить относительно просто:
# lspci -s  0000:00:1d.0
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
Но меня интересует последняя строка - LID0.
Отключить - просто:
echo -n LID0 > /proc/acpi/wakeup
cat  /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
P0P1      S4    *disabled 
EHC1      S4    *enabled   pci:0000:00:1d.0
EHC2      S4    *enabled   pci:0000:00:1a.0
XHC       S4    *enabled   pci:0000:00:14.0
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *disabled  pci:0000:01:00.0
RP05      S4    *disabled  pci:0000:00:1c.4
PXSX      S4    *disabled  pci:0000:02:00.0
RP06      S4    *disabled 
PXSX      S4    *disabled 
PEG0      S4    *disabled 
LID0      S3    *disabled 
 Осталось сделать это умолчанием. Можно это положить где-то в /etc/pm/sleep.d, что б оно применялось при выходе из сна(на случай если потеряется например при хибернейте), или в /etc/rc.local.

P.S. Сначала написал пост, потом нагуглил точно такой же :)
P.P.S. Осталась только одна маааленькая проблемака. Это не работает :(

1 коментар:

Vladimir Yashin сказав...

Я с первых дней жизни своего ноута эту штуку использую:

~ % cat /etc/init/wakeup-lid-disable.conf
start on startup
start on runlevel [2345]

pre-start script
echo LID > /proc/acpi/wakeup
end script

post-stop script
echo LID > /proc/acpi/wakeup
end script