[ltp] Cpufreqd und cpufrequtils
Daniel Baule
linux-thinkpad@linux-thinkpad.org
Sat, 25 Feb 2006 21:00:57 +0100
Ok, i am running out of ideas,
although my temperature is at 44=B0C and i have a script running, that is a=
ble=20
to control the fanspeed, the fan is still running. I guess i made some=20
mistakes in configuring all the tools that i have, im pretty sure, there ar=
e=20
more than one running but i don know for sure.
Can someone tell me what i have to paste in order to solve my problem.
In the kernel nearly everything is deactivated for testing, as picture at=20
http://homepages.uni-paderborn.de/baule/Bildschirmphoto1.png shows.
The Controlscript is listed below and some outputs of console and configs f=
or=20
debugging.
Im a beginner in UNIX and especially Linux.
Maybe someone can give me some hints like.
In my opinion the right way is:
=2Demerging ibm-acpi
=2Dsetting experimental=3D1 in ????? i forgot the file, but i did it ????
=2Dloading ibm_acpi in /etc/modules.autoload.d/kernel-2.6
=2D deactiviting options in kernel
=2D emerge cpufreqd and add it to runlevel default and battery
=2D customize /etc/cpufreqd.conf like listed below
=2D emerge cpufrequtils and customize /etc/conf.d/cpufrequtils=20
(GOVENOR=3Duserspace)
=2Dmake fancontrolscript (like listed below) and make initscript, add it to=
=20
default and battery runlevel
what did i do wrong?
I cant change cpuspeed using cpufreq-set -f 2000 or -g performance, cpufreq=
d=20
says "No cpufreqd socket found"
DO i have to change anything in my biossettings? There are several=20
possibilities to configure in there.
Greeting and thanks for your help
Daniel=20
=2D------------------------------------------
Contact =09
=2D------------------------------------------
Daniel Baule
ICQ-UIN: 55595565
=2D------------------------------------------
rc-update show :
[code]
acpid | battery default
alsasound | boot
apache2 |
bootmisc | boot
checkfs | boot
checkroot | boot
clock | boot
coldplug |
consolefont | boot
cpufreqd | battery default
cpufrequtils | battery default
crypto-loop |
cupsd |
dbus |
domainname | battery boot default
esound |
famd |
gpm |
hald | default
hdparm |
hibernate-cleanup |
hostname | boot
hotplug |
hsqldb |
ibm-fancontrol | battery default
ivman | default
keymaps | boot
laptop_mode | battery
lisa |
local | battery default nonetwork
localmount | boot
modules | boot
nas |
ncpufreqd |
net.eth0 | battery default
net.lo | boot
netmount | battery default
nscd |
ntp-client |
ntpd |
ntpdate |
numlock |
pm.eth0 | battery
pm.sda | battery
portmap |
pwcheck |
reslisa |
rmnologin | boot
rsyncd |
samba |
saslauthd |
sshd |
syndaemon |
syslog-ng | default
urandom | boot
vixie-cron | battery default
xdm | boot
[/code]
lsmod:
[code]
Module Size Used by
snd_pcm_oss 49888 0
snd_mixer_oss 17216 1 snd_pcm_oss
snd_seq_oss 34752 0
snd_seq_midi_event 6144 1 snd_seq_oss
snd_seq 51792 4 snd_seq_oss,snd_seq_midi_event
snd_seq_device 7116 2 snd_seq_oss,snd_seq
snd_intel8x0 30172 0
snd_ac97_codec 94432 1 snd_intel8x0
snd_ac97_bus 1792 1 snd_ac97_codec
snd_pcm 84488 3 snd_pcm_oss,snd_intel8x0,snd_ac97_codec
snd_timer 22532 2 snd_seq,snd_pcm
snd 50404 9=20
snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_intel8x0,s=
nd_ac97_codec,snd_pcm,snd_timer
snd_page_alloc 8520 2 snd_intel8x0,snd_pcm
ibm_acpi 28416 0
nvram 7560 0
fglrx 452940 7
intel_agp 20508 1
agpgart 29448 2 fglrx,intel_agp
ipw2200 180036 0
ieee80211 46376 1 ipw2200
ieee80211_crypt 5184 1 ieee80211
[/code]
/etc/cpufreqd.conf
[code]
# this is a comment
#
# you need: 1 [General] section,=20
# 1 or more [Profile] sections
# 1 or more [Rule] sections
#
# a section ends at the first blank line
#
# [Rule] sample:
# [Rule]
# name=3Dsample_rule
# ac=3Don # (on/off)
# battery_interval=3D0-10
# cpu_interval=3D30-60
# programs=3Dxine,mplayer
# profile=3Dsample_profile
#
# [Profile] sample:
# [Profile]
# name=3Dsample_profile
# minfreq=3D10%
# maxfreq=3D100%
# policy=3Dperformance
#
# see CPUFREQD.CONF(5) manpage for a complete reference
[General]
pidfile=3D/var/run/cpufreqd.pid
poll_interval=3D2
pm_type=3Dacpi #(acpi, apm or pmu)
# Uncomment the following line to enable ACPI workaround (see=20
cpufreqd.conf(5))
# acpi_workaround=3D1
verbosity=3D4 #(if you want a minimal logging set to 5)
[Profile]
name=3Dhi_boost
minfreq=3D10%
maxfreq=3D100%
policy=3Dondemand
[Profile]
name=3Dmedium_boost
minfreq=3D33%
maxfreq=3D66%
policy=3Dondemand
[Profile]
name=3Dlo_boost
minfreq=3D0%
maxfreq=3D33%
policy=3Dondemand
[Profile]
name=3Dlo_power
minfreq=3D0%
maxfreq=3D33%
policy=3Dpowersave
# conservative mode when not AC
[Rule]
name=3Dconservative
ac=3Doff # (on/off)
battery_interval=3D0-100 =20
cpu_interval=3D0-40
profile=3Dlo_boost
# need some power
[Rule]
name=3Dlo_cpu_boost
ac=3Doff # (on/off)
battery_interval=3D0-100
cpu_interval=3D30-80
profile=3Dmedium_boost
# need big power (not if battery very low)
[Rule]
name=3Dhi_cpu_boost
ac=3Doff # (on/off)
battery_interval=3D50-100
cpu_interval=3D70-100
profile=3Dmedium_boost
# full power when AC
[Rule]
name=3DAC_on
ac=3Don # (on/off)
profile=3Dhi_boost
# full power when watching DVDs and not AC:
# this is the last rule and takes less
# precedence with respect to the others
[Rule]
name=3Ddvd_watching
ac=3Doff # (on/off)
battery_interval=3D0-100
programs=3Dxine,mplayer,avidemux
cpu_interval=3D0-100
profile=3Dhi_boost
[/code]
/etc/conf.d/cpufrequtils
[code]# /etc/conf.d/cpufrequtils: config file for /etc/init.d/cpufrequtils
# Which governor to use. Must be one of the governors listed in:
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
#
GOVERNOR=3D"userspace"
[/code]
unter /proc/acpi/ibm/fan steht nur
[code]
status: disabled
speed: 4055
commands: enable, disable
[/code]
[code]
cpufrequtils 0.4: cpufreq-info (C) Dominik Brodowski 2004
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: centrino
CPUs which need to switch frequency at the same time: 0
hardware limits: 800 MHz - 2.00 GHz
available frequency steps: 2.00 GHz, 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
available cpufreq governors: userspace
current policy: frequency should be within 800 MHz and 2.00 GHz.
The governor "userspace" may decide which speed to use
within this range.
current CPU frequency is 800 MHz.
[/code]
[code]
chiefcommander@denkbrett /proc/acpi/ibm $ cpufreqd-set dynamic
No cpufreqd socket found
[/code]
die Datei, die zur Steuerung der L=FCfter benutzt wird ist:
[code]
#!/bin/bash
# tp-fancontrol 0.2.8 (http://thinkwiki.org/wiki/ACPI_fan_control_script)
# Provided under the GNU General Public License version 2 or later or
# the GNU Free Documentation License version 1.2 or later, at your option.
# See http://www.gnu.org/copyleft/gpl.html for the Warranty Disclaimer.
# This script dynamically controls fan speed on some ThinkPad models
# according to user-defined temperature thresholds. It implements its
# own decision algorithm, overriding the ThinkPad embedded
# controller. It also implements a workaround for the fan noise pulse
# experienced every few seconds on some ThinkPads.
#
# Run 'tp-fancontrol --help' for options.
#
# For optimal fan behavior during suspend and resume, invoke=20
# "tp-fancontrol -u" during the suspend process.
#=20
# WARNING: This script relies on undocumented hardware features and
# overrides nominal hardware behavior. It may thus cause arbitrary
# damage to your laptop or data. Watch your temperatures!
#
# WARNING: The list of temperature ranges used below is much more liberal
# than the rules used by the embedded controller firmware, and is
# derived mostly from anecdotal evidence, hunches and wishful thinking.
# It is also model-specific (see http://thinkwiki.org/wiki/Thermal_sensors).
# Temperature ranges, per sensor:
# (min temperature: when to step up from 0-th fan level,
# max temperature: when to step up to maximum fan level)
THRESHOLDS=3D( # Sensor ThinkPad model
# R51 T41/2 Z60t 43-26xx
# min max # ---------- ------- ----- ----- ---------------------------
50 70 # EC 0x78 CPU CPU ? CPU
47 60 # EC 0x79 miniPCI ? ? Between CPU and PCMCIA slot
43 55 # EC 0x7A HDD ? ? PCMCIA slot
49 68 # EC 0x7B GPU GPU ? GPU
40 50 # EC 0x7C BAT BAT BAT BAT (front left of battery)
45 55 # EC 0x7D n/a n/a n/a n/a
37 47 # EC 0x7E BAT BAT BAT BAT (rear right of battery)
45 55 # EC 0x7F n/a n/a n/a n/a
45 60 # EC 0xC0 ? n/a ? Between northbridge and DR=
AM
48 62 # EC 0xC1 ? n/a ? Southbridge (under miniPCI)
50 65 # EC 0xC2 ? n/a ? Power circuitry (under CDC)
47 60 # HDAPS HDAPS HDAPS HDAPS HDAPS readout (same as EC=
=20
0x79)
)
LEVELS=3D( 0 2 4 7) # Fan speed levels
ANTIPULSE=3D( 0 1 0 0) # Prevent fan pulsing noise at this =
level
# (reduces frequency of fan RPM update=
s)
OFF_THRESH_DELTA=3D3 # when gets this much cooler than 'min' above, may tur=
n off=20
fan
MIN_THRESH_SHIFT=3D0 # increase min thresholds by this much
MIN_WAIT=3D180 # minimum time (seconds) to spend in a given level before=20
stepping down
IBM_ACPI=3D/proc/acpi/ibm
HDAPS_TEMP=3D/sys/bus/platform/drivers/hdaps/hdaps/temp1
LOGGER=3D/usr/bin/logger=20
INTERVAL=3D3 # sample+refresh interval
SETTLE_TIME=3D6 # wait this many seconds long before applying anti-puls=
ing
RESETTLE_TIME=3D600 # briefly disable anti-pulsing at every N seconds
SUSPEND_TIME=3D5 # seconds to sleep when receiving SIGUSR1
PID_FILE=3D/var/run/tp-fancontrol.pid
QUIET=3Dfalse
DRY_RUN=3Dfalse
DAEMONIZE=3Dfalse
AM_DAEMON=3Dfalse
KILL_DAEMON=3Dfalse
SUSPEND_DAEMON=3Dfalse
SYSLOG=3Dfalse
usage() {
echo "
Usage: $0 [OPTION]...
Available options:
-s N shift up temperature thresholds by N degrees
(positive for quieter, negative for cooler)
-t test mode
-q quiet mode
-d daemon mode, go into background (implies -q)
-l log to syslog
-k kill already-running daemon
-u tell already-running daemon that the system is being suspended
-p pid file location for daemon mode, default: $PID_FILE
"
exit 1;
}
while getopts 's:qtdlp:kuh' OPT; do
case "$OPT" in
s) # shift thresholds
MIN_THRESH_SHIFT=3D"$OPTARG"
;;
t) # test mode
DRY_RUN=3Dtrue
;;
q) # quiet mode
QUIET=3Dtrue
;;
d) # go into background and daemonize
DAEMONIZE=3Dtrue
;;
l) # log to syslog
SYSLOG=3Dtrue
;;
p) # different pidfile
PID_FILE=3D"$OPTARG"
;;
k) # kill daemon
KILL_DAEMON=3Dtrue
;;
u) # suspend daemon
SUSPEND_DAEMON=3Dtrue
;;
h) # short help
usage
;;
\?) # error
usage
;;
esac
done
[ $OPTIND -gt $# ] || usage # no non-option args
# no logger found, no syslog capabilities
$SYSLOG && [ ! -x $LOGGER ] && SYSLOG=3Dfalse || :
if $DRY_RUN; then
echo "$0: Dry run, will not change fan state."
QUIET=3Dfalse
DAEMONIZE=3Dfalse
fi
thermometer() { # output list of temperatures
# Base temperatures from ibm-acpi:
[ -r $IBM_ACPI/thermal ] || { echo "$0: Cannot read $IBM_ACPI/thermal"=
=20
2>&1 ; exit 1; }
read X Y < $IBM_ACPI/thermal
[ "$X" =3D=3D "temperatures:" ] || { echo "$0: Bad temperatures: $X $Y"=
>&2; =20
exit 1; }
echo -n "$Y ";
# Extended temperatures at EC offsets 0xC0 to 0xC2:
[ -r $IBM_ACPI/ecdump ] || { echo "$0: Cannot read $IBM_ACPI/ecdump" 2>=
&1;=20
exit 1; }
perl -e 'm/^EC 0xc0: .(..) .(..) .(..) / and print hex($1)." ".hex($2).=
"=20
".hex($3)." " and exit 0 while <>; exit 1' < $IBM_ACPI/ecdump
# HDAPS temperature (optional):
! [ -r $HDAPS_TEMP ] || echo -n "`cat $HDAPS_TEMP` "
return 0
}
speedometer() { # output fan speed RPM
sed -n 's/^speed:[ \t]*//p' $IBM_ACPI/fan
}
setlevel() { # set fan speed level
$DRY_RUN || echo 0x2F $1 > $IBM_ACPI/ecdump
}
getlevel() { # get fan speed level
perl -e 'm/^EC 0x20: .* .(..)$/ and print $1 and exit 0 while <>; exit =
1'=20
< $IBM_ACPI/ecdump
}
log() {
$QUIET || echo "> $*"
! $SYSLOG || $LOGGER -t "`basename $0`[$$]" "$*"
}
cleanup() { # clean up after work
$AM_DAEMON && rm -f "$PID_FILE" 2> /dev/null
log "Shutting down, switching to automatic fan control"
$DRY_RUN || echo enable > $IBM_ACPI/fan
}
floor_div() {
echo $(( (($1)+1000*($2))/($2) - 1000 ))
}
init_state() {
IDX=3D0
NEW_IDX=3D0
START_TIME=3D0
MAX_IDX=3D$(( ${#LEVELS[@]} - 1 ))
SETTLE_LEFT=3D0
RESETTLE_LEFT=3D0
FIRST=3Dtrue
RESTART=3Dfalse
}
control_fan() {
# Enable the fan in default mode if anything goes wrong:
set -e -E -u
trap "cleanup; exit 2" HUP INT ABRT QUIT SEGV TERM
trap "cleanup" EXIT
trap "log 'Got SIGUSR1'; setlevel 0; RESTART=3Dtrue; sleep $SUSPEND_TIM=
E"=20
USR1
init_state
log "Starting dynamic fan control"
# Control loop:
while true; do
TEMPS=3D`thermometer`
$QUIET || SPEED=3D`speedometer`
$QUIET || ECLEVEL=3D`getlevel`
NOW=3D`date +%s`
# Calculate new level index by placing temperatures into Z-regions:
# Z >=3D 2*I means "must be at index I or higher"
# Z =3D 2*I+1 is hysteresis: "don't step down if currently at I+1"
# hence the Z-regions are, for d=3D(MAX-MIN)/(2*MAX_IDX-1) :
# Z=3D0:{-infty..MIN-d) Z=3D1:{MIN-d..MIN) Z=3D2:{MIN..MIN+d} Z=
=3D3:
{MIN+d..MIN+2d} ... Z=3D2*MAX_IDX:{MAX-d, MAX}
MAX_Z=3D$(( IDX>0 ? ( NOW>START_TIME+MIN_WAIT ? 2*(IDX-1) : 2*IDX )=
:=20
0 ))
SENSOR=3D0
Z_STR=3D"$MAX_Z+"
TEMP_STR=3D"";
for TEMP in $TEMPS; do
[ $((2*SENSOR+2)) -le ${#THRESHOLDS[@]} ] ||
{ echo "Too many sensors, not enough values in THRESHOLDS"=
=20
2>&1; exit 1; }
if [ $TEMP =3D=3D -128 ]; then
Z=3D'_'; TEMP=3D'_' # inactive sensor
else
MIN=3D$((THRESHOLDS[SENSOR*2] + MIN_THRESH_SHIFT));
MAX=3D$((THRESHOLDS[SENSOR*2+1]))
if (( TEMP < MIN - OFF_THRESH_DELTA )); then
Z=3D0
else
Z=3D$(( `floor_div $(( (TEMP-MIN)*(2*MAX_IDX-2) ))=20
$((MAX-MIN))` + 2 ))
fi
[ $MAX_Z -gt $Z ] || MAX_Z=3D$Z
fi
Z_STR=3D"${Z_STR}${Z}"
TEMP_STR=3D"${TEMP_STR}${TEMP} "
(( ++SENSOR ))
done
[ $SENSOR -gt 0 ] || { echo "No temperatures read" >&2; exit 1; }
(( (MAX_Z =3D=3D 2*IDX-1) && ++MAX_Z )) # hysteresis
NEW_IDX=3D$(( MAX_Z/2 ))
[ $NEW_IDX -le $MAX_IDX ] || NEW_IDX=3D$MAX_IDX
# Interrupted by a signal?
if $RESTART; then
init_state
log "Resetting state"
continue
fi
# Transition
$FIRST && OLDLEVEL=3D'?' || OLDLEVEL=3D${LEVELS[$IDX]}
NEWLEVEL=3D${LEVELS[$NEW_IDX]}
$QUIET || echo "L=3D$OLDLEVEL->$NEWLEVEL EC=3D$ECLEVEL RPM=3D`print=
f %4s=20
$SPEED` T=3D($TEMP_STR) Z=3D$Z_STR"
if [ "$OLDLEVEL" !=3D "$NEWLEVEL" ]; then
START_TIME=3D$NOW
log "Changing fan level: $OLDLEVEL->$NEWLEVEL (temps: $TEMP_ST=
R)"
fi
setlevel $NEWLEVEL
sleep $INTERVAL
# If needed, apply anti-pulsing hack after a settle-down period (an=
d=20
occasionally re-settle):
if [ ${ANTIPULSE[${NEW_IDX}]} =3D=3D 1 ]; then=20
if [ $NEWLEVEL !=3D $OLDLEVEL -o $RESETTLE_LEFT -le 0 ]; then #=
=20
start settling?
SETTLE_LEFT=3D$SETTLE_TIME
RESETTLE_LEFT=3D$RESETTLE_TIME
fi
if [ $SETTLE_LEFT -ge 0 ]; then
SETTLE_LEFT=3D$((SETTLE_LEFT-INTERVAL))
else
setlevel 0x40 # disengage briefly to fool embedded controll=
er
sleep 0.5
RESETTLE_LEFT=3D$((RESETTLE_LEFT-INTERVAL))
fi
fi
IDX=3D$NEW_IDX
FIRST=3Dfalse
done
}
if $KILL_DAEMON || $SUSPEND_DAEMON; then=20
if [ -f "$PID_FILE" ]; then
set -e
DPID=3D"`cat \"$PID_FILE\"`"=20
if $KILL_DAEMON; then
kill "$DPID"
rm "$PID_FILE"
$QUIET || echo "Killed process $DPID"
else # SUSPEND_DAEMON
kill -USR1 "$DPID"
$QUIET || echo "Sent SIGUSR1 to $DPID"
fi
else
$QUIET || echo "Daemon not running."
exit 1
fi
elif $DAEMONIZE ; then
if [ -e "$PID_FILE" ]; then
echo "$0: File $PID_FILE already exists, refusing to run."
exit 1
else
AM_DAEMON=3Dtrue QUIET=3Dtrue control_fan 0<&- 1>&- 2>&- &
echo $! > "$PID_FILE"
exit 0
fi
else
[ -e "$PID_FILE" ] && echo "WARNING: daemon already running"
control_fan
fi
[/code]
Am Samstag 25 Februar 2006 06:11 schrieb Guarded Identity:
> Hi,
>
> I think one of the problems you're facing is that kernel's now offer
> internal governors (ondemand, conservative). Before only userspace
> governors were available. The internal governors aren't completely as
> flexible as userspace governors like powernowd, or cpufreqd, but I use the
> built in governors, and they work perfectly fine more me. Honestly, most
> of the time, I'm just at 600MHz, so it's not really that big a deal for m=
e.
> Ondemand just jumps really rapidly from min to max frequencies.=20
> Conservative does a slower ramping. You can control these governors a bit
> from the SysFS. Here's a listing of what's there in my Thinkpad T42:
>
> [ /sys/devices/system/cpu/cpu0/cpufreq]
> $ ls -la
> total 0
> drwxr-xr-x 4 root root 0 2006-02-24 22:45 ./
> drwxr-xr-x 3 root root 0 2006-02-24 08:33 ../
> -r--r--r-- 1 root root 4096 2006-02-24 22:45 affected_cpus
> drwxr-xr-x 2 root root 0 2006-02-24 08:33 conservative/
> -r-------- 1 root root 4096 2006-02-24 22:45 cpuinfo_cur_freq
> -r--r--r-- 1 root root 4096 2006-02-24 22:45 cpuinfo_max_freq
> -r--r--r-- 1 root root 4096 2006-02-24 22:45 cpuinfo_min_freq
> -r--r--r-- 1 root root 4096 2006-02-24 22:45 scaling_available_frequenci=
es
> -r--r--r-- 1 root root 4096 2006-02-24 22:45 scaling_available_governors
> -r--r--r-- 1 root root 4096 2006-02-24 22:45 scaling_cur_freq
> -r--r--r-- 1 root root 4096 2006-02-24 22:45 scaling_driver
> -rw-r--r-- 1 root root 4096 2006-02-24 08:33 scaling_governor
> -rw-r--r-- 1 root root 4096 2006-02-24 22:45 scaling_max_freq
> -rw-r--r-- 1 root root 4096 2006-02-24 22:45 scaling_min_freq
> drwxr-xr-x 2 root root 0 2006-02-24 08:33 stats/
>
> So really, you don't quite need cpufrequtils if you're okay just directly
> managing these files, but honestly, cpufrequtils makes it pretty easy.
>
> sudo sh -c "echo conservative > \
> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
>
> isn't quite as convenient as:
>
> sudo cpufreq-set -g conservative
>
> Also, cpufrequtils will throw in a nice /etc/init.d/ script that helps set
> up the governor on boot-up.
>
> If you do want to use cpufreqd, powernowd, or some other userspace
> governor, then you're going to set the governor in the kernel to
> "userspace." It looks like you have all the governors available that I do
> compiled into your kernel:
>
> [ /sys/devices/system/cpu/cpu0/cpufreq]
> $ more scaling_available_governors
> conservative ondemand powersave userspace performance
>
> Setting the governor to something like "ondemand" and also running cpufre=
qd
> will just be a waste of the cpufreqd daemon. cpufreqd will only be in
> control if you set the kernel to use the "userspace" governor.
>
> Anyway, that's what I know about SpeedStepping. Hopefully it helps you
> sort things out.
>
> - Sukant
>
> > Hello,
> >
> > i have a problem configuring my CPU-freq-scaling.
> > I do have laptopmode, cpufreqd and cpufrequtils. laptopmode is added to
> > battery runlevel, cpufeqd to default and battery and cpufrequtils to
> > nothing.
> >
> > Do i need both, cpufreqd and utils ? What do i have to do to make
> > speedstepping work. I can change frequency manually bei typing
> > cpufreq-set
> >
> >
> > denkbrett conf.d # cpufreq-info
> > cpufrequtils 0.4: cpufreq-info (C) Dominik Brodowski 2004
> > Report errors and bugs to linux@brodo.de, please.
> > analyzing CPU 0:
> > driver: centrino
> > CPUs which need to switch frequency at the same time: 0
> > hardware limits: 800 MHz - 2.00 GHz
> > available frequency steps: 2.00 GHz, 1.60 GHz, 1.33 GHz, 1.07 GHz, 800
> > MHz available cpufreq governors: conservative, ondemand, powersave,
> > userspace, performance
> > current policy: frequency should be within 800 MHz and 800 MHz.
> > The governor "ondemand" may decide which speed to use
> > within this range.
> > current CPU frequency is 800 MHz (asserted by call to hardware).
> >
> > is the output in bash, /etc/cpufreqd.conf is set, governor "ondemand" is
> > set in conf.d/cpufrequtils.
> >
> > Problems are: while compiling CPU is still on 800Mhz and when i cut ac,
> > laptopmode is still disabled and no govenor is changed or freq.