Pagina 1 di 1

Acpi su notebook acer P4 ICH4

Inviato: sab 9 lug 2005, 18:03
da Experience
Ciao ragazzi, un problema non banale ( o così mi sembra ) con l'acpi. Ho letto tuti i vostri vecchi post, ma niente neppure così:

il problema è che in /sys/device/system/cpu/cpu0 non vedo nulla, malgrado abbia attivato l'acpi nel kenel.
Io ho un P4 quindi ho messo staticamente speedstep-ich, ecco come

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
# CONFIG_ACPI_SLEEP is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# 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=y
CONFIG_ACPI_BUS=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_X86_PM_TIMER is not set
# CONFIG_ACPI_CONTAINER is not set

#
# APM (Advanced Power Management) BIOS Support
#
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
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=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=m
CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=m
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y
CONFIG_X86_GX_SUSPMOD=m
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
CONFIG_X86_SPEEDSTEP_ICH=y
CONFIG_X86_SPEEDSTEP_SMI=m
CONFIG_X86_P4_CLOCKMOD=m
CONFIG_X86_CPUFREQ_NFORCE2=m
CONFIG_X86_LONGRUN=m
CONFIG_X86_LONGHAUL=m

#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set


il mio fstab riporta:

sysfs /sys sysfs defaults 0 0

e dmesg dice:

Calibrating delay loop... 5242.88 BogoMIPS (lpj=2621440)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 00000400 00000000 00000000
CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 00000400 00000000 00000000
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: After all inits, caps: bfebfbff 00000000 00000000 00000080 00000400 00000000 00000000
CPU: Intel(R) Pentium(R) 4 CPU 2.66GHz stepping 07
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
tbxface-0118 [02] acpi_load_tables : ACPI Tables successfully acquired
Parsing all Control Methods:...................................................................................................................................................................................................
Table [DSDT](id F004) - 681 Objects with 51 Devices 195 Methods 25 Regions
ACPI Namespace successfully loaded at root c04f7580
evxfevnt-0094 [03] acpi_enable : Transition to ACPI mode successful
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
Freeing initrd memory: 73k freed
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfd722, last bus=2
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20050309
evgpeblk-0979 [06] ev_create_gpe_block : GPE 00 to 1F [_GPE] 4 regs on int 0x9
evgpeblk-0987 [06] ev_create_gpe_block : Found 3 Wake, Enabled 5 Runtime GPEs in this block
Completing Region/Field/Buffer/Package initialization:......................................................................
Initialized 25/25 Regions 0/0 Fields 37/37 Buffers 8/13 Packages (690 nodes)
Executing all Device _STA and_INI methods:......................................................
54 Devices found containing: 54 _STA, 2 _INI methods
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
Boot video device is 0000:01:00.0

e così via senza errori.

Il problema è che la directory /sys/devices/system/cpu/cpu0 è sempre vuota e cpufreq-info dice:

Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU

il driver da caricare è quello giusto cioè SPEEDSTEP_ICH, infatti anche il resto dei miei componenti sono ICH4.
Che mi dite?!
Come mai no riesco a sfruttare il freq scaling?!

Ciaooo e grazie

Inviato: sab 9 lug 2005, 18:11
da Lean

Codice: Seleziona tutto

CONFIG_X86_POWERNOW_K6=m
CONFIG_X86_POWERNOW_K7=m
CONFIG_X86_POWERNOW_K7_ACPI=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_POWERNOW_K8_ACPI=y 
questi non c'è bisogno di metterli in quanto servono per gli amd
poi:

Codice: Seleziona tutto

CONFIG_X86_SPEEDSTEP_ICH=y 
lo metterei come modulo...con modprobe lo carichi e controlla se la dir eccecc/cp0/cpufreq compare
Io ho un portatile acer con amd athlon e ho fatto così come ti ho detto (quindi driver messo come modulo). Con i kernel dal 2.6.8 in poi il frequency scaling non funzionava affatto... problemi identici ai tuoi. Ho risolto con il kernel 2.6.7. Nessuno ha capito il motivo... fatto sta che adesso ho questo kernel e va tutto bene....

[Edito] E' stata aperta la sezione per i Laptop :) usiamola!

Inviato: dom 10 lug 2005, 13:58
da absinthe
allora...

i moduli per amd non servono è vero pero serve un'altra cosa: un conto è caricare il modulo per il frequency scaling del tuo processore (vabbe nel tuo caso è linkato statico al kernel quindi dovrebbe essere già caricato) un'altro conto è caricare il modulo per il governor del frequency scaling, ovvero l'algoritmo che utilizza i drivers di frequency scaling: ho visto che tu hai compilato tutti i governor come moduli (come ho fatto anche io) il problema è che se non carichi nessun governor all'avvio (e slack non lo fa da sè) HAI I DRIVER PER IL CPU FREQ SCALING MA NESSUNO CHE LI UTILIZZA!

Devi dare:

#> modprobe nome_modulo_del_governor

es:

#> modprobe ondemand

così attivi il software per il freq scaling che sarà felice di usare i drivers del p4 che sono compilati statici nel tuo kernel :)

a quel punto avrai tutto il necessario... o meglio avrai tutti i files in
/sys/devices/system/cpu/cpu0/

devi però settare il governor che vuoi nel file scaling_governor...


io ho fatto uno script che fa tutto da solo all'avvio (lo lancio da rc.local)...

te lo copio-collo (considera che è uno dei primi script che faccio indi prendilo nella filosofia "free software": prendi il materiale trovaci i bachi fissali, miglioralo e ripubblicalo :)

...azz troppo presto: ora sono su uindos che vuoi che posti....

appena carico linux lo posto stai tranquillo...

comunque è questione di echare su scaling_governor:

echo nome_governor > /sys/devices/system/cpu/cpu0/scaling_governor

byebye,
M.

Inviato: dom 10 lug 2005, 16:22
da Experience
ed infatti anche grazie agli ottimi consigli di Lean, non ero riuscito a riempire sta benedetta directory. ora ci provo di sicuro...grazie mille ancora!
Se mi posti quello script mi fai un favore...grazie ciaooooo

Inviato: dom 10 lug 2005, 17:09
da Experience
OK...mi sto rompendo :x
Ho provato tutto, ho messo il kernel 2.6.7, ho compilato come modulo e poi staticamente i vari governator, ho compilato staticamente e come modulo il driver del mio processore, ma niente sta stupida directory non si riempie

# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
# CONFIG_CPU_FREQ_PROC_INTF is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_24_API is not set
CONFIG_CPU_FREQ_TABLE=y

#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=m
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF 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=y
# CONFIG_X86_SPEEDSTEP_SMI is not set
# CONFIG_X86_P4_CLOCKMOD is not set
CONFIG_X86_SPEEDSTEP_LIB=y
# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_LONGHAUL is not set

ho caricato il modulo acpi, ho messo acpi=on in lilo, ho restartato /etc/rc.d/rc.acpid mille volte, ma nulla di nulla

e cpufreq-info continua a darmi il solito errore:

Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU

eppure la mia cpu è quella

/proc/cpuinfo dice

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.66GHz
stepping : 7
cpu MHz : 2658.803
cache size : 512 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 pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid
bogomips : 5242.88

che devo fare per far funzionare sto cavolo di cpu freq scaling?!


Experience

Inviato: dom 10 lug 2005, 19:15
da Experience
ci sono riuscitoooooooooooooooooo!!! o almeno ci sono riuscito con il 2.6.12.1...adesso è vero che non funziona dove portarlo sul 2.6.7.
Ciaooooo e grazie ;)

Experience

Inviato: dom 10 lug 2005, 19:28
da absinthe
ecco lo script innanzi tutto.

#!/bin/sh
#
# /etc/rc.d/rc.ACPI: brutal frequency scaling setup for acpi
#

echo
echo "ACPI script starts"

echo "step 1: checking kernel version..."
VER=$(uname -r)
echo "detected kernel version $VER"

echo "step 2: setting ACPI parameters for CPU frequency scaling"
case $VER in
"2.6.10") echo " loading speedstep driver for Pentium M"
cd /lib/modules/2.6.10/kernel/arch/i386/kernel/cpu/cpufreq
modprobe speedstep-centrino
echo " loading ondemand governor into the kernel"
cd /lib/modules/2.6.10/kernel/drivers/cpufreq
modprobe cpufreq_ondemand
echo " setting ondemand as scaling governor"
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
;;
"2.4.29") echo " setting frequency scaling to:"
echo 2:0 > /proc/acpi/processor/CPU0/limit
cat /proc/acpi/processor/CPU0/limit | grep user
cat /proc/acpi/processor/CPU0/limit | grep active
;;
esac

echo "ACPI script ends."
echo

allora:
1- scrivi la versione di kernel che hai al posto di 2.6.10 e 2.4.29, se usi il 2.6.7 metti quello nella sezione per il 2.6.10 e se non hai nessun kernel 2.4 di riserva fregati della seconda parte dello script.
2- scrivi il modulo relativo alla tua cpu non lo speedstep per il centrino
3- seleziona il governor che vuoi

NB se qualcosa è statico non hai bisogno di caricarlo.
a) il supporto acpi ti consiglio di metterlo tutto statico
b) il cpufreq o lo metti tutto modulare (io ho fatto così) o lo metti tutto statico:


CONFIG_X86_ACPI_CPUFREQ=m

CONFIG_X86_SPEEDSTEP_ICH=y
CONFIG_X86_SPEEDSTEP_LIB=y

così mi pare che attivi il supporto acpi per x86 come modulo, ma il driver per il p4 è già residente nel kernel... che casino... non lo so se funziona...

c) non importa la flag acpi on in lilo
d) il demone acpid non conta un cavolo, nel senso che se non lo programmi con uno script per intervenire ad ogni evento acpi (pressione di un tasto inserimento alimentazione etc...) di default non sa una mazza
e) è importante la riga echo nome_governor > /.../.../.../scaling_governor
f) non son molto pratico so: che il kernel tenta l'emulazione di freqscaling su processori che non lo supportano... ma se hai un P4 e non un P4-M siamo sicuri che l'acpi funzioni ---> soluzione: se su win va allora dovrebbe andare pure su linux....

M.

Inviato: dom 10 lug 2005, 19:29
da absinthe
mi hai preceduto... :)