# Problema eventi acpi (ac/battery)

## misterwine

Ero arrivato alla gestione del display su di un thinkpad t22 seguendo la guida per la gestione energetica quando mi son accorto che qualcosa non andava...

Praticamente il demone acpi cattura gli eventi ac e battery solo se lo script /etc/acpi/actions/pmg_switch_runlevel.sh non è eseguibile (dunque non riuscendo a cambiare runlevel da default a battery), non appena lo rendo eseguibile cattura il primo evento e poi basta, non ne prende altri.

```
sabrina misterwine # tail -f /var/log/acpid | grep "received event"

[Sun Apr  1 20:14:13 2007] received event "ac_adapter AC 00000000 00000000"

[Sun Apr  1 20:14:13 2007] received event "battery BAT0 00000080 00000001"

[Sun Apr  1 20:14:13 2007] received event "battery BAT0 00000080 00000001"

[Sun Apr  1 20:14:15 2007] received event "ac_adapter AC 00000000 00000001"

[Sun Apr  1 20:14:15 2007] received event "battery BAT0 00000080 00000001"

[Sun Apr  1 20:14:18 2007] received event "battery BAT0 00000080 00000001"
```

Questo per ricavare l' evento da inserire in /etc/acpi/events/pmg_ac_adapter e /etc/acpi/events/pmg_battery come da guida. Però noto una cosa, che a parte esserci eventi ripetuti (i primi 3 togliendo l'alimentazione, gli altri 3 inserendo il cavo dell' alimentatore), l' evento ac_adapter ha l' ultimo numero diverso nei due casi in cui compare.

Fatto sta che se lancio cpufreqd e acpid (senza lo script /etc/acpi/actions/pmg_switch_runlevel.sh eseguibile), avviene il cambio di frequenza della cpu in caso di ac_on o battery, però non quello di runlevel che mi interessa per cambiare la luminosità del display (non riuscendo a farglieli cambiare con lo script della guida).

Ho pensato che alla fine non vedo l' utilità del cambio di runlevel... si potrebbe creare uno script differente per la gestione della luminosità del display, però mi sa che rischio di fare solo casino.

 :Idea:  ?

----------

## misterwine

Lanciando lo script a mano, cioè dando

```
# /etc/acpi/actions/pmg_switch_runlevel.sh %e
```

funziona sempre... mi viene il dubbio che sia sbagliato qualcosa nei file che dovrebbero catturare gli eventi, però li ho presi uguali dalla guida:

```
#/etc/acpi/events/battery

event=battery BAT0 00000080 00000001

action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
```

```
#/etc/acpi/events/pmg_ac_adapter

event=ac_adapter AC 00000000 00000000

action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
```

Dove sbaglio?

----------

## riverdragon

Ho lo stesso problema, ma non avevo fatto caso al fatto che rendendo pmg_switch_runlevel non eseguibile funzionasse. Al momento io ho creato un launcher sul pannello su cui clicco ogni volta che cambio tipo di alimentazione.

Oggi provo a vedere se con il tuo consiglio riparte un po' di roba.

----------

## misterwine

Update: Noto con "piacere" che senza cpufreq in esecuzione il cambio di runlevel avviene senza problemi... non appena lancio anche cpufreqd (o lo aggiungo ai runlevel default e battery), avviene il cambio di frequenza della cpu inserendo o togliendo il cavo dell' alimentatore, però non il cambio di runlevel.   :Sad: 

(Anzi, per la precisione avviene una volta e poi basta)

----------

## riverdragon

Qui non funziona una mazza. Ho provato i casi che dici tu, ma il runlevel non cambia mai. Boh, non capisco.

----------

## GiRa

Dipende dagli eventi che crea la tua batteria. Prova a dare un tail -f /var/log/acpi e stacca/attacca l'alimentatore.

----------

## riverdragon

Eventi ce ne sono, ho seguito la guida per la gestione energetica tempo fa e tutto funzionava (almeno mi sembra). Adesso non sono davanti al mio pc, sarò più specifico stasera.

----------

