[sisyphus] Кнопки Power

George V. Kouryachy george на altlinux.org
Пт Май 28 14:38:58 UTC 2010


Добрый день.

С некоторых не вполне отфиксированных пор перестала корректно
обрабатываться кнопочка 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


Подробная информация о списке рассылки Sisyphus