[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: acpi/events/lidbtn отрабатывает дважды -- как побороть?



On Mon, 30.03.2009 17:55:32 , Тихон Тарнавский wrote:
> On Mon, 30.03.2009 18:13:00 , Alexander GQ Gerasiov wrote:
> > Mon, 30 Mar 2009 14:20:55 +0300
> > Тихон Тарнавский <tikhon@lexpr.ru> wrote:
> > 
> > > Создал скрипт из одной строчки (echo mem >/sys/power/state), прописал
> > > его в /etc/acpi/events/lidbtn. При закрытии крышки скрипт отрабатывает
> > > дважды, т.е. вот с этой командой ноут засыпает, а после включения
> > > засыпает ещё рах -- включается лишь со второго раза. Это точно именно
> > > этот скрипт запускается два раза: проверял, заменив строку на
> > > echo 1>>/home/t/tmp/tmp. И запускается точно оба раза из одного и того
> > > же места: больше нигде в /etc/acpi/ он не упоминается, и если из
> > > lidbtn убрать, засыпания не происходит.
> > > 
> > > Прошу помочь разобраться, где корень проблемы; или хотя бы подсказать,
> > > как проще её обойти. Спасибо.
> > Для начала проверить, что генерится одно событие при помощи
> > acpi_listen, Затем проверить в логах acpid что он пишет.
> В лог я уже смотрел -- он пустой. События генетирся таки два. Но я был
> уверен, что это оттого, что lidbtn ведь отвечает _и_ за закрытие, _и_
> за открытие крышки; т.е. нажал-отпустил кнопку -- вот и есть два
> события. А в случае с засыпанием второе событие по идее создаваться не
> должно, т.к. в момент открытия крышки ноут спит. Проверил: написал в
> тестовом варианте date вместо echo 1 -- таки да, вывод происходит в
> момент нажания кнопки и в момент отпускания. А в варианте с засыпанием
> хотя второе событие создаваться не должно, но оно всё же создаётся;
> проверил так: нажал кнопку пальцем и включил не отпуская -- всё
> отработало как надо, а когда отпустил -- тогда уже выключилось ещё
> раз. Видимо, в момент просыпания сверяется состояние кнопки -- и, если
> оно изменилось, всё же создаётся ещё одно событие. Получается, надо
> либо всё же читать /proc/acpi/button/lid/*/state, либо, как написал
> Иван, обходить путём контроля чётности. И действительно, оба варианта
> работают. Понятно, что первый -- более правильный. Его и оставил.
> Спасибо за наводку.
Странно. Всё это время ноут усыплял (то на диск, то в память). Сейчас
потребовалось перезагрузиться -- после перезагрузки на закрытие крышки
вообще перестала система реагировать: даже acpi_listen молчит. С
момента последнего перезапуска acpid ничего не обновлялось. Ядро не
обновлялось с момента последней перезагрузки. В чём может быть
проблема?..

-- 
С уважением,
Тихон Тарнавский.
http://linuxforum.ru
http://posix.ru


Reply to: