From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Opdenacker Subject: Re: Shell script to select the right cpufreq module? Date: Wed, 31 Mar 2004 17:48:06 +0200 Sender: cpufreq-bounces@www.linux.org.uk Message-ID: <406AE836.1070707@free.fr> References: <4069CA25.2080806@free.fr> <20040330203109.GA7141@dominikbrodowski.de> <20040331073455.q797owk8kwogcccw@carlthompson.net> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20040331073455.q797owk8kwogcccw@carlthompson.net> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: cpufreq-bounces+glkc-cpufreq=gmane.org@www.linux.org.uk Content-Type: text/plain; charset="us-ascii"; format="flowed" To: Carl Thompson Cc: cpufreq mailing list Hi Carl, Are you trying to write this script for the FC2 /etc/init.d/cpuspeed too? If you can do it, that's great! Here are details about my processor. According to the specs, it's an Intel Pentium 4B processor at 2.4 GHz (Northwood 533 MHz, 0.13 um, 512 KB cache): processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.40GHz stepping : 7 cpu MHz : 899.900 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 mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid bogomips : 4734.97 Note that this processor works with a reduced frequency at the moment... :-) Cheers, Michael. > Does Vendor/Family/Model/Stepping give you enough information to > determine the appropriate cpufreq driver? I notice that you are also > looking for the acpi processor flag which will override everything else > and using the p4-clockmod driver. Otherwise, it looks like my Dell > laptop would have used speedstep-ich according to your script. Is > p4-clockmod better than speedstep-ich? Is it true that any processor > that has the 'acpi' flag set will use the p4-clockmod driver as your > script assumes? Fedora Core 2 does not seem to even include the > speedstep-ich driver. Is it obsolete? (Sorry, most of my experience > is with AMD mobile processors). > > Where can I find more complete info on possible values for the fields of > /proc/cpuinfo and the different cpufreq drivers they represent? It > doesn't have to be a working script; with the info I'll write my own to > include with cpuspeed. > > Thanks, > Carl > > Quoting Dominik Brodowski : > >> On Tue, Mar 30, 2004 at 09:27:33PM +0200, Michael Opdenacker wrote: >> >>> Does anyone here already have a shell script that reads >>> /proc/cpuinfo and returns the name of the corresponding cpufreq >>> module if the processor is supported? >>> >>> Otherwise, I'll start to write one and ask you guys to test it, as I >>> can only make tests on P4. >> >> >> I proposed one such shell script a couple of weeks ago and submitted a >> draft, which I can't locate in the archives ATM so here it is again: >> >> #!/bin/sh >> >> # Copyright (C) 2004 Dominik Brodowski >> # >> # This script is free software; you can redistribute it and/or modify >> # it under the terms of the GNU General Public License version 2 as >> # published by the Free Software Foundation. >> # >> # This script tries to detect the best suited x86 cpufreq driver, and >> # load it using "modprobe" commands. >> # >> # >> >> DEBUG=1 >> >> KV="$(uname -r | cut -c1-3)" >> >> if [ "$KV" != "2.6" ]; then >> echo "Wrong kernel version" >> exit 1 >> fi >> >> # the cpufreq drivers >> ACPI=0 >> P4CLOCKMOD=0 >> SPEEDSTEP_SMI=0 >> SPEEDSTEP_ICH=0 >> SPEEDSTEP_CENTRINO=0 >> FLAG_EST=0 >> FLAG_ACPI=0 >> FLAG_ACC=0 >> >> # parse /proc/cpuinfo >> FAMILY="$(cat /proc/cpuinfo | grep "cpu family" | cut -c14-)" >> MODEL="$(cat /proc/cpuinfo | grep "model" | grep -v "model name" | >> cut -c10-)" >> STEPPING="$(cat /proc/cpuinfo | grep "stepping" | cut -c12-)" >> >> # parse for vendor >> cat /proc/cpuinfo | grep vendor_id | grep Intel &> /dev/null && INTEL=1 >> >> # parse flags >> cat /proc/cpuinfo | grep "flags" | grep " est" &> /dev/null && >> FLAG_EST=1 >> cat /proc/cpuinfo | grep "flags" | grep " acpi" &> /dev/null && >> FLAG_ACPI=1 >> cat /proc/cpuinfo | grep "flags" | grep " tm" &> /dev/null && FLAG_ACC=1 >> >> >> if [ $DEBUG -eq 1 ]; then >> echo "CPU family is $FAMILY" >> echo "CPU model is $MODEL" >> echo "CPU stepping is $STEPPING" >> echo "CPU vendor: Intel? $INTEL" >> fi >> >> >> if [ $INTEL -eq 1 ]; then >> case "$FAMILY" in >> "6") >> if [ $DEBUG -eq 1 ]; then >> echo "Pentium 3 or Pentium M detected." >> fi >> case "$MODEL" in >> "9") >> if [ "$STEPPING" == "5" ] ; then >> if [ $FLAG_EST -eq 1 ]; then >> SPEEDSTEP_CENTRINO=1 >> fi >> fi >> ;; >> "8") >> SPEEDSTEP_SMI=1 >> SPEEDSTEP_ICH=1 >> ;; >> "11") >> SPEEDSTEP_ICH=1 >> ;; >> *) >> echo "Unknown CPU." >> ;; >> esac >> ;; >> "15") >> if [ $DEBUG -eq 1 ]; then >> echo "Pentium 4 detected." >> fi >> if [ "$MODEL" == "2" ]; then >> case "$STEPPING" in >> "4") >> SPEEDSTEP_ICH=1 >> ;; >> "7") >> SPEEDSTEP_ICH=1 >> ;; >> "9") >> SPEEDSTEP_ICH=1 >> ;; >> *) >> true >> ;; >> esac >> fi >> ;; >> *) >> echo "unknown Intel Processor. Aborting." >> exit 1 >> ;; >> esac >> if [ $FLAG_ACPI -eq 1 ]; then >> if [ $FLAG_ACC -eq 1 ]; then >> P4CLOCKMOD=1; >> fi >> fi >> ACPI=1 >> fi >> >> if [ $DEBUG -eq 1 ]; then >> echo "ACPI? $ACPI" >> echo "P4CLOCKMOD? $P4CLOCKMOD" >> echo "SPEEDSTEP_CENTRINO? $SPEEDSTEP_CENTRINO" >> echo "SPEEDSTEP_ICH? $SPEEDSTEP_ICH" >> echo "SPEEDSTEP_SMI? $SPEEDSTEP_SMI" >> fi >> >> if [ $SPEEDSTEP_CENTRINO -eq 1 ]; then >> modprobe speedstep-centrino >> fi >> >> if [ $SPEEDSTEP_ICH -eq 1 ]; then >> modprobe speedstep-ich >> fi >> >> if [ $ACPI -eq 1 ]; then >> modprobe acpi >> fi >> >> if [ $P4CLOCKMOD -eq 1 ]; then >> modprobe p4-clockmod >> fi >> >> if [ $SPEEDSTEP_SMI -eq 1 ]; then >> modprobe speedstep-smi >> fi >> >> >> >> end of script... and as I'm more interested in the kernel side of >> cpufreq >> anyways, I'd be glad if somebody else would finish this script and >> make it >> ready for prime-time usage. Are you willing to do so? Would be great! >> >> Dominik >> >> _______________________________________________ >> Cpufreq mailing list >> Cpufreq@www.linux.org.uk >> http://www.linux.org.uk/mailman/listinfo/cpufreq > > > > > > > -- Michael Opdenacker http://opdenacker.org/