# cpufreqd parte ma non funziona

## cruentatio

Salve a tutti, volevo passare da speedfreq a cpufreqd, visto che il primo non è più supportato, solo che non riesco a farlo funzionare a dovere.

Ho seguito questa guida http://www.gentoolinux.org/doc/it/power-management-guide.xml , e in effetti riesco a far partire il demone:

```

crux cruentatio # /etc/init.d/cpufreqd start

 * Starting CPU Frequency Daemon ...                                      [ ok ]

```

Solo che se provo ad usarlo:

```

crux cruentatio # cpufreqd-get 

No cpufreqd socket found

```

E non so cosa fare.

Il kernel è compilato con i supporti giusto per il centrino, e speedfreq funziona bene.

Sapete darmi una mano?

Grazie mille.

----------

## gutter

Se non ricordo male cpufreqd usa sysfs. Hai questo modulo nel kernel:

```
CONFIG_SYSFS=y
```

?

----------

## cruentatio

Si, questo è l'ultimo file di config con cui ho compilato il kernel:

```

crux linux # cat .config | grep CONFIG_SYSFS  

CONFIG_SYSFS=y

```

Può essere per via di questo?

```

# CONFIG_CPU_FREQ_STAT is not set

```

----------

## mrfree

Capita lo stesso anche a me, ha smesso di funzionare con l'upgrade alla versione 2.0.0

----------

## .:deadhead:.

Anche a me non andava: la nuova release non è stato sto gran miglioramento  :Sad:  Son ornato felice alla versione 123

----------

## TwoMinds

...la versione 2.0.0 non mi ha mai dato mai problemi su tutti i portatili che ho configurato... rispetto alle precedenti mi pare richieda anche le sysfsutils ma la dipendenza deve risolverla l'ebuild... come opzioni sul mio portatile ho:

```

#

# CPU Frequency scaling

#

CONFIG_CPU_FREQ=y

CONFIG_CPU_FREQ_TABLE=y

# CONFIG_CPU_FREQ_DEBUG is not set

CONFIG_CPU_FREQ_STAT=y

CONFIG_CPU_FREQ_STAT_DETAILS=y

CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y

# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE 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

#

# CPUFreq processor drivers

#

CONFIG_X86_ACPI_CPUFREQ=y

# CONFIG_X86_POWERNOW_K6 is not set

# CONFIG_X86_POWERNOW_K7 is not set

CONFIG_X86_POWERNOW_K8=y

CONFIG_X86_POWERNOW_K8_ACPI=y

# CONFIG_X86_GX_SUSPMOD is not set

# CONFIG_X86_SPEEDSTEP_CENTRINO is not set

# CONFIG_X86_SPEEDSTEP_ICH is not set

# CONFIG_X86_SPEEDSTEP_SMI is not set

# CONFIG_X86_P4_CLOCKMOD is not set

# CONFIG_X86_CPUFREQ_NFORCE2 is not set

# CONFIG_X86_LONGRUN is not set

# CONFIG_X86_LONGHAUL is not set

#

# shared options

#

# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set

# CONFIG_X86_SPEEDSTEP_LIB is not set

```

...e anche ACPI completamente abilitato e funzionante...

----------

## mrfree

Il mio problema era nel mancato caricamento dei moduli acpi   :Smile: 

```
[General]

        pidfile=/var/run/cpufreqd.pid

        poll_interval=2

#       enable_plugins= programs,acpi_ac,cpu,acpi_battery,acpi_temperature,nforce2,sensors,nvclock,apm,pmu

        enable_plugins= programs,acpi_ac,cpu,acpi_battery,acpi_temperature

        verbosity=4

[/General]

[...]

```

Ora funziona di lusso  :Wink: 

----------

## cruentatio

Ho provato pure io a modificare il file di conf, ma non va ancora.

Ma bisogna caricare il modulo acpi_cpufreq?

----------

## Bionicle

Ciao,

qualcuno a trovato altre soluzioni ?? perché anche io ho lo stesso problema con la nuova versione e non riesco a risolverlo.

Grazie

----------

## .:chrome:.

provo a dare un consiglio un po' controtendenza:

cpufreqd non è l'unico sistema che esista per lo scaling. perché non provare qualcos'altro?

personalmente uso cpudyn, e per l'uso che ne faccio io l'ho trovato migliore, rispetto a tutti gli altri.

----------

## mrfree

 *k.gothmog wrote:*   

> provo a dare un consiglio un po' controtendenza:
> 
> cpufreqd non è l'unico sistema che esista per lo scaling. perché non provare qualcos'altro?
> 
> personalmente uso cpudyn, e per l'uso che ne faccio io l'ho trovato migliore, rispetto a tutti gli altri.

 

La matrice comparativa presente sulla guida gentoo riporta:

```

Name       Category     Switch decision     Kernel governors

cpudyn     Daemon      CPU load              Performance, powersave
```

è un po' limitativo secondo me, attualmente quando il mio notebook lavora con la sola batteria cpufreq "switcha", ad esempio, sul conservative governor con cpudyn mi pare di capire che questo non sia possibile

----------

## Bionicle

Grazie del consiglio.

Adesso sono riuscito a risolvere il problema, dovevo aggiungere il supporto acpi per la compilazione di cpufreqd!!

Grazie Ciao

----------

## .:chrome:.

 *mrfree wrote:*   

> La matrice comparativa presente sulla guida gentoo riporta:
> 
> ```
> 
> Name       Category     Switch decision     Kernel governors
> ...

 

infatti chi ha scritto quella guida non penso avesse molta cognizione di ciò che scriveva. i governor disponibili sono tutti quelli che ci sono nel kernel, in quanto cpudyn legge direttamente dal sysfs le opzioni. è per quello che a me piace  :Smile: 

----------

## mrfree

 *k.gothmog wrote:*   

> infatti chi ha scritto quella guida non penso avesse molta cognizione di ciò che scriveva. i governor disponibili sono tutti quelli che ci sono nel kernel, in quanto cpudyn legge direttamente dal sysfs le opzioni. è per quello che a me piace 

 

Cavolo e io che mi ero fidato della guida  :Smile: 

Bene allora ci darò uno sguardo

----------

## mrfree

Visto che lo usi toglimi una curiosità, dalla documentazione sul sito di cpudyn non riesco a capire se controlla le informazioni acpi per verificare la presenza della batteria o meno...

Ti dico, in breve, quello che mi servirebbe:

- Un sw tipo cpufreqd (non versione 2) che periodicamente verifica le info acpi (battery, ac, ...)

Questo perchè se il tutto si basa sugli eventi acpi ci sono problemi utilizzando suspend2: se ad esempio quando lancio hibernate sono connesso alla rete elettrica e invece quando faccio il resume vado a batteria non viene cambiato il gevernor visto che non viene generato l'evento. Questo accade con cpufreqd v2, mentre con la versione precedente funzionava tutto correttamente (se non ricordo male si poteva impostare la frequenza con cui leggere le info acpi)

----------

## mrfree

 *man cpufreqd wrote:*   

> NOTES
> 
>        Some ACPI implementations are very cpu-consuming when reading the  info
> 
>        file of system batteries. Cpufreqd implements a simple  workaround  that
> ...

 

Come workaround al problema ho aggiunto al file hibernate.conf

```
RestartServices cpufreqd
```

Questo dovrebbe bastare

----------

## .:chrome:.

 *mrfree wrote:*   

> Visto che lo usi toglimi una curiosità, dalla documentazione sul sito di cpudyn non riesco a capire se controlla le informazioni acpi per verificare la presenza della batteria o meno...

 

vado a memoria, perché non ho il portatile per le mani, adesso... comunque mi sembra che non verifichi nulla, riguardo alla batteria.

lui si preoccupa solo di variare la frequenza del processore in base al carico, al governor, e a quello che decide l'utente (si integra automaticamente con l'applet del pannello di GNOME. con KDE non ho mai provato).

quanto al tuo problema, credo lo si possa aggirare facilmente. se usi GNOME, l'applet per il controllo della CPU permette di scegliere frequenze e governors (basta che lo dici nelle impostazioni), oppure potresti farti un piccolo script che tramite un loop continuo verifica che ci sia coerenza tra governor e stato di alimentazione.

spero solo di aver capito il tuo problema

----------

## mrfree

 *k.gothmog wrote:*   

> quanto al tuo problema, credo lo si possa aggirare facilmente. se usi GNOME, l'applet per il controllo della CPU permette di scegliere frequenze e governors (basta che lo dici nelle impostazioni), oppure potresti farti un piccolo script che tramite un loop continuo verifica che ci sia coerenza tra governor e stato di alimentazione.
> 
> spero solo di aver capito il tuo problema

 

Hai capito benissimo ed è esattamente quello che dovrebbe fare (faceva) cpufreqd  :Smile: 

Credo di aver risolto con il restart del servizio dopo il suspend, appena posso faccio qualche esperimento

----------

