# [Noyau] Ma config ne semble pas s'appliquer [résolu]

## SpikeXtrem

Bonjour,

j'ai des petits problèmes avec mon noyau. Je tente d'activer la fonction d'allocation dynamique de la fréquence du cpu pour que mes cpus ne tournent pas à plein régime en permanence.

Ca seble clair quand je veux démarrer le service.

```

# /etc/init.d/cpufreqd start

cpufreqd requires the kernel to be configured with CONFIG_CPU_FREQ

```

Pourtant

```

# cat /usr/src/linux/.config | grep CONFIG_CPU_FREQ

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

CONFIG_CPU_FREQ_DEBUG=y

CONFIG_CPU_FREQ_STAT=y

CONFIG_CPU_FREQ_STAT_DETAILS=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set

CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

CONFIG_CPU_FREQ_GOV_POWERSAVE=y

CONFIG_CPU_FREQ_GOV_USERSPACE=y

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y

```

J'ai pourtant recompiler le noyau dernièrement après avoir ajouté CONFIG_CPU_FREQ=y à ma config... j'ai même fait un "make clean" avant.

On dirait qu'il va lire une autre config pour compiler le noyau...

Quelles sont les config qu'un noyau va voir, dans l'ordre, pour la compilation?

Comment je peux m'assurer que ma config sera celle qui sera prise?

Note : /usr/src/linux pointe sur le bon noyau...

Merci!   :Surprised: 

----------

## loopx

vérifie la date de l'image que tu démarre et qui se trouve dans /boot  :Wink: 

----------

## SpikeXtrem

Bien sûr, l'image est à jour.

----------

## kopp

tu fais bien les make install ? tu es sur que c'est la bonne version utilisée ? (peut-être un autre noyau avec le même non, on sait pas)

```
zgrep "CPU_FREQ" /proc/config.gz
```

ça donne quoi ?

Pi cpufreqd c'est encore utile ? la dernière release n'est pas toute jeune. Perso, je n'utilise pas vu que j'ai un applet gnome qui le fait.

EDIT : bon j'ai commencé à écrire avant les autres réponses...

Sinon j'avais cru comprendre que cpufreqd n'était plus utilisé, d'où ma question

cf cpufreq-selector

Re EDIT : cpufreq-selector vient de l'applet gnome...

----------

## SpikeXtrem

Pour compiler je fais 

```

mount /boot

make && make modules_install...

cp /usrc/src/linux/arch/x86_64/boot/bzimage /boot/kernel-gentoo-2.6.24-r3

```

Bien sûr, grub.conf comporte le bon kernel

```

title=Gentoo Linux 2.6.24-r3

root (hd0,0)

kernel /kernel-gentoo-2.6.24-r3 root=/dev/sdd2

```

Pour répondre à la question

```

# zgrep "CPU_FREQ" /proc/config.gz

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

CONFIG_CPU_FREQ_DEBUG=y

CONFIG_CPU_FREQ_STAT=y

# CONFIG_CPU_FREQ_STAT_DETAILS is not set

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set

# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set

CONFIG_CPU_FREQ_GOV_PERFORMANCE=y

# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set

# CONFIG_CPU_FREQ_GOV_USERSPACE is not set

CONFIG_CPU_FREQ_GOV_ONDEMAND=y

# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set

```

Il me semble que pour n'importe quel applet, le noyau doit être batti avec cette option de toute facon, sinon byebye le cpu frequency scaling.

----------

## loopx

t'es sur de bien booter sur ta partition "/boot" ? et pas sur la racine "/" ...

----------

## SpikeXtrem

Pas mal certain... mon premier disque (hd0,0) correspond à sdd1 (J'ai 3 autres disques qui forment un raid 5 mais ils ne sont pas bootable de toute facon).

Ma partition racine est sdd2. Je vois pas où serait le probleme.

----------

## kopp

De toutes façons, /proc/config.gz correspond au noyau qui tourne, donc il est bien activé. Le probleme se situe ailleurs.

Tu as essayé de recompilé cpufreqd ?

(testé ici sur 2.6.23-r4 et ça marche sans soucis)

----------

## SpikeXtrem

Je viens de recompiler, mais toujours rien.   :Embarassed: 

----------

## Bio

Est ce que tu as activé le bon CPUFREQ processor driver dans ton kernel?

----------

## SpikeXtrem

 *Bio wrote:*   

> Est ce que tu as activé le bon CPUFREQ processor driver dans ton kernel?

 

Hmmm je crois que oui

```

zgrep "POWERNOW" /proc/config.gz

CONFIG_X86_POWERNOW_K8=y

CONFIG_X86_POWERNOW_K8_ACPI=y

```

----------

## kopp

euh si c'est pour ta config en signature, ça pourrait expliquer des choses.

Tu as un intel et activé le pilote AMD ...

----------

## Bio

 *SpikeXtrem wrote:*   

>  *Bio wrote:*   Est ce que tu as activé le bon CPUFREQ processor driver dans ton kernel? 
> 
> Hmmm je crois que oui
> 
> ```
> ...

 

Ces drivers ne concernent que les CPU AMD. Dans le cas d'une Core 2 Intel c'est les speedstep qu'il te faut activer.

----------

## geekounet

 *Bio wrote:*   

>  *SpikeXtrem wrote:*    *Bio wrote:*   Est ce que tu as activé le bon CPUFREQ processor driver dans ton kernel? 
> 
> Hmmm je crois que oui
> 
> ```
> ...

 

Non, le driver speedstep est déprécié, c'est le driver acpi-cpufreq qu'il faut mettre.  :Smile: 

----------

## Bio

Lol autant pour moi en plus c'est bien l'ACPI Processor P-State Driver que j'ai sur mon PC à base de Core 2. 

Pas bien réveillé ce matin, désolé....

----------

## SpikeXtrem

Bien observé, mais le processeur est bien AMD. Il s'agit de mon serveur. La config que je montre sur le forum vient de mon desktop.

Le processeur de la machine sujet à cette question est bel et bien un AMD Athlon 64 bits dual core.

----------

## Leander256

Salut,

Est-ce que tu as un repertoire /sys/devices/system/cpu/cpu0/ sur ta machine? Si par megarde tu as desactive le support de /sys dans le noyau cpufreqd ne pourra pas fonctionner. Au passage, cpufreqd ne te sera peut-etre pas vraiment utile, le "governor" ondemand fonctionne habituellement tres bien tout seul.

----------

## SpikeXtrem

Les répertoires 

/sys/devices/system/cpu/cpu0/

et

/sys/devices/system/cpu/cpu1/

existent et contiennent chacun des sous-répertoire cache et topology.

```

# ls /sys/devices/system/cpu/cpu0

cache  topology

```

```

# ls /sys/devices/system/cpu/cpu1

cache  online  topology

```

Voici ma config de noyau d'après menuconfig. Je sais pas si c'est fiable

```

[*] CPU Frequency scaling

[*]   Enable CPUfreq debugging

<*>   CPU frequency translation statistics

[*]     CPU frequency translation statistics details

      Default CPUFreq governor (ondemand)  --->

-*-   'performance' governor

<*>   'powersave' governor

<*>   'userspace' governor for userspace frequency scaling

-*-   'ondemand' cpufreq policy governor

<*>   'conservative' cpufreq governor

      *** CPUFreq processor drivers ***

<*>   ACPI Processor P-States driver

<*>   AMD Opteron/Athlon64 PowerNow!

< >   Intel Enhanced SpeedStep (deprecated)

< >   Intel Pentium 4 clock modulation

      *** shared options ***

[ ]   /proc/acpi/processor/../performance interface (deprecated)

```

Si j'essaie de spécifier un gouverneur à la main

```

# cpufreq-set -g ondemand

wrong, unknown or unhandled CPU?

```

Pour avoir de l'information?

```

# cpufreq-info

cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006

Report errors and bugs to linux@brodo.de, please.

analyzing CPU 0:

  no or unknown cpufreq driver is active on this CPU

analyzing CPU 1:

  no or unknown cpufreq driver is active on this CPU

```

Donc, le pilote n'est pas présent... pourtant il est en dur dans le noyau.

----------

## SpikeXtrem

j'ai essayé de compiler le pilote en module. Mais quand je veux le lancer, il y a un problème.

```

# modprobe powernow-k8

FATAL: Error inserting powernow_k8 (/lib/modules/2.6.24-gentoo-r3/kernel/arch/x8

6/kernel/cpu/cpufreq/powernow-k8.ko): No such device

```

EDIT:Le module s'y trouve bel et bien

```

# ls /lib/modules/2.6.24-gentoo-r3/kernel/arch/x86/kernel/cpu/cpufreq/

acpi-cpufreq.ko  powernow-k8.ko

```

C'est quoi ce arch x86? Mon système est compilé en 64 bits!

Pourtant, au boot tout semble bien.

```

# dmesg | grep cpu

PERCPU: Allocating 33056 bytes of per cpu data

powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ processors (

2 cpu cores) (version 2.20.00)

powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ processors (

2 cpu cores) (version 2.20.00)

```

Je ne saisi pas très bien où vien le problème. Les cpus sont reconnus ou pas? Le module est utilisé ou pas?

Avec lsmod on ne voit rien coté cpu

```

# lsmod

Module                  Size  Used by

nvidia               8841796  0

```

----------

## Nicomero

Salut,

Je suis très loin de maitriser mon système mais j'ai un portable avec un turion 64 bits d'AMD et pour répondre à ta question sur le .../arch/x86... j'ai la même ici.

Sinon pour ton problème, c'est peut-être pas ça mais la différence entre nos 2 config est que par défaut j'utilise le governor "userspace", et dans la description de "ondemand", certain pilotes ne sont pas pris en charge :

```
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND:                                   │  

  │                                                                         │  

  │ Use the CPUFreq governor 'ondemand' as default. This allows             │  

  │ you to get a full dynamic frequency capable system by simply            │  

  │ loading your cpufreq low-level hardware driver.                         │  

  │ Be aware that not all cpufreq drivers support the ondemand              │  

  │ governor. If unsure have a look at the help section of the              │  

  │ driver. Fallback governor will be the performance governor.        
```

voilà, peut-être à essayer ...

----------

## nemo13

 *SpikeXtrem wrote:*   

> 
> 
> ```
> 
> # ls /lib/modules/2.6.24-gentoo-r3/kernel/arch/x86/kernel/cpu/cpufreq/
> ...

 

Bonjour,

A partir du 2.6.24 les branches x86 32 et 64 bits fusionnent.

x86_64 n'est plus qu'un lien vers 32 bit ( voir post de Geekounnet ou site kernel linux )

A+

----------

## Leander256

Est-ce que tu as essaye avec un autre noyau? Je te conseille de faire un test avec un vanilla-sources, juste pour voir ce que ca fait. Sinon si ta carte-mere est un peu vieille il est peut-etre possible que son bios ne supporte pas le cool n'quiet.

----------

## SpikeXtrem

reBonjour!

 *nemo13 wrote:*   

> 
> 
> A partir du 2.6.24 les branches x86 32 et 64 bits fusionnent.
> 
> 

 

C'est bon à savoir!

 *Nicomero wrote:*   

> 
> 
> Sinon pour ton problème, c'est peut-être pas ça mais la différence entre nos 2 config est que par défaut j'utilise le governor "userspace", et dans la description de "ondemand", certain pilotes ne sont pas pris en charge
> 
> 

 

Tout de même une très bonne hypothèse. J'ai essayé avec le gouverneur Userspace mais rien n'y fait.

 *Leander256 wrote:*   

> 
> 
> Est-ce que tu as essaye avec un autre noyau? Je te conseille de faire un test avec un vanilla-sources, juste pour voir ce que ca fait. Sinon si ta carte-mere est un peu vieille il est peut-etre possible que son bios ne supporte pas le cool n'quiet.
> 
> 

 

Faudrait que je revérifie mon bios pour voir s'il est bien activé. Mais même si ce ne serait pas le cas dans le bios, un noyau bâti avec les bons modules ca ne fonctionnerait pas? Je veux dire, le logiciel marcherais mais la seule fréquence dispo serait la fréquence maximale, non?

La carte mêre n'est pas si vieille. On parle d'une NForce 4. Et avec un ancien noyau cette fonctionnalité était pleinement disponible. La fréquence cpu était dynamique et tout. J'ai changé la carte mêre de boitier, reset de bios et puis paf.

Je vais décidément vérifié si le bios est bien configuré. Entre temps, d'autres idées?

----------

## SpikeXtrem

 *SpikeXtrem wrote:*   

> 
> 
> Je vais décidément vérifié si le bios est bien configuré.

 

Et vlan! Merci Leander256 pour cette suggestion. Une visite rapide dans le bios a suffit pour me rendre compte que Cool'n Quiet était désactivé.

J'ai réactivé l'option, booté Linux, et voilà les pilotes du noyau qui se chargent sans broncher!

C'est déjà moins chaud dans mon garde-robe. 

Merci à tous ceux qui ont pris le temps de suggérer une solution   :Very Happy: 

----------

