Re: Как бы в ACPI разобраться
On 2008.10.06 at 16:07:39 +0400, Dmitry Marin wrote:
> Victor Wagner wrote:
>
> >То есть Вы рекомендуете править скрипты. А с описаниями событий
> >связываться только тогда, когда на данное событие никакой реакции не
> >предусмотрено.
>
> Как вариант, можно писать свой и "переключать" биндинг на него.
>
> >Помнится, на старом ноутбуке, где ACPI вообще толком не было, а был
> >APM, была такая программка ntpctl, которая выводила в текстовом
>
> Посмотрел домашнюю страницу ntpctl; она все-таки завязана на
> определенную модель,
Я её приводил как ПРИМЕР организации взаимодействия пользователя с
системой управления аппаратными событиями.
> а аcpi -- штука универсальная. Так что если, как я
Ой, не настолько она универсальная. Это примерно как обсуждавшиеся
недавно в рассылке шеллы. Вроде шелл и везде шелл, а как до дела дойдет
- такая уйма тонких различий. Особенно, если учесть привычку вендоров
прошивать в BIOS кривые DSDT, которые в windows как-то работают, а в
более других системах порождают глюки и взаимонепонимание системы и
железа.
> понимаю, у различных производителей коды для одинаковых событий
> более-менее тоже одинаковые, то уже написанные скрипты пользователя
> должны устроить.
А вот меня - не устроили. Привередливый я, наверное. То есть сами
скрипты-то плюс-минус устроили. А вот соответствие их источникам событий
- нет. Хочется перевесить.
В хорошем интерфейсе простые вещи делаются просто, а сложные - возможны.
Интерфейс скриптов acpi-support сейчас выглядит как "если вас не
устраивает поведение по умолчанию, то и простые, и сложные изменения
одинаково сложны".
> А что-то подобное ntpctl для консоли можно написать как обвязку к
Можно. Но почему-то не сделано. Интересно, что помешало.
> Зависит, наверное, от реализации acpi. Обычно же закрытие крышки
Судя потому, что скрипт lid.sh один-единственный, и в нем это сделано
именно так - предполагается, что скрипт вызывается, и при закрытии, и
при открытии, и проверяет состояние крышки, это не от реализации
зависит.
> Но я знаю и примеры, когда это не так: в моем текущем ноутбуке, две
> различные клавиши изменения яркости подсветки генерируют один и тот же
> apci-event, что при увеличении яркости, что при снижении.
И как это предлагается различать?
Вообще acpi-event это штука достаточно хитрая. Там несколько слов,
разделенных какими-то разделителями (слэшами, пробелами, точками).
Именно поэтому хочется найти вменяемое описание, а не гадать методом
тыка. (да acpi_listen - это тоже методом тыка).
А то глюки всякие случаются. Вот на EEE PC написал свой апплет для
контроля заряда аккумуляторов. Поствил на X50L, а он мне при полном
заряде 18% кажет. В чем дело?
Стал разбиратсья, и выяснил что в формуле
100*$capacity_now/$capacity_full
происходит переполнение 32-битного целого.
Я уж не говорю о том, что у EEE соответствующие файлики в
/sys/class/power_supply/BAT0 называются charge_full и charge_now,
а у X50L - energy_full и energy_now. Это в одном и том же ядре.
Reply to: