Pages : 1
#1 Le 15/07/2005, à 23:09
- Loïc
powernowd et cpuspeedy...
Bonsoir,
Par défaut Ubuntu utilise "powernowd" pour contrôler la vitesse du processeur selon sa charge.
Je préfere utiliser "cpuspeedy" pour fixer une vitesse mais le problème c'est qu'ils ne font pas bon ménage, j'ai donc essayé de le désinstaller (powernowd) mais après un redémarrage j'ai remarqué que je ne pouvais plus contrôler la vitesse.
Il senble que le fichier d'initialisation de "powernowd" charge des modules nécessaires au contrôle du processeur.
J'aimerai donc modifier ce script de façon à ce que les modules importants se charge sauf "powernowd". Mais je dois avouer que je ne comprends pas trop le contenu de son script d'initialisation :
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/powernowd
NAME=powernowd
DESC=powernowd
test -x $DAEMON || exit 0
# create the file /etc/default/powernowd if you want to override the value of
# variable OPTIONS and change the default behavior of the daemon as launched
OPTIONS="-q"
[ -f /etc/default/$NAME ] && . /etc/default/$NAME
# Get lsb functions
. /lib/lsb/init-functions
. /etc/default/rcS
if [ "x$VERBOSE" = "xno" ]; then
MODPROBE_OPTIONS="$MODPROBE_OPTIONS -Q"
export MODPROBE_OPTIONS
fi
set -e
fallback() {
modprobe speedstep-smi||(modprobe acpi-cpufreq||true)
}
load_modules() {
#stop the kernel printk'ing at all while we load.
PRINTK=`cat /proc/sys/kernel/printk`
[ "$VERBOSE" = no ] && echo "0 0 0 0" > /proc/sys/kernel/printk
#build a list of current modules so we don't load a module twice
LIST=`/sbin/lsmod|awk '!/Module/ {print $1}'`
#get list of available modules
LOC="/lib/modules/`uname -r`/kernel/drivers/cpufreq"
if [ -d $LOC ]; then
MODAVAIL=`( find $LOC -type f -name "*.o" -printf "basename %f .o\n"; \
find $LOC -type f -name "*.ko" -printf "basename %f .ko\n" ) | /bin/sh`
else
MODAVAIL=""
fi
#echo "Loading cpufreq modules:"
for mod in $MODAVAIL; do
# echo " $mod"
echo $LIST| grep -q -w "$mod" || modprobe $mod >/dev/null || /bin/true
done
#cpufreq is built in on powerpc; just return
if [ "`uname -m`" = "ppc" ]; then
return 0
fi
#new style detection system
if [ ! "$FREQDRIVER" = "" ]; then
modprobe "$FREQDRIVER"||fallback
else
FREQDRIVER=$(/usr/share/powernowd/cpufreq-detect.sh)
[ ! -z "$FREQDRIVER" ] && (modprobe "$FREQDRIVER"||fallback)
fi
if [ "$USE_OLD_DETECT" = "fish" ]; then
# now lets load the driver
if [ ! $FREQDRIVER = "" ]; then
modprobe $FREQDRIVER||true
fi
if [ "`uname -m`" = "x86_64" ]; then
modprobe powernow-k8 >/dev/null 2>&1||true
fi
if [ ! -f /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
modprobe acpi > /dev/null 2>&1|| true
fi
fi
echo "$PRINTK" > /proc/sys/kernel/printk
}
check_kernel() {
CPUFREQ=/sys/devices/system/cpu/cpu0/cpufreq
if [ -f "$CPUFREQ/scaling_governor" ] && \
[ -f "$CPUFREQ/scaling_available_governors" ] && \
grep -q userspace "$CPUFREQ/scaling_available_governors"
then
return 0
else
return 1
fi
}
start() {
log_begin_msg "Starting $DESC... "
if check_kernel
then
# echo "Starting $DESC: "
if ! start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- $OPTIONS >/dev/null 2>&1; then
status=$?
log_end_msg $status
return $status
fi
else
log_success_msg "CPU frequency scaling not supported"
# echo "required sysfs objects not found!"
# echo -e "\tRead /usr/share/doc/powernowd/README.Debian for more information."
fi
log_end_msg 0
return 0
}
case "$1" in
start)
[ -f /proc/modules ] && load_modules
start
;;
stop)
log_begin_msg "Stopping $DESC: "
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
log_end_msg $?
;;
restart|force-reload)
$0 stop
sleep 1
start
#echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
log_success_msg "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
Si quelqu'un pouvait me dire comment faire à partir de ce script un autre qui puisse charger les modules nécessaire au contrôle du processeur, pour que je puisse par la suite désinstaller "powernowd", ça serait bien .
Merci...
Hors ligne
#2 Le 17/07/2005, à 20:57
- Loïc
Re : powernowd et cpuspeedy...
Bonsoir,
J'ai fini par trouver.
En fait, pour faire varier la vitesse du processeur il suffit que les modules "freq_table", "cpufreq_userspace" et "speedstep_centrino" soient chargés. Il faut donc les rajouter dans /etc/modules, après on peut désinstaller "powernowd" et le remplacer par "cpuspeedy" ou "cpufreqd".
Hors ligne
#3 Le 17/07/2005, à 21:12
- tomtom
Re : powernowd et cpuspeedy...
[Résolu] !!!
Hors ligne
Pages : 1