Pagina 1 di 1

[RISOLTO] problemi con il frequency scaling

Inviato: lun 22 ott 2007, 16:03
da Sinton
salve ragazzi,
sto provando a far funzionare il frequency scaling sul mio laptop, acer aspire 1641wlmi;

se do cat /proc/cpuinfo

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 1.60GHz
stepping : 8
cpu MHz : 1600.199
cache size : 2048 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx bts est tm2
bogomips : 3202.61
clflush size : 64


uso slack 12, ho ricompilato il kernel 2.6.23 mettendo i seguenti:

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=m
CONFIG_CPU_FREQ_DEBUG=y
CONFIG_CPU_FREQ_STAT=m
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
# CPUFreq processor drivers
#
# CONFIG_X86_ACPI_CPUFREQ is not set
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
CONFIG_X86_SPEEDSTEP_ICH=m
# CONFIG_X86_SPEEDSTEP_SMI is not set

ho installato cpufreqd, e le relative utils, e ho attivato il demone; ecco il mio cpufreqd.conf:

# this is a comment
# see CPUFREQD.CONF(5) manpage for a complete reference

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=2
verbosity=4
#enable_remote=1
#remote_group=root
[/General]

#[acpi]
#acpid_socket=/var/run/acpid.socket
#[/acpi]

#[nforce2_atxp1]
#vcore_path=/some/path
#vcore_default=1500
#[/nforce2_atxp1]

#[sensors_plugin]
#sensors_conf=/some/file
#[/sensors_plugin]

[Profile]
name=On Demand High
minfreq=40%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=On Demand Low
minfreq=20%
maxfreq=80%
policy=ondemand
[/Profile]

[Profile]
name=Performance High
minfreq=100%
maxfreq=100%
policy=performance
#exec_post=echo 8 > /proc/acpi/sony/brightness
[/Profile]

[Profile]
name=Performance Low
minfreq=80%
maxfreq=80%
policy=performance
[/Profile]

[Profile]
name=Powersave High
minfreq=70%
maxfreq=70%
policy=powersave
[/Profile]

[Profile]
name=Powersave Low
minfreq=30%
maxfreq=30%
policy=powersave
[/Profile]

[Profile]
name=Conservative High
minfreq=33%
maxfreq=100%
policy=conservative
[/Profile]

[Profile]
name=Conservative Low
minfreq=0%
maxfreq=66%
policy=conservative
[/Profile]

##
# Basic states
##
# when AC use performance mode
[Rule]
name=AC Rule
ac=on # (on/off)
profile=Performance High
[/Rule]

# conservative mode when not AC
[Rule]
name=AC Off - Low Battery
ac=off # (on/off)
battery_interval=0-30
#exec_post=echo 5 > /proc/acpi/sony/brightness
profile=Powersave Low
[/Rule]

# conservative mode when not AC
[Rule]
name=AC Off - Medium Battery
ac=off # (on/off)
battery_interval=30-70
#exec_post=echo 5 > /proc/acpi/sony/brightness
profile=On Demand Low
[/Rule]

# stay in performance mode for the first minutes
[Rule]
name=AC Off - High Power
ac=off # (on/off)
battery_interval=70-100
#exec_post=echo 5 > /proc/acpi/sony/brightness
profile=On Demand High
[/Rule]

##
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=55-100
cpu_interval=50-100
profile=Performance Low
[/Rule]

# use performance mode if I'm watching a movie
# I don't care for batteries!
# But don't heat too much.
[Rule]
name=Movie Watcher
programs=xine,mplayer,gmplayer
battery_interval=0-100
acpi_temperature=0-60
cpu_interval=0-100
profile=Performance High
[/Rule]

i moduli per le politiche sono tutti attivi (o almeno credo):
lsmod | grep cpufreq

cpufreq_conservative 5280 0
cpufreq_ondemand 6036 0
freq_table 4228 1 cpufreq_ondemand
cpufreq_performance 1920 0
cpufreq_powersave 1664 0

nonostante questo se do:

modprobe speedstep_ich
FATAL: Error inserting speedstep_ich (/lib/modules/2.6.23/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-ich.ko): No such device

quindi non riesco a far funzionare le politiche di scaling.
da cosa puo' dipendere?

Inviato: lun 22 ott 2007, 18:48
da giberg
Non ho idea (non che me ne intenda tantissimo). Secondo me potresti ricompilare tranquillamente con il config originale di Slackware che ha tutti i driver per lo scaling come moduli e funzionanti, quindi basta far in modo che carichi quello giusto. Magari qualcosa è sfuggito (qualche altro modulo...). Anche se ci sono moduli che non caricherai mai non credo che ti diano fastidio se li compili.

Inviato: lun 22 ott 2007, 19:07
da Sinton
ma non c'e' un modo per capire se e' necessario far questo? e' possibile che qualcosa sia andato storto così tanto? :cry:

Inviato: lun 22 ott 2007, 19:49
da absinthe
hai usato il driver sbagliato! se hai un pentium M devi usare CONFIG_X86_ACPI_CPUFREQ. vedi qui: viewtopic.php?t=21098&postdays=0&postorder=asc&start=0

M

Inviato: mar 23 ott 2007, 14:11
da Sinton
ok ti ringrazio, era quello il modulo giusto... pero' ora il problema mi sa che e' con il demone cpufreqd... ho installato quello e le cpufreqtils, e se do:

cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Per favore, comunicare errori e malfunzionamenti a linux@brodo.de.
analisi della CPU 0:
modulo acpi-cpufreq
CPU per le quali e` necessario cambiare la frequenza contemporaneamente: 0
limiti hardware: 800 MHz - 1.60 GHz
frequenze disponibili: 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
gestori disponibili: conservative, ondemand, performance, powersave, userspace
gestore corrente: la frequenza deve mantenersi tra 800 MHz e 800 MHz.
Il gestore "performance" puo` decidere quale velocita` usare
in questo intervallo.
la frequenza attuale della CPU e` 800 MHz (ottenuta da una chiamata diretta all'hardware).

eppure se controllo:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
conservative ondemand performance powersave userspace

e anche:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance

ma c'e' questo errore anche:

cpufreqd-get
No cpufreqd socket found

come mai non riesce a impostare una frequenza oltre gli 800MHz?

Inviato: mar 23 ott 2007, 21:00
da Sinton
ok risolto!!

semplicemente in /etc/rc.d/rc.local chiamavo il demone con:

/usr/sbin/cpufreqd

mentre andava chiamato con:

/usr/sbin/cpufreqd start

tutto qua! grazie a tutti! ;)