# acpi su Dell laptop [risolto]

## anborn

Ciao gechi-people!  :Smile: 

Ho un problemino con acpi:

kernel 2.6.1 gentoo

Trova tutto, funziona tutto.. ecc.. insomma VA! ..ma...

nessuna applicazione (vedi l'applet di Gnome o Gkrellm o altre applettine di Fluxbox) riesce a leggere "cosa gli passa" acpi:

Cioè, ad esempio, mi rilevano la spina agganciata alla corrente, ma mi segnano tutte batteria a 0.. quando invece è al 100!   :Confused: 

E poi non riescono a vedere la temperatura, ecc..

Avete idea di cosa sia/di come risolvere?

Ciao

AnbLast edited by anborn on Sun Feb 22, 2004 11:47 pm; edited 2 times in total

----------

## MyZelF

```
$ dmesg | grep ACPI
```

che dice?

----------

## anborn

Dice che funzia tutto...

gli IRQ li piazza tramite Acpi ecc..

No no, dmesg dice "Qui tutto ok, capo!"  :Laughing: 

E' per questo che non so bene cosa fare.. non ho neanche un errore su cui lavorare...

(ora non posso piazzare qui l'output di dmesg perchè sto lavorando su un altro pc.. stasera lo piazzo).

Anb

----------

## MyZelF

Il punto è che, da quello che dici, pare che rilevi l'alimentazione, e dovresti avere qualcosa del genere

```
ACPI: AC Adapter [C11B] (on-line)
```

ma non la batteria, per cui dovresti avere qualcosa del genere

```
ACPI: Battery Slot [C11D] (battery present)

ACPI: Battery Slot [C11C] (battery absent)

```

allo stesso modo per la temperatura

```

ACPI: Thermal Zone [TZ1] (27 C)

ACPI: Thermal Zone [TZ2] (21 C)

ACPI: Thermal Zone [TZ3] (16 C)

```

quindi anche se non ti dà errori è possibile che per qualche motivo non rilevi queste risorse ACPI.

Per inciso, sul mio portatile, svariate release del kernel fa, accadeva esattamente la stessa cosa, e al tempo avevo risolto editando a manina la DSDT table (dovresti trovare maggiori informazioni a riguardo su http://acpi.sourceforge.net).

----------

## shev

Ma per la temperatura non ci vogliono i2c e lm-sensors? Acpi non dovrebbe c'entrare molto. Esistono howto anche su gechi.it per far funzionare sensori della temperatura, gkrellm e affini.

----------

## MyZelF

 *Shev wrote:*   

> Ma per la temperatura non ci vogliono i2c e lm-sensors? 

 

Non necessariamente. Se c'è il supporto da parte dell'hw è possibile monitorare la temperatura anche attraverso ACPI.

Lo puoi vedere dal brandello di dmesg che ho postato, oppure dalle ACPI Specifications, Section 12 (Thermal management).

----------

## anborn

Dunque,

il dmesg mi ritorna il tutto, comprese le linee da te citate (la Battery mi segna "present").

L'unica cosa "strana" del dmesg é questa.. anche se non so quanto centri con acpi:

```

i8k: unable to get SMM Dell signature

i8k: unable to get BIOS version

```

Quindi.. l'unica cosa da fare é.. frugare sul sito di Acpi e provare a editare a manina il file "sarca" sperando di non far esplodere tutto??  :Sad: 

Anb

----------

## MyZelF

Quindi da /proc/acpi/* riesci ad accedere ai dati sulle batterie e le thermal zone?

Hai verificato che le applet che stai utilizzando supportino effettivamente ACPI e non solo APM?

----------

## anborn

Uhmmm.... 

i file relativi alle varie componenti di acpi ci sono anche se...

...per la battery mi dice: present, ma tutte le altre info (potenza, ecc..) le mette tutte a 0 mWh... that's strange...  :Confused: 

E poi ho notato che, sotto alle info del processore c'é: 

```
power management: no
```

 uhmm... /me perplesso e un po' intimorito

Che dite? Che in realtà ACPI non sta funzionando per niente? (please... apm non mi va...  :Crying or Very sad:  )

Anb

----------

## MyZelF

Se il tuo portatile è particolarmente nuovo, tieni aggiornati il bios e il kernel, in modo da usare sempre le patch acpi più recenti.

Prova a cercare se qualcuno con il tuo stesso modello (a proposito: qual è?) ha risolto, eventualmente (se forum e google non bastano) chiedendo direttamente nella ml di acpi4linux o spulciando tra gli archivi.

Hai già provato a vedere se esistono DSDT table modificate per il tuo modello, nel DSDT repository?

----------

## anborn

Wrap-up degli ultimi tentativi:

1. Aggiornato il BIOS, senza ri-compilare il kernel non cambia nulla. (la ricompilazione la tengo come ultima possibilità)

2. Trovato il DSDT adatto e scaricato

3. Letto che un sacco di gente ha avuto problemi con ACPI..e trovato una guida per modificare la table dsdt patchando il kernel

4. PROBLEMA: Uso un kernel 2.6.1... e la guida é per kernel 2.4.22

5. PROBLEMA: Anche se avessi la guida adatta mi impappinerei nel tentativo

6. Conclusione: MyZelf, carissimo... non é che mi scrivi bene come fare??  :Very Happy: 

Anb

PS= Lo so.. non ho neanche scritto in italiano... chiedo scusa.. ma insisto con la mia richiesta..  :Razz: 

----------

## vificunero

Anche io ho un dell (precisamente un ispiron 5100 con bios aggiornato all' A26).

Con il kernel 2.4.22 e le modifiche trovare in internet era possibile monitorare la % rimanente di batteria. Con il 2.6 era possibile farlo senza alcuna modifica.

Ora invece ho questo output (con il 2.6.1):

```
ACPI: RSDP (v000 DELL                                      ) @ 0x000fdf00

ACPI: RSDT (v001 DELL    CPi R   0x27d30c0a ASL  0x00000061) @ 0x1fff0000

ACPI: FADT (v001 DELL    CPi R   0x27d30c0a ASL  0x00000061) @ 0x1fff0400

ACPI: DSDT (v001 INT430 SYSFexxx 0x00001001 MSFT 0x0100000e) @ 0x00000000

ACPI: Subsystem revision 20031203

 tbxface-0117 [03] acpi_load_tables      : ACPI Tables successfully acquired

ACPI Namespace successfully loaded at root c056dcfc

ACPI: IRQ9 SCI: Edge set to Level Trigger.

evxfevnt-0093 [04] acpi_enable           : Transition to ACPI mode successful

ACPI: Interpreter enabled

ACPI: Using PIC for interrupt routing

ACPI: PCI Root Bridge [PCI0] (00:00)

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]

ACPI: PCI Interrupt Link [LNKA] (IRQs 9 10 *11)

ACPI: PCI Interrupt Link [LNKB] (IRQs 5 7)

ACPI: PCI Interrupt Link [LNKC] (IRQs 9 10 *11)

ACPI: PCI Interrupt Link [LNKD] (IRQs 5 7 9 10 *11)

ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)

ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]

ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIE._PRT]

ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11

ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11

ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11

ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11

ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11

ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 11

PCI: Using ACPI for IRQ routing

ACPI: AC Adapter [AC] (on-line)

ACPI: Battery Slot [BAT0] (battery present)

ACPI: Lid Switch [LID]

ACPI: Power Button (CM) [PBTN]

ACPI: Sleep Button (CM) [SBTN]

ACPI: Processor [CPU0] (supports C1, 8 throttling states)

ACPI: Thermal Zone [THM] (25 C)

ACPI: (supports S0 S1 S3 S4 S4bios S5)

```

Inoltre sempre il kernel mi avvisa di questo:

```
Dell Inspiron with broken BIOS detected. Refusing to enable the local APIC
```

Sta di fatto che segnala la batteria sempre a 25C. Il modulo i8k funziona forzandone il caricamento. Quindi è possibile monitorare la temperatura del processero e regolare il funzionamento della ventola. Con hddtemp, inoltre, è possibile monitorare la temperatura del disco fisso.

Chiaramente  la mancanza della carica rimanente in batteria, e pure le funzioni di risparmio energetico, è paritcolarmente fastidioso per chi lavora molto spesso disconnesso.

In altre discussioni, però, mi è parso di capire che lo stesso problema si presenta anche ad altri pc non dell.

----------

## anborn

Uhmm... hai gli stessi output che ho io... ma scusa un attimo...

A me da:

Temperatura: fissa a 25 C

Spina agganciata: sì - no

Batteria: 0 fisso (e anche i dati della batteria, potenza, ecc..)

Come fai a regolare temperatura del Processore e Ventola???

E poi.. i vari monitor di sistema (gkrellm o dockapp di fluxbox/wmaker o applet di gnome) ti dicono qualcosa??

Anb

----------

## vificunero

 *anborn wrote:*   

> Uhmm... hai gli stessi output che ho io... ma scusa un attimo...
> 
> A me da:
> 
> Temperatura: fissa a 25 C
> ...

 

Anche io ho la stessa situazione ma è possibile intervenire sulle ventole e monitorare la temperature del processore in questo modo:

nel kernel , in Processor Type and Features, abiliti come modulo il Dell Laptop Support.

Poi :

```
root@gentoo linux-2.6.1-rc3-gentoo # emerge -s i8k

Searching...

[ Results for search key : i8k ]

[ Applications found : 2 ]

  

*  sys-apps/i8kutils

      Latest version available: 1.17

      Latest version installed: 1.17-r1

      Size of downloaded files: 36 kB

      Homepage:    http://people.debian.org/~dz/i8k/

      Description: Dell Inspiron and Latitude utilities

      License:     GPL-2

 

*  x11-plugins/i8krellm [ Masked ]

      Latest version available: 2.5

      Latest version installed: 2.5

      Size of downloaded files: 15 kB

      Homepage:    http://www.coding-zone.com/i8krellm.phtml

      Description: GKrellM2 Plugin for the Dell Inspiron and Latitude notebooks

      License:     GPL-2

 

```

Una volta emersi carichi il modulo in questo modo:

```
modprobe i8k force=1
```

Occhio però perchè una volta caricato può succedere che la ventola non giri. Almeno fino a quando non lanci:

```
i8kfan
```

O abiliti il plugin in gkrellm. Il monitoraggio della carica della batteria comunque non funziona nemmeno con questo modulo (almeno a me).

Chiaramente non mi assumo responsabilità per eventuali danni ecc ecc...

 :Very Happy: 

----------

## anborn

Ma dici che avere il supporto Dell-laptop built-in (come ce l'ho io) ..non funzica?

L'unico punto, se ho ben capito (a parte emergere i8k) é forzane l'uso..

C'é un modo di farlo senza dover ricompilare il kernel per metterlo a modulo? (non c'ho proprio voglia di mettermi lì per l'ennesima volta...)

Anb

PS= Grazie un casino, mi stai letteralmente tirando fuori dalla ...  :Very Happy: 

----------

## vificunero

 *anborn wrote:*   

> Ma dici che avere il supporto Dell-laptop built-in (come ce l'ho io) ..non funzica?
> 
> L'unico punto, se ho ben capito (a parte emergere i8k) é forzane l'uso..
> 
> C'é un modo di farlo senza dover ricompilare il kernel per metterlo a modulo? (non c'ho proprio voglia di mettermi lì per l'ennesima volta...)
> ...

 

Sinceramente non lo so se funziona anche con il supporto built-in. Potresti comunque provare ad emergere le i8kutils e lanciare i8kmon: dovrebbe comparire un minuscola finestrella con la temperatura e un riquadro che segna la velocità corrente della ventola (o ventole a seconda del pc). Cliccando sul quadratino la ventola dovrebbe spegnersi o attivarsi a seconda dello stato in corso. Molto più comodo sicuramente il plugin di gkrell che consente facilmente il passaggio dallo stato automatico a quello manuale e l'impostazione dei livelli di guardia di temperatura.

Per avere il modulo penso proprio che tu debba compilarlo. Con il kernel 2.6.x la mia impressione è che questo genere di operazioni sia un po' più veloce rispetto alla serie passata.

----------

## almafer

ho letto nei changelog del 2.6.2-rc3 che ci sono parecchie risoluzioni legate a problemi con acpi, magari basta aspettare solo il 2.6.2  :Wink: 

----------

## vificunero

 *almafer wrote:*   

> ho letto nei changelog del 2.6.2-rc3 che ci sono parecchie risoluzioni legate a problemi con acpi, magari basta aspettare solo il 2.6.2 

 

Bene. Perchè provando il 2.6.2-rc2-mm1 purtroppo la situazione non cambia.. almeno sul mio portatile.   :Smile:    (ciao almafer).

----------

## MyZelF

Non hai ancora postato l'output di dmesg ed il modello del portatile.

 *anborn wrote:*   

> 
> 
> 6. Conclusione: MyZelf, carissimo... non é che mi scrivi bene come fare?? 
> 
> 

 

Il punto di partenza è questo.

I passi da seguire, in breve, sono questi. Visto che hai la fortuna di avere una DSDT già modificata non ti serve fare il dump della tua, modificarla e ricompilarla.

Attenzione all'applicazione della patch a osl.c su 2.6: probabilmente dovrai modificare a mano il file.

Ah, molto interessante anche questo nuova patch che consente di passare una DSDT modificata al kernel tramite initrd (quindi dà la possibilità di cambiare DSDT senza ricompilare il kernel).

Buona lettura...  :Smile: 

----------

## almafer

 *vificunero wrote:*   

>  *almafer wrote:*   ho letto nei changelog del 2.6.2-rc3 che ci sono parecchie risoluzioni legate a problemi con acpi, magari basta aspettare solo il 2.6.2  
> 
> Bene. Perchè provando il 2.6.2-rc2-mm1 purtroppo la situazione non cambia.. almeno sul mio portatile.     (ciao almafer).

 

ciao  :Very Happy: 

----------

## anborn

YESSS!

Non ho provato il kernel 2.6.2... ma con il 2.6.3 acpi c'é, si vede, e funziona   :Very Happy: 

Ho settato come modulo del kernel il famigerato "dell support" (o simile.. non mi ricordo il nome preciso) e emerso i8kutils

dopodiché in /etc/modules.autoload/kernel-2.6 ho aggiunto: 

```
i8k force=1
```

 come consigliato da vificunero... e il gioco é fatto..  :Wink: 

Non sono stato troppo ad indagare su cosa funzioni bene e cosa invece sia ancora latitante... mi é bastato vedere che non ho avuto bisogno di deliri DSDT et simili..

Ciao (e grazie) a tutti!

Anb

PS= [risolto] flag in arrivo..  :Smile: 

/* EDIT

Ho cambiato il nome del topic in uno un po' più indicativo...

*/

----------

## quantumwire

Io invece ho un altro problema:

ho compilato acpi nel kernel e tutte le sue "estensioni" come moduli ovvero thermal, processor, battery, button, asus extra... ma qualcosa di strano accade!

Sostanzialmente se faccio un

```
# cat /proc/acpi/event
```

 non vedo nessun evento relativo alla batteria del tipo

```
battery BAT0 00000xx 00000xx
```

ma solo degli eventi relativi alla pressione di qualche tasto???!!!  :Shocked: 

Non so se mi sono spiegato... stacco e riattacco l'alimentazione e mi appare

```
hotkey HOTK 00000069 00000000

hotkey HOTK 00000058 00000000

hotkey HOTK 00000069 00000001

hotkey HOTK 00000057 00000001

hotkey HOTK 00000069 00000002

hotkey HOTK 00000058 00000001

hotkey HOTK 00000069 00000003

hotkey HOTK 00000057 00000002

hotkey HOTK 00000069 00000004

hotkey HOTK 00000058 00000002

hotkey HOTK 00000069 00000005

```

Nell'esempio sopra l'ho staccata e riattaccata 3 volte!!!  :Shocked:   :Shocked:   :Shocked: 

----------

## quantumwire

Io invece ho un altro problema:

ho compilato acpi nel kernel e tutte le sue "estensioni" come moduli ovvero thermal, processor, battery, button, asus extra... ma qualcosa di strano accade!

Sostanzialmente se faccio un

```
# cat /proc/acpi/event
```

 non vedo nessun evento relativo alla batteria del tipo

```
battery BAT0 00000xx 00000xx
```

ma solo degli eventi relativi alla pressione di qualche tasto???!!!  :Shocked: 

Non so se mi sono spiegato... stacco e riattacco l'alimentazione e mi appare

```
hotkey HOTK 00000069 00000000

hotkey HOTK 00000058 00000000

hotkey HOTK 00000069 00000001

hotkey HOTK 00000057 00000001

hotkey HOTK 00000069 00000002

hotkey HOTK 00000058 00000001

hotkey HOTK 00000069 00000003

hotkey HOTK 00000057 00000002

hotkey HOTK 00000069 00000004

hotkey HOTK 00000058 00000002

hotkey HOTK 00000069 00000005

```

Nell'esempio sopra l'ho staccata e riattaccata 3 volte!!!  :Shocked:   :Shocked:   :Shocked: 

----------

## _jd

un pò OT, ma quanto dovrebbe essere la T della cpu? sul mio portatile toshiba è sempre tra 50 e 60 °C e la ventolina parte mi pare oltre i 55...

----------

## Pat-rizio

Per l'OT:

Sul mio Asus M3452C a riposo sta sui 45-50 gradi, ma in compilazione violenta raggiunge i 75 gradi!

Come posso testare i giri della ventola?Secondo me sta sempre a giri troppo bassi.

Grazie in anticipo,

Pat

----------

## fedeliallalinea

 *Pat-rizio wrote:*   

> Sul mio Asus M3452C a riposo sta sui 45-50 gradi, ma in compilazione violenta raggiunge i 75 gradi!
> 
> Come posso testare i giri della ventola?Secondo me sta sempre a giri troppo bassi.

 

lmsensor?

----------

