# [kernel]pb ACPI

## nykos

j'ai essayé le new gentoo-sources 2.6.16

au démarrage il me marque : 

```
ACPI support has not been compiled into the kernel
```

et ACPI ne marche plus !

pourtant au niveau de la config du kernel j'ai rien changé de tout ce qui est ACPI....

 :Sad: 

----------

## yoyo

Peux-tu poster le résultat d'un  zgrep ACPI /proc/config.gz ?

----------

## nykos

```
# ACPI (Advanced Configuration and Power Interface) Support

CONFIG_ACPI=y

CONFIG_ACPI_SLEEP=y

CONFIG_ACPI_SLEEP_PROC_FS=y

CONFIG_ACPI_SLEEP_PROC_SLEEP=y

CONFIG_ACPI_AC=y

CONFIG_ACPI_BATTERY=y

CONFIG_ACPI_BUTTON=y

CONFIG_ACPI_VIDEO=m

# CONFIG_ACPI_HOTKEY is not set

CONFIG_ACPI_FAN=y

CONFIG_ACPI_PROCESSOR=m

CONFIG_ACPI_THERMAL=m

# CONFIG_ACPI_ASUS is not set

# CONFIG_ACPI_IBM is not set

# CONFIG_ACPI_TOSHIBA is not set

CONFIG_ACPI_BLACKLIST_YEAR=0

# CONFIG_ACPI_DEBUG is not set

CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y

CONFIG_ACPI_SYSTEM=y

# CONFIG_ACPI_CONTAINER is not set

# CONFIG_X86_ACPI_CPUFREQ is not set

```

----------

## nykos

personne ? yoyo ?

----------

## yoyo

Tu as bien fait la commande indiquée ?? Et pas un grep sur le /usr/src/linux/.config ??

Parce que là je n'ai pas trop d'idée ...

----------

## nykos

oui oui j'ai bien fait la commande indiquée   :Sad: 

----------

## BuBuaBu

a quel moment tu as cette erreur ?

----------

## nykos

lors du démarrage, quand ya tout qui défile :

```
INIT: Entering runlevel: 3

Starting syslog-ng ...

ACPI support has not been compiled into the kernel

Loading ALSA modules ...

```

et ya !! en rouge au lieu du OK

----------

## kernelsensei

t'as bien /proc de monté ? car le morceau de code qui te lache cette erreur c'est ca : 

```
checkconfig() {

    if [ ! -e /proc/acpi ]; then

        eerror "ACPI support has not been compiled into the kernel"

        return 1

    fi

}

```

----------

## nykos

oui il est monté :

```
# more /etc/mtab

proc /proc proc rw 0 0
```

et 

```
# cat /proc/cpuinfo

processor       : 0

vendor_id       : AuthenticAMD

..........
```

mais c'était bien tenté !

je précise, mon système marche plutot bien à part l'ACPI qui a disparu...

EDIT : Précision : effectivement /proc/acpi n'est plus la !

----------

## kernelsensei

acpi desactivé au niveau bios peut etre ?

----------

## nykos

ben j'ai pas changé mon bios et ça marchait avant !

ça me l'a fait juste à partir du moment où je suis passé en 2.6.16

donc je pense plutôt que c'est dû à ça...

----------

## yoyo

Si j'ai une petite idée tiens ... As-tu activé le RC_PARALLEL_STARTUP (fichier /etc/conf.d/rc) ??

Essaie en le passant à "no".

----------

## nykos

```
RC_PARALLEL_STARTUP="no"
```

--> il est déjà à no

----------

## nykos

j'ai compilé mon kernel avec acpi->debug activé, et j'ai fait un dmesg après le boot :

```
 $ dmesg | grep ACPI

 BIOS-e820: 000000003ff40000 - 000000003ff50000 (ACPI data)

 BIOS-e820: 000000003ff50000 - 0000000040000000 (ACPI NVS)

ACPI: RSDP (v000 MSI                                   ) @ 0x00000000000f83c0

ACPI: RSDT (v001 MSI    1029     0x11302005 MSFT 0x00000097) @ 0x000000003ff40000

ACPI: FADT (v002 MSI    1029     0x11302005 MSFT 0x00000097) @ 0x000000003ff40200

ACPI: MADT (v001 MSI    OEMAPIC  0x11302005 MSFT 0x00000097) @ 0x000000003ff40300

ACPI: WDRT (v001 MSI    MSI_OEM  0x11302005 MSFT 0x00000097) @ 0x000000003ff40360

ACPI: MCFG (v001 MSI    OEMMCFG  0x11302005 MSFT 0x00000097) @ 0x000000003ff403b0

ACPI: SSDT (v001 OEM_ID OEMTBLID 0x00000001 INTL 0x02002026) @ 0x000000003ff43510

ACPI: OEMB (v001 MSI    MSI_OEM  0x11302005 MSFT 0x00000097) @ 0x000000003ff50040

ACPI: DSDT (v001    MSI     1029 0x11302005 INTL 0x02002026) @ 0x0000000000000000

ACPI: PM-Timer IO Port: 0x4008

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)

ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])

ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)

ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)

ACPI: IRQ0 used by override.

ACPI: IRQ2 used by override.

Using ACPI (MADT) for SMP configuration information

 tbxface-0109 [02] load_tables           : ACPI Tables successfully acquired

ACPI Namespace successfully loaded at root ffffffff804662c0

evxfevnt-0091 [03] enable                : Transition to ACPI mode successful

ACPI: bus type pci registered

ACPI: Subsystem revision 20060127

ACPI: SCI (IRQ0) allocation failed

ACPI Exception (evevent-0167): AE_NOT_ACQUIRED, Unable to install System Control Interrupt handler [20060127]

ACPI: Unable to start the ACPI Interpreter

evxfevnt-0134 [06] disable               : ACPI mode disabled

ACPI (utalloc-0862): No outstanding allocations [20060127]

ACPI Exception (utmutex-0257): AE_BAD_PARAMETER, Thread 1 could not acquire Mutex [6] [20060127]

ACPI Exception (utmutex-0257): AE_BAD_PARAMETER, Thread 1 could not acquire Mutex [6] [20060127] 
```

----------

## Mickael

Salut,

alors tes problèmes d'acpi peuvent, et je dis bien si, car d'une part je ne suis pas du tout un spécialiste et d'autre part je n'ai jamais essayé de jouer avec... cependant j'ai déjà fait quelques recherches la-dessus juste histoire de... qui m'ont conduit à ne rien tenter. Alors : ton dmesg retourne des choses très intéressantes mais qui malheureusement ne sont pas très bonne pour toi, en l'occurence : 

 *Quote:*   

> 
> 
> ACPI: RSDT (v001 MSI    1029     0x11302005 MSFT 0x00000097) @ 0x000000003ff40000
> 
> ACPI: FADT (v002 MSI    1029     0x11302005 MSFT 0x00000097) @ 0x000000003ff40200
> ...

 

Le point positif c'est que le DSDT de ton pc est compilé avec un compilateur Intel. C'est bien car ce dernier n'accepte aucune erreur lors de la compilation du DSDT (L'ACPI utilise surtout les infos issue du DSDT). Par contre les autres éléments dont j'ignore la signification, RSDT FADT etc, sont eux compilés avec le compilateur de microsoft qui lui tolère un grand nombres d'erreurs, donc cela prédit rien de bon quant à la qualité de ces fonctions : sont-elles buggées ou non?  et pire on-t-ils induits en erreur le compilateur Intel à son insue!!

Dans ce cas, l'ACPI peut ne pas reconnaitre certains élements de ta configuration. 

C'est bien joli tout ça, tu voudrais bien une solution, et bien j'en ai pas. La seule info que j'ai viens d'ici : http://fr.gentoo-wiki.com/HOWTO_Corriger_les_probl%C3%A8mes_courants_li%C3%A9s_%C3%A0_l'ACPI. Ou l'on apprend comment obtenir un DSDT et un ECDT (si tu as un portable) correcte si ce dernier est compilé avec un compilateur crosoft, ce qui n'est pas ton cas.

Voili/voilà, mais bon si je tombe sur quelque chose plus intéressantes je t'en ferai part.

EDIT : La petite manipulation pour voir si ton DSDT est buggé (tiré de la doc) : 

```
emerge iasl
```

 *Quote:*   

> On va maintenant récupérer le DSDT, le désassembler et le recompiler.

 

 *Quote:*   

> 
> 
>    * Extraire le DSDT compilé actuellement utilisé dans un fichier : 
> 
> 

 

```

# cat /proc/acpi/dsdt > dsdt.dat

```

 *Quote:*   

> 
> 
>     * Désassembler le DSDT en utilisant IASL : 
> 
> 

 

```

# iasl -d dsdt.dat

```

 *Quote:*   

> 
> 
>     * Recompiler le DSDT, toujours avec IASL : 
> 
> 

 

```

# iasl -tc dsdt.dsl

```

MAIS JE NE GARANTI PAS QUE CETTE MANIPULATION EST SANS RISQUE

----------

## BuBuaBu

C'est quoi le pc ?

Tu a essayé de retiré des options ACPI dans le kernel ?

----------

## Mickael

Si cela viens de ton DSDT j'ai ceci : http://acpi.sourceforge.net/dsdt/index.php. En espérant que tu y trouveras ton bonheur.

Et ceci vraiment très bien : http://www.traduc.org/docs/HOWTO/lecture/ACPI-HOWTO.html#N10111

On progresse!!, ce dernier lien est pas si mal. J'ai testé cette commande afin de voir si mon noyo 2.6.15.r1 gentoo-sources possédait un patch qui permetterait d'utiliser toutes (aux mieux) ou certaines de ces fonctionnalités : 

```

$ dmesg | grep ACPI.*Subsystem\ revision

ACPI: Subsystem revision 20050902
```

Et toi cela donne quoi?

AS-tu l'APM qui fonctionne en même temps : 

 *Quote:*   

> Ne laissez pas apmd et acpid s'exécuter en même temps à moins que vous ne sachiez réellement ce que vous faites.

 

----------

## nykos

micktux, cette commande ne donne rien chez moi, l'acpi ne fonctionne pas

de plus pour la dsdt j'avais déjà une fois essayé de la décompiler et elle ne recompilait pas

je vais m'y remettre en essayant de trouver l'erreur

mais /proc/acpi n'existe plus, je vais essayer avec l'ancien kernel

bubuabu, mon pc est un targa (voir signature), la DSDT n'existe pas encore pour celui là

non j'ai pas essayé d'enlever des options dans le kernel car jusqu'au 2.6.15 ça marchait

----------

## Mickael

 *nykos wrote:*   

> micktux, cette commande ne donne rien chez moi, l'acpi ne fonctionne pas
> 
> 

 

Laquelle, j'en ai citées plusieures.

Si c'est la dernière, alors il te faudra patcher ton noyo 16.

----------

## nykos

c'est la dernière

mais avec le kernel 2.6.15-r7 elle fait il me sort ça :

```
turion ~ # dmesg | grep ACPI.*Subsystem\ revision

ACPI: Subsystem revision 2005
```

c'est pour ça que je précise bien que c'est depuis le 2.6.16 que ça me le fait, c'est ça qui m'intrigue

----------

## nykos

ah oui donc la recompilation échoue : 

```
turion dsdt # iasl -tc dsdt.dsl

Intel ACPI Component Architecture

ASL Optimizing Compiler version 20060127 [Feb 24 2006]

Copyright (C) 2000 - 2006 Intel Corporation

Supports ACPI Specification Revision 3.0a

dsdt.dsl  1243:                             Package (0x06)

Error    1045 -               Initializer list too long ^

ASL Input:  dsdt.dsl - 3431 lines, 112873 bytes, 1220 keywords

Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 445 Optimizations

```

je vous met les quelques lignes concernant l'erreur :

```
                                    0x0000000000000000, // Register Address

                                    )

                            }

                        })

                        Name (_PSS, Package (0x03)

                        {

-->                        Package (0x06)

                            {

                                0x00000708, 

                                0x00005DC0, 

                                0x00000064, 

                                0x00000007, 

                                0xE0202A8A, 

                                0x0000028A

                            }, 

                            Package (0x06)

                            {

                                0x00000640, 

                                0x00004DBC, 

                                0x00000064, 

                                0x00000007, 

                                0xE0202B08, 

                                0x00000308

```

et voici un lien vers mon fichier en entier : dsdt.dsl

si quelqu'un y comprend quelque chose ou arrive à comprendre l'erreur...

----------

## Mickael

Une bonne nouvelle cela se fixe!!

Cette personne à la même processeur que toi, avec 3 erreurs, la première te concerne :

http://katherina.student.utwente.nl/~matthijs/cgi-bin/blosxom/Hardware/S270/BrandNew.html

Dans ton fichier DSDT tu as plein de ZEro :

 *Quote:*   

> 
> 
> Name (_PSS, Package (0x03)
> 
>                         {
> ...

 

Enlève les.

----------

## nykos

en effet ça compile en enlevant le nombre impressionant de zéro

je vais voir comment je peux faire pour tester cette nouvelle dsdt

----------

## nykos

bon ben avec la nouvelle DSDT ça change presque rien sur le 2.6.16 :

toujours pas d'acpi, et dmesg change légèrement :

```

# diff ancien_dmesg nouveau_dmesg

20a21

> ACPI (tbget-0282): Table [DSDT] replaced by host OS [20060127]

22c23

< ACPI Namespace successfully loaded at root ffffffff804662c0

---

> ACPI Namespace successfully loaded at root ffffffff804692c0

```

----------

## Mickael

Tu peux tout de même afficher le dmesg | grep ACPI.

AS-tu des warnings avec la dernière compilation du dsdt?

----------

## nykos

non pas de warning

```
$ dmesg | grep ACPI

 BIOS-e820: 000000003ff40000 - 000000003ff50000 (ACPI data)

 BIOS-e820: 000000003ff50000 - 0000000040000000 (ACPI NVS)

ACPI: RSDP (v000 MSI                                   ) @ 0x00000000000f83c0

ACPI: RSDT (v001 MSI    1029     0x11302005 MSFT 0x00000097) @ 0x000000003ff40000

ACPI: FADT (v002 MSI    1029     0x11302005 MSFT 0x00000097) @ 0x000000003ff40200

ACPI: MADT (v001 MSI    OEMAPIC  0x11302005 MSFT 0x00000097) @ 0x000000003ff40300

ACPI: WDRT (v001 MSI    MSI_OEM  0x11302005 MSFT 0x00000097) @ 0x000000003ff40360

ACPI: MCFG (v001 MSI    OEMMCFG  0x11302005 MSFT 0x00000097) @ 0x000000003ff403b0

ACPI: SSDT (v001 OEM_ID OEMTBLID 0x00000001 INTL 0x02002026) @ 0x000000003ff43510

ACPI: OEMB (v001 MSI    MSI_OEM  0x11302005 MSFT 0x00000097) @ 0x000000003ff50040

ACPI: DSDT (v001    MSI     1029 0x11302005 INTL 0x02002026) @ 0x0000000000000000

ACPI: PM-Timer IO Port: 0x4008

ACPI: Local APIC address 0xfee00000

ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)

ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])

ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)

ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level)

ACPI: IRQ0 used by override.

ACPI: IRQ2 used by override.

Using ACPI (MADT) for SMP configuration information

ACPI (tbget-0282): Table [DSDT] replaced by host OS [20060127]

 tbxface-0109 [02] load_tables           : ACPI Tables successfully acquired

ACPI Namespace successfully loaded at root ffffffff804692c0

evxfevnt-0091 [03] enable                : Transition to ACPI mode successful

ACPI: bus type pci registered

ACPI: Subsystem revision 20060127

ACPI: SCI (IRQ0) allocation failed

ACPI Exception (evevent-0167): AE_NOT_ACQUIRED, Unable to install System Control Interrupt handler [20060127]

ACPI: Unable to start the ACPI Interpreter

evxfevnt-0134 [06] disable               : ACPI mode disabled

ACPI (utalloc-0862): No outstanding allocations [20060127]

ACPI Exception (utmutex-0257): AE_BAD_PARAMETER, Thread 1 could not acquire Mutex [6] [20060127]

ACPI Exception (utmutex-0257): AE_BAD_PARAMETER, Thread 1 could not acquire Mutex [6] [20060127]
```

----------

## Mickael

On est peut-être face à un bug. Je suis sec là...  :Confused: 

----------

## BuBuaBu

Tu peu vérifier la version de ton kernel ?

Ce bug est apparu dans le 2.6.1 en janvier 2004 (et corrigé depuis hein...)

----------

## nykos

vérifier ?

je suis en 2.6.16-r1 et ça me fait ça depuis le 2.6.16

j'ai posté un rapport de bug :

https://bugs.gentoo.org/show_bug.cgi?id=129011

----------

## Mickael

Salut Nykos,

Regarde ce Howto à la section 9 : patché votre kernel avec votre dsdt recompilé.

As tu suivis la bonne méthode si ce qui est dit est la bonne méthode.  :Laughing: 

----------

## sireyessire

Bon moi je suis intrigué par ces lignes....

```
Using ACPI (MADT) for SMP configuration information

..

ACPI: Subsystem revision 20060127

ACPI: SCI (IRQ0) allocation failed

ACPI Exception (evevent-0167): AE_NOT_ACQUIRED, Unable to install System Control Interrupt handler [20060127]

ACPI: Unable to start the ACPI Interpreter 
```

la première semble montrer que tu es en SMP, ie que tu dois avoir activé le HT, vu que je pense pas que ton laptop ait 2 procs  :Wink: 

alors, j'essaierai en virant tout ce qui concerne le SMP et l'hyperthreading, mais en gardant l'ACPI pour vois si c'est mieux.

----------

## nykos

micktux, j'ai vaguement suivi ce tuto mais il ne marche plus

le patch ne fonctionne pas avec les noyau récents

mais j'ai trouvé un autre truc ou ils disaient de rajouter ça :

```
#define CONFIG_ACPI_CUSTOM_DSDT

#define CONFIG_ACPI_CUSTOM_DSDT_FILE "/usr/src/dsdt_table.h"

```

dans le fichier /usr/src/linux/drivers/acpi/osl.c

La compilation se passe bien, mais ça ne change rien, c'est à dire que l'acpi fonctionne sous le 2.6.15 mais pas sous 2.6.16

sireyessire, je ne pense pas avoir d'hyperthreading sur un turion, je vais jeter un oeil voir si je trouve qqch pour smp

----------

## Mickael

 *nykos wrote:*   

> 
> 
> mais j'ai trouvé un autre truc ou ils disaient de rajouter ça :
> 
> ```
> ...

 

Tu peux nous donner le lien s'il te plaît. Je sais pas si ce que tu fais là est vraiment bon, mais le problème de la table acpi et de sa configuration semble devoir être manipulée également afin de faire fonctionner le tout correctement. D'après le lien que je t'ai filé dans lequel on apprend que le paquet de zéro était la cause du problème, il semblerait que l'auteur ait retouché cette table. Tu pourrais peut-être prendre contact pour avoir la marche à suivre.

----------

## nykos

j'ai vaguement regardé les sources du fichier osl.c, et je pense que ça doit marcher avec ces deux #define

en effet dans le fichier on peut voir ces quelque lignes (l. 254):

```
acpi_status

acpi_os_table_override(struct acpi_table_header * existing_table,

             struct acpi_table_header ** new_table)

{

   if (!existing_table || !new_table)

      return AE_BAD_PARAMETER;

#ifdef CONFIG_ACPI_CUSTOM_DSDT

   if (strncmp(existing_table->signature, "DSDT", 4) == 0)

      *new_table = (struct acpi_table_header *)AmlCode;

   else

      *new_table = NULL;

#else

   *new_table = NULL;

#endif

   return AE_OK;
```

et elles correspondent au contenu du patch

j'attends impatiemment les réponses à mon rapport de bug mais bon ils ont pas encore répondu  :Sad: 

je vais continuer à chercher un peu

----------

## nykos

sireyessire, j'ai vérifié mon processeur n'a pas l'hyperthreading ni SMP

----------

