cpufreq - Kernelmodul laden

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Keinerfari
Beiträge: 16
Registriert: 14.11.2014 17:48:29

cpufreq - Kernelmodul laden

Beitrag von Keinerfari » 14.11.2014 18:20:27

Hallo. :)

Mein Laptop ist als Router und WLAN Access-Point im Dauerbetrieb. Beim Optimieren der Leistungsaufnahme ist mir aufgefallen, dass die CPU im idle bzw. unter wenig Last nicht heruntertaktet.

Bei der CPU handelt es sich um den AMD Athlon Neo X2 L325, genutzt wird Debian Jessie mit dem Kernel 3.16-3-amd64. Als Peripherie ist ein Netgear WLAN USB-Adapter angeschlossen.

Das die CPU immer im Standardtakt von 1,5 ghz läuft, nehme ich durch die Ausgabe von Powertop und cpufreq-info an:

Code: Alles auswählen

$ cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Bitte melden Sie Fehler an cpufreq@vger.kernel.org.
analysiere CPU 0:
  kein oder nicht bestimmbarer cpufreq-Treiber aktiv
  Maximale Dauer eines Taktfrequenzwechsels: 4294.55 ms.
analysiere CPU 1:
  kein oder nicht bestimmbarer cpufreq-Treiber aktiv
  Maximale Dauer eines Taktfrequenzwechsels: 4294.55 ms.
Der Versuch das entsprechende Kernelmodul zu laden schlug fehl:

Code: Alles auswählen

# modprobe acpi-cpufreq
modprobe: ERROR: could not insert 'acpi_cpufreq': No such device
Was genau sollte mir die Fehlermeldung sagen?

Die Ausgabe von /proc/cpuinfo:

Code: Alles auswählen

cat /proc/cpuinfo 
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 15
model		: 107
model name	: AMD Athlon(tm) Neo X2 Dual Core Processor L325
stepping	: 2
cpu MHz		: 1496.231
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
bogomips	: 2992.46
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc 100mhzsteps

processor	: 1
vendor_id	: AuthenticAMD
cpu family	: 15
model		: 107
model name	: AMD Athlon(tm) Neo X2 Dual Core Processor L325
stepping	: 2
cpu MHz		: 1496.231
cache size	: 512 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
apicid		: 1
initial apicid	: 1
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
bogomips	: 2992.38
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc 100mhzsteps
Im Bios sind keinerlei Power-Management Funktionen verfügbar. Die einzige Einstellung bezüglich der CPU ist die Aktivierung von VT.
Eine Idee weshalb das Kernelmodul nicht geladen werden kann?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: cpufreq - Kernelmodul laden

Beitrag von rendegast » 18.11.2014 19:34:56

Versuche es mit dem 3.17 experimental.

Debianamd64-microcode ?
Braucht Reboot -> 'dmesg | grep microcode -C1'

Module msr, cpuid?

Code: Alles auswählen

# find  /lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/ | sort
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/acpi-cpufreq.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/amd_freq_sensitivity.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/cpufreq_conservative.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/cpufreq_powersave.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/cpufreq_stats.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/cpufreq_userspace.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/p4-clockmod.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/pcc-cpufreq.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/powernow-k8.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/speedstep-centrino.ko
/lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/speedstep-lib.ko
Das powernow-k8 versuchen?








Code: Alles auswählen

# modinfo acpi-cpufreq
filename:       /lib/modules/3.16-0.bpo.3-amd64/kernel/drivers/cpufreq/acpi-cpufreq.ko
alias:          acpi
license:        GPL
description:    ACPI Processor P-States Driver
author:         Paul Diefenbaugh, Dominik Brodowski
alias:          acpi*:ACPI0007:*
alias:          acpi*:LNXCPU:*
alias:          cpu:type:x86,ven*fam*mod*:feature:*00E8*
alias:          cpu:type:x86,ven*fam*mod*:feature:*0016*
...


# modinfo acpi-cpufreq -k 3.17-1-amd64
filename:       /lib/modules/3.17-1-amd64/kernel/drivers/cpufreq/acpi-cpufreq.ko
alias:          acpi
license:        GPL
description:    ACPI Processor P-States Driver
author:         Paul Diefenbaugh, Dominik Brodowski
alias:          cpu:type:x86,ven*fam*mod*:feature:*00E8*
alias:          cpu:type:x86,ven*fam*mod*:feature:*0016*
alias:          acpi*:ACPI0007:*
alias:          acpi*:LNXCPU:*
... 
Das Ding kann nicht takten? Weil eh schon so sparsam?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Keinerfari
Beiträge: 16
Registriert: 14.11.2014 17:48:29

Re: cpufreq - Kernelmodul laden

Beitrag von Keinerfari » 05.12.2014 01:29:21

Danke rendegast - nach deinem Posting habe ich noch weiter recherchiert.

Es handelt sich offenbar um ein technisches Problem seitens Lenovo. Das BIOS meines Laptops stellt keine adäquaten ACPI DSDT Tabellen zur Verfügung.

Speziell geht es wohl um Einträge zu den verfügbaren Taktstufen und Spannungszuständen der CPU - diese fehlen einfach. Das laden des powernowk8 oder acpi-cpufreq Moduls kann also nicht funktionieren.

Durch diesen Artikel im Gentoo-Wiki (Link) bin ich auf folgendes Forenposting gestoßen: Link

Dort ist beschrieben, dass die unter /sys/firmware/acpi/tables/DSDT gespeicherte DSDT-Tabelle sich disassemblieren und modifizieren lässt. Die einzutragenden Werte kann man aus den technischen Referenzen von AMD entnehmen: noch ein Link

Danach klappts auch mit dem Laden des passenden Kernelmoduls. Darauf soll aber erst einmal einer kommen. ;)

Antworten