* [sisyphus] Кнопки Power @ 2010-05-28 14:38 George V. Kouryachy 2010-05-29 9:49 ` Andrey Rahmatullin 2010-06-03 7:05 ` Sergei Epiphanov 0 siblings, 2 replies; 9+ messages in thread From: George V. Kouryachy @ 2010-05-28 14:38 UTC (permalink / raw) To: ALT Linux Sisyphus discussions Добрый день. С некоторых не вполне отфиксированных пор перестала корректно обрабатываться кнопочка Power на корпусе. Просто давно не выключал компьютер таким способом. А тут вот нажал. Теперь кнопочка Power запускает у меня ещё одну версию XTerm-а, а совсем не компьютер выключает. Именно так. Не пользуюсь ни KDE, ни Gnome, и кнопочки Power, Sleep, Wake, которые на некоторых моих клавиатурах расположены аккурат под Delete, End, PgDown, замаплены у меня в окноводе на, соответственно, xterm, экран вправо, экран влево. Что показало бурение: 1. Файл /etc/acpi/events/power переименован у нас в /etc/acpi/events/power.conf . Это название файла не соотвествует формату, и потому при старте acpid этот файл не читается: http://git.altlinux.org/srpms/a/acpid.git?p=acpid.git;a=blob;f=acpid/event.c;h=57092bc479d3305f5f4207504ca5d1cfe8cd161f;hb=HEAD#l125 Соотетственно, сколько бы ни бросала кнопка Power на корпусе ACPI-сообщений "button/power PBTN 00000080 00000000", они acpid-ом игнорируются. 2. Кнопка Power на клавиатуре бросает точно такое же ACPI-сообщение. Так что если бы acpi работал как раньше, по ней бы всё выключалось. Я знаю людей, которые в w2k решили для себя эту проблему с помощью плоскогубцев. X-овый scancode она тоже генерирует. 3. Поведение кнопок на клавиатуре можно изменить, назначив им другое соответствие ещё в ядре с помощью setkeycodes. Тогда Xorg прозрачно начинает считать их _другими_ кнопками, но только другими. 4. Посылкой сообщения от кнопки на корпусе ведает модуль kernel/drivers/acpi/button.ko Теперь вопросы: 1. Кто при нажатии кнопки на корпусе посылает scancode в иксы? Можно ли это выключить? это, вообще-то, не дело. 2. Кто при нажатии кнопки на клавиатуре посылает ACPI-сообщение? Точнее, где прибито, что 116-й сканкод -- это button/power? 3. Какие есть мысли по грамотному разруливанию всего этого? То есть, чтобы кнопка на корпусе обрабатывалась безо всяких иксов, а кнопки на клавиатуре безо всяких ACPI, или, наоборот, через ACPI, но все (есть клавиатуры с диким количеством кнопок, и далеко не все из них порождают в резултате ACPI-сообщение) и чтобы это могли быть сообщения, неравные сообщению от кнопки на корпусе. -- George V. Kouryachy (aka Fr. Br. George) mailto:george at altlinux_org ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-05-28 14:38 [sisyphus] Кнопки Power George V. Kouryachy @ 2010-05-29 9:49 ` Andrey Rahmatullin 2010-06-02 9:46 ` George V. Kouryachy 2010-06-03 7:05 ` Sergei Epiphanov 1 sibling, 1 reply; 9+ messages in thread From: Andrey Rahmatullin @ 2010-05-29 9:49 UTC (permalink / raw) To: sisyphus [-- Attachment #1: Type: text/plain, Size: 689 bytes --] On Fri, May 28, 2010 at 06:38:58PM +0400, George V. Kouryachy wrote: > 1. Кто при нажатии кнопки на корпусе посылает scancode в иксы? Думаю, xinput list|fgrep Button > Можно ли это выключить? это, вообще-то, не дело. Я думаю, можно запретить обрабатывать сообщения от определённых input devices. > 2. Кто при нажатии кнопки на клавиатуре посылает ACPI-сообщение? Понятия не имею; у меня она шлёт 124/XF86Poweroff, но acpid, оказывается, теперь на это тоже реагирует. Не исключаю, что иксы тут вообще ни при чём. -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(6): Всё чудесатее и чудесатее, но по прежнему вне сферы моего влияния. -- ldv in #8493 [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-05-29 9:49 ` Andrey Rahmatullin @ 2010-06-02 9:46 ` George V. Kouryachy 2010-06-02 10:39 ` Andrey Rahmatullin 0 siblings, 1 reply; 9+ messages in thread From: George V. Kouryachy @ 2010-06-02 9:46 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Sat, May 29, 2010 at 03:49:21PM +0600, Andrey Rahmatullin wrote: > On Fri, May 28, 2010 at 06:38:58PM +0400, George V. Kouryachy wrote: >> 1. Кто при нажатии кнопки на корпусе посылает scancode в иксы? > Думаю, xinput list|fgrep Button Вот спасибо. >> Можно ли это выключить? это, вообще-то, не дело. > Я думаю, можно запретить обрабатывать сообщения от определённых input > devices. Ну, кнопку можно выключить так: george@arnor:~> xinput list-props 6 Device 'Power Button': Device Enabled (115): 1 george@arnor:~> xinput set-prop 6 115 0 Наверное, и не надо ей давать что-то посылать X-ам, если я не пользуюсь X-выми средствами shutdown-а. Хотя по-хорошему её бы просто переназначить на какой-нибудь принципиально другой кейкод... интересно, это вообще возможно? >> 2. Кто при нажатии кнопки на клавиатуре посылает ACPI-сообщение? > Понятия не имею; у меня она шлёт 124/XF86Poweroff, но acpid, оказывается, > теперь на это тоже реагирует. Не исключаю, что иксы тут вообще ни при чём. Вот в этом месте я хотел бы разобраться: acpi-событие происходит потому, что его генерит acpid, или оно происходит ещё почему-нибудь, а acpid его только ловит? Конечная цель -- сделать как раньше: по кнопке Power на корпусе выключается компютер, по кнопке Power на клавиатуре приходит кейкод XF86Poweroff, но больше ничего. Пока что кейкоды приходится подсовывать другие. -- George V. Kouryachy (aka Fr. Br. George) mailto:george at altlinux_org ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-06-02 9:46 ` George V. Kouryachy @ 2010-06-02 10:39 ` Andrey Rahmatullin 2010-06-02 14:23 ` Sergey Vlasov 0 siblings, 1 reply; 9+ messages in thread From: Andrey Rahmatullin @ 2010-06-02 10:39 UTC (permalink / raw) To: sisyphus [-- Attachment #1: Type: text/plain, Size: 878 bytes --] On Wed, Jun 02, 2010 at 01:46:29PM +0400, George V. Kouryachy wrote: > >> 2. Кто при нажатии кнопки на клавиатуре посылает ACPI-сообщение? > > Понятия не имею; у меня она шлёт 124/XF86Poweroff, но acpid, оказывается, > > теперь на это тоже реагирует. Не исключаю, что иксы тут вообще ни при чём. > Вот в этом месте я хотел бы разобраться: Вообще я не уверен, что это именно acpid, а не кто-то другой дёргает, скажем, pm-hibernate. > acpi-событие происходит потому, что его генерит acpid, или оно > происходит ещё почему-нибудь, а acpid его только ловит? acpid ничего не генерит, он слушает /proc/acpi/event и netlink. -- WBR, wRAR (ALT Linux Team) Powered by the ALT Linux fortune(6): <combr> "Нашёл ifconfig, но по-моему он бинарный. По крайней мере, если в mc его по <combr> F3 попытаться посмотреть, то там только точки и всякие непонятные знаки. " ;) [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-06-02 10:39 ` Andrey Rahmatullin @ 2010-06-02 14:23 ` Sergey Vlasov 0 siblings, 0 replies; 9+ messages in thread From: Sergey Vlasov @ 2010-06-02 14:23 UTC (permalink / raw) To: sisyphus [-- Attachment #1: Type: text/plain, Size: 5788 bytes --] On Wed, Jun 02, 2010 at 04:39:03PM +0600, Andrey Rahmatullin wrote: > On Wed, Jun 02, 2010 at 01:46:29PM +0400, George V. Kouryachy wrote: > > >> 2. Кто при нажатии кнопки на клавиатуре посылает ACPI-сообщение? > > > Понятия не имею; у меня она шлёт 124/XF86Poweroff, но acpid, оказывается, > > > теперь на это тоже реагирует. Не исключаю, что иксы тут вообще ни при чём. > > Вот в этом месте я хотел бы разобраться: > Вообще я не уверен, что это именно acpid, а не кто-то другой дёргает, > скажем, pm-hibernate. > > > acpi-событие происходит потому, что его генерит acpid, или оно > > происходит ещё почему-нибудь, а acpid его только ловит? > acpid ничего не генерит, он слушает /proc/acpi/event и netlink. Уже не только /proc/acpi/event и netlink - сейчас acpid действительно открывает все устройства /dev/input/event* и обрабатывает полученные оттуда события, переводя их внутри в события ACPI; список обрабатываемых кодов можно получить только путём RTFS input_layer.c: /* Event Table: Events we are interested in and their strings. Use evtest.c, acpi_genl, or kacpimon to find new events to add to this table. */ static struct evtab_entry evtab[] = { {{{0,0}, EV_KEY, KEY_POWER, 1}, "button/power PBTN 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_SUSPEND, 1}, "button/suspend SUSP 00000080 00000000"}, {{{0,0}, EV_SW, SW_LID, 1}, "button/lid LID close"}, {{{0,0}, EV_SW, SW_LID, 0}, "button/lid LID open"}, /* blue access IBM button on Thinkpad T42p*/ {{{0,0}, EV_KEY, KEY_PROG1, 1}, "button/prog1 PROG1 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_VENDOR, 1}, "button/vendor VNDR 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_FN_F1, 1}, "button/fnf1 FNF1 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_FN_F2, 1}, "button/fnf2 FNF2 00000080 00000000"}, /* Fn-F2 produces KEY_BATTERY on Thinkpad T42p */ {{{0,0}, EV_KEY, KEY_BATTERY, 1}, "button/battery BAT 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_SCREENLOCK, 1}, "button/screenlock SCRNLCK 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_COFFEE, 1}, "button/coffee CFEE 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_SLEEP, 1}, "button/sleep SBTN 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_WLAN, 1}, "button/wlan WLAN 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_FN_F6, 1}, "button/fnf6 FNF6 00000080 00000000"}, /* procfs on Thinkpad 600X reports "video VID0 00000080 00000000" */ /* typical events file has "video.* 00000080" */ {{{0,0}, EV_KEY, KEY_SWITCHVIDEOMODE, 1}, "video/switchmode VMOD 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_FN_F9, 1}, "button/fnf9 FNF9 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_FN_F10, 1}, "button/fnf10 FF10 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_FN_F11, 1}, "button/fnf11 FF11 00000080 00000000"}, /* Fn-F9 produces KEY_F24 on Thinkpad T42p */ {{{0,0}, EV_KEY, KEY_F24, 1}, "button/f24 F24 00000080 00000000"}, #if 0 /* These "EV_MSC, 4, x" events cause trouble. They are triggered */ /* by unexpected keys on the keyboard. */ /* The 4 is MSC_SCAN, so these are actually scan code events. */ /* EV_MSC, MSC_SCAN, KEY_MINUS This is triggered by the minus key. */ {{{0,0}, EV_MSC, 4, 12}, "button/fnbs FNBS 00000080 00000000"}, /* EV_MSC, MSC_SCAN, KEY_EQUAL Triggered by the equals key. */ {{{0,0}, EV_MSC, 4, 13}, "button/fnins FNINS 00000080 00000000"}, /* EV_MSC, MSC_SCAN, KEY_BACKSPACE Triggered by the backspace key. */ {{{0,0}, EV_MSC, 4, 14}, "button/fndel FNDEL 00000080 00000000"}, /* EV_MSC, MSC_SCAN, KEY_E Triggered by the 'E' key. */ {{{0,0}, EV_MSC, 4, 18}, "button/fnpgdown FNPGDOWN 00000080 00000000"}, #endif {{{0,0}, EV_KEY, KEY_ZOOM, 1}, "button/zoom ZOOM 00000080 00000000"}, /* typical events file has "video.* 00000087" */ {{{0,0}, EV_KEY, KEY_BRIGHTNESSDOWN, 1}, "video/brightnessdown BRTDN 00000087 00000000"}, /* typical events file has "video.* 00000086" */ {{{0,0}, EV_KEY, KEY_BRIGHTNESSUP, 1}, "video/brightnessup BRTUP 00000086 00000000"}, {{{0,0}, EV_KEY, KEY_KBDILLUMTOGGLE, 1}, "button/kbdillumtoggle KBILLUM 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_VOLUMEDOWN, 1}, "button/volumedown VOLDN 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_VOLUMEUP, 1}, "button/volumeup VOLUP 00000080 00000000"}, {{{0,0}, EV_KEY, KEY_MUTE, 1}, "button/mute MUTE 00000080 00000000"}, /* additional events divined from the kernel's video.c */ {{{0,0}, EV_KEY, KEY_VIDEO_NEXT, 1}, "video/next NEXT 00000083 00000000"}, {{{0,0}, EV_KEY, KEY_VIDEO_PREV, 1}, "video/prev PREV 00000084 00000000"}, {{{0,0}, EV_KEY, KEY_BRIGHTNESS_CYCLE, 1}, "video/brightnesscycle BCYC 00000085 00000000"}, {{{0,0}, EV_KEY, KEY_BRIGHTNESS_ZERO, 1}, "video/brightnesszero BZRO 00000088 00000000"}, {{{0,0}, EV_KEY, KEY_DISPLAY_OFF, 1}, "video/displayoff DOFF 00000089 00000000"} }; Таблица событий не настраивается, список устройств - тоже (всегда открываются все доступные устройства, причём даже обрабатывается подключение новых устройств после запуска acpid), вызов open_input() выполняется всегда при использовании опции -n (либо даже без неё, если не обнаружен /proc/acpi/event), а опция -n прибита гвоздями в скрипте запуске /etc/init.d/acpid. Таким образом, чтобы кнопка Power на клавиатуре не обрабатывалась acpid, теперь придётся назначать ей код, отличающийся от KEY_POWER и других кодов, обрабатываемых acpid (например, с помощью setkeycodes, или через ioctl EVIOCSKEYCODE для отдельного устройства /dev/input/event*). Правда, при активном X-сервере acpid по идее не должен получать события из /dev/input/event*, поскольку X использует ioctl EVIOCGRAB для монопольного использования устройств ввода, и в этом состоянии до других клиентов события ввода доходить не должны. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-05-28 14:38 [sisyphus] Кнопки Power George V. Kouryachy 2010-05-29 9:49 ` Andrey Rahmatullin @ 2010-06-03 7:05 ` Sergei Epiphanov 2010-06-21 13:32 ` Michael Shigorin 1 sibling, 1 reply; 9+ messages in thread From: Sergei Epiphanov @ 2010-06-03 7:05 UTC (permalink / raw) To: ALT Linux Sisyphus discussions В сообщении от 28 мая 2010 18:38:58 автор George V. Kouryachy написал: > 1. Файл /etc/acpi/events/power переименован у нас в > /etc/acpi/events/power.conf . Это название файла не соотвествует > формату, и потому при старте acpid этот файл не читается: > http://git.altlinux.org/srpms/a/acpid.git?p=acpid.git;a=blob;f=acpid/event. > c;h=57092bc479d3305f5f4207504ca5d1cfe8cd161f;hb=HEAD#l125 Соотетственно, > сколько бы ни бросала кнопка Power на корпусе > ACPI-сообщений "button/power PBTN 00000080 00000000", они acpid-ом > игнорируются. Подтверждаю, после ручного переименования power.conf в power кнопка питания заработала. Кстати, после обновления acpid почему-то появился файл power.rpmnew (хотя на момент обновления я ещё не переименовывал файлы и файла power ещё не было). -- С уважением, Епифанов Сергей ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-06-03 7:05 ` Sergei Epiphanov @ 2010-06-21 13:32 ` Michael Shigorin 2010-06-22 6:19 ` Sergei Epiphanov 2010-06-23 8:59 ` Sergei Epiphanov 0 siblings, 2 replies; 9+ messages in thread From: Michael Shigorin @ 2010-06-21 13:32 UTC (permalink / raw) To: ALT Linux Sisyphus discussions On Thu, Jun 03, 2010 at 11:05:52AM +0400, Sergei Epiphanov wrote: > > 1. Файл /etc/acpi/events/power переименован у нас в > > /etc/acpi/events/power.conf . Это название файла не > > соотвествует формату, и потому при старте acpid этот файл не > > читается: > Подтверждаю, после ручного переименования power.conf в power > кнопка питания заработала. (заглянув в --lastchange) Напоминалку в багзилу повесьте, пожалуйста. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-06-21 13:32 ` Michael Shigorin @ 2010-06-22 6:19 ` Sergei Epiphanov 2010-06-23 8:59 ` Sergei Epiphanov 1 sibling, 0 replies; 9+ messages in thread From: Sergei Epiphanov @ 2010-06-22 6:19 UTC (permalink / raw) To: ALT Linux Sisyphus discussions В сообщении от 21 июня 2010 17:32:10 автор Michael Shigorin написал: > On Thu, Jun 03, 2010 at 11:05:52AM +0400, Sergei Epiphanov wrote: > > > 1. Файл /etc/acpi/events/power переименован у нас в > > > /etc/acpi/events/power.conf . Это название файла не > > > соотвествует формату, и потому при старте acpid этот файл не > > > > > читается: > > Подтверждаю, после ручного переименования power.conf в power > > кнопка питания заработала. > > (заглянув в --lastchange) Напоминалку в багзилу повесьте, пожалуйста. Я смогу это сделать только вечером, сейчас нет доступа к интернет, только почта. -- С уважением, Епифанов Сергей ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [sisyphus] Кнопки Power 2010-06-21 13:32 ` Michael Shigorin 2010-06-22 6:19 ` Sergei Epiphanov @ 2010-06-23 8:59 ` Sergei Epiphanov 1 sibling, 0 replies; 9+ messages in thread From: Sergei Epiphanov @ 2010-06-23 8:59 UTC (permalink / raw) To: ALT Linux Sisyphus discussions В сообщении от 21 июня 2010 17:32:10 автор Michael Shigorin написал: > On Thu, Jun 03, 2010 at 11:05:52AM +0400, Sergei Epiphanov wrote: > > > 1. Файл /etc/acpi/events/power переименован у нас в > > > /etc/acpi/events/power.conf . Это название файла не > > > соотвествует формату, и потому при старте acpid этот файл не > > > > > читается: > > Подтверждаю, после ручного переименования power.conf в power > > кнопка питания заработала. > > (заглянув в --lastchange) Напоминалку в багзилу повесьте, пожалуйста. #23657 -- С уважением, Епифанов Сергей ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-06-23 8:59 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-05-28 14:38 [sisyphus] Кнопки Power George V. Kouryachy 2010-05-29 9:49 ` Andrey Rahmatullin 2010-06-02 9:46 ` George V. Kouryachy 2010-06-02 10:39 ` Andrey Rahmatullin 2010-06-02 14:23 ` Sergey Vlasov 2010-06-03 7:05 ` Sergei Epiphanov 2010-06-21 13:32 ` Michael Shigorin 2010-06-22 6:19 ` Sergei Epiphanov 2010-06-23 8:59 ` Sergei Epiphanov
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git