LINUX.ORG.RU

ACPI Events!!??


0

0

Hello all Что такое ACPI Events? А то поставил на ноут линукс и некоторые кнопки не работают (встроенного плеера, уровень звука и т.д.) В тех поддержке посоветовали настроить ACPI Events... Спасибо.

anonymous

Это такая геморройная фигня, так как на эти клавиши ещё нет графических конфигурялок. :-(

Если кратко, то acpi events--это строки, которые появляются в файле /proc/acpi/event, когда нажимаются соотв. клавиши. Их обрабатывает сервис acpid, он также их дублирует в сокет /var/run/acpid.socket

Настраивается написанием скриптов.

mr ★★
()
Ответ на: комментарий от fishor

>Работает все без дополнительного гемороя

А как оно работает?

Слушай, не можешь объяснить поподробнее? А то я при загрузке дал параметр acpi_generic_hotkey, модуль hotkey загрузил, а дальше что? А то из acpi-hotkey.txt не очень понятно. Буду благодарен за помощь.

mr ★★
()
Ответ на: комментарий от mr

Ты в /var/log/acpid заглядывал? Там обычно полсе нажатия какой либо кнопки должно отображаться как этот эвент называеться. По крайней мере так оно работаеть на азусе A6W, и потом скрипт в /etc/acpi/event/скрипт отредактировал. А на самсунге nv5000 достаточно было модуль подгррузить.

На это страничке есть пример скрипта

http://de.wikibooks.org/wiki/Asus_M6N-Kompendium:_ACPI

Хоть она и на немецком но мне кажеться тут и так все понятно.

fishor
()
Ответ на: комментарий от fishor

Так и не понятно, в чём преимущество использования этого generic hotkey перед тем же asus_acpi для ноутов asus. Просмотрев ссылку с columbia.edu такое впечатление, что наоборот там надо чего-то настраивать, чтоб acpi events заработали, а при загрузке соотв. модуля (напр. asus_acpi для asus) acpi events сразу работают и можно сразу же acpid настраивать. Чего-то я не понимаю...

mr ★★
()
Ответ на: комментарий от mr

Это кусок кода из азас модуля. Тут видно что он работает только с 
железом которое тут прописсано.

struct asus_hotk {
        struct acpi_device *device;     //the device we are in
        acpi_handle handle;     //the handle of the hotk device
        char status;            //status of the hotk, for LEDs, ...
        struct model_data *methods;     //methods available on the laptop
        u8 brightness;          //brightness level
        enum {
                A1x = 0,        //A1340D, A1300F
                A2x,            //A2500H
                D1x,            //D1
                L2D,            //L2000D
                L3C,            //L3800C
                L3D,            //L3400D
                L3H,            //L3H, but also L2000E
                L4R,            //L4500R
                L5x,            //L5800C
                L8L,            //L8400L
                M1A,            //M1300A
                M2E,            //M2400E, L4400L
                M6N,            //M6800N
                M6R,            //M6700R
                P30,            //Samsung P30
                S1x,            //S1300A, but also L1400B and M2400A (L84F)
                S2x,            //S200 (J1 reported), Victor MP-XP7210
                xxN,            //M2400N, M3700N, M5200N, S1300N, S5200N, W1OOON                //(Centrino)
                END_MODEL
        } model;                //Models currently supported
        u16 event_count[128];   //count for each event TODO make this better
};

/* Here we go */
#define A1x_PREFIX "\\_SB.PCI0.ISA.EC0."
#define L3C_PREFIX "\\_SB.PCI0.PX40.ECD0."
#define M1A_PREFIX "\\_SB.PCI0.PX40.EC0."
#define P30_PREFIX "\\_SB.PCI0.LPCB.EC0."
#define S1x_PREFIX "\\_SB.PCI0.PX40."
#define S2x_PREFIX A1x_PREFIX
#define xxN_PREFIX "\\_SB.PCI0.SBRG.EC0."

fishor
()
Ответ на: комментарий от fishor

Хоткей модуль призван работать на любом лаптопе и если acpi было собранно должным образом то все нужный кнопки должны работать без проблем. Мелкософт использует похожий модуль и если на твоем лаптопе фн кнопки работает на винде без дополнительного драйвера, то нужно оформить багрепорт.

fishor
()
Ответ на: комментарий от fishor

Выяснилось, что у меня на asus a3500l при включённом generic hotkey driver работают почему-то только 2 acpi кнопки.
Про все остальные в логах acpid тишина.

Почитал по ссылке из columbia.edu => включил дебуггинг. При этом выпадает немыслимая куча сообщений.
Пробовал грепить, напр, так:

tail -n 1000000 /var/log/messages |grep -i PCI0| grep -v Untyped|grep 04:00

Apr 10 04:00:00 blin2 kernel: nsdump-0087 [1A6F] [571] ns_print_pathname : [_SB_.PCI0.SBRG.EC0_.ACAP]
Apr 10 04:00:00 blin2 kernel: nssearch-0138 [1A6F] [573] ns_search_node : Name [PCI0] (Device) c1477868 found in scope [Entry
Apr 10 04:00:04 blin2 kernel: nsnames-0245 [0009] [582] ns_handle_to_pathname : \_SB_.PCI0.SBRG.EC0_._Q20 [1A]
Apr 10 04:00:04 blin2 kernel: Execute Method: [\_SB_.PCI0.SBRG.EC0_._Q20] (Node df700f68) utalloc-0524 [0009] [582] ut_free_and_track : ----Entry d5348468
Apr 10 04:00:05 blin2 kernel: nssearch-0138 [1A6F] [578] ns_search_node : Name [SBRG] (Device) c14789a8 found in scope [PCI0] c1477868


(я нажал кнопку в 4:00:00 часов) Видно, что это что-то связанное с делом.

А вот дальше не очень понятно как. Пробовал по аналогии с докой команды типа:
echo '0:_SB::_SB_.PCI0.SBRG.EC0_.ACAP:_BCM:128:136' > /proc/acpi/hotkey/event_config
Но никакой реакции. И не очень понятно, что там в полях должно быть.

Какие будут предложения? Может пора сдаться и отказаться от generic hotkey driver на моём ноуте? Мне-то он и не нужен.

mr ★★
()
Ответ на: комментарий от fishor

Ладно, спасибо за ссылки, как-нибудь непременно разбирусь с этим.

mr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.