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

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: