[ cpufreq ] script modifié pour initialiser tout le monde

Reconnaissance et configuration du matériel / kernel linux
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

[ cpufreq ] script modifié pour initialiser tout le monde

Message par _alexmyself »

j'ai modifié /etc/rc.d/cpufreq pour qu'il initialise tout les processeurs au demarrage (sinon il fait que le premier)
j'avait fait une feature request et du coup je vais y mettre un lien vers ici parceque le texte du script ressemble plus a rien sans quoi...

Code : Tout sélectionner

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

# source application-specific settings
[ -f /etc/conf.d/cpufreq ] && . /etc/conf.d/cpufreq

case "$1" in
  start)
    stat_busy "Setting cpufreq governing rules"

	params=""
	if [ -n $governor ]; then
		mod="cpufreq_$governor"
		modprobe $mod > /dev/null 2>&1
		params="-g $governor"
		if [ $? -eq 0 ]; then
#################################################
			#find how many processors have to be set
			#where
			cpu_location='/sys/devices/system/cpu/'
			#count in a temp file (this help me to correctly handle `ls` output)
			`touch temp_cpu_$$`
			`ls $cpu_location > temp_cpu_$$`
			#list just the directories in $cpu_tab[]
			declare -i cpu_index
			cpu_index=0
			while read temp_cpu_line;
				do
				[ -d "$cpu_location$temp_cpu_line" ] && cpu_tab[$cpu_index]=$temp_cpu_line && cpu_index+=1
			done < temp_cpu_$$
			#kill the temp file
			rm temp_cpu_$$
#################################################
			if [ "$min_freq" != "" ]; then
				params="$params -d $min_freq"
			fi
			if [ "$max_freq" != "" ]; then
				params="$params -u $max_freq"
			fi
		else
			stat_busy "    Cannot load governor module '$governor'"
			stat_fail
			exit
		fi
	fi

	if [ "$params" != "" ]; then
#################################################
		#set for each cpu in $cpu_tab[]
		cpu_index=0
		for a_cpu in "${cpu_tab[@]}"
			do
				`cpufreq-set --cpu $cpu_index $params`
				cpu_index+=1
		done
#################################################
		#cpufreq-set $params
		stat_done
	else
		stat_busy "    Invalid configuration in /etc/conf.d/cpufreq"
		stat_fail
	fi
    ;;
  stop)
    # nothing to do
    ;;
  restart)
    $0 start
    ;;
  set)
    # TODO: make callable... "cpufreq set 800MHz"
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"  
esac
exit 0
c'est beau, ca brille, adieu cpufreqd
Avatar de l’utilisateur
warnaud
Maître du Kyudo
Messages : 1640
Inscription : ven. 11 août 2006, 17:05
Localisation : Rolle (CH)

Message par warnaud »

Merci pour l'astuce !
Plus ça rate, plus ça a de chance de réussir. En somme, un succès n'est qu'une erreur qui a finit par réussir (même par erreur). Ne déséspérez donc pas et perseverez. Utilisez La Rache™
Patientia quod lard quod barrus planto diligo ut licentia
—¤÷(`[¤*Powered By *¤]´)÷¤—
Archlinux ~ Fvwm ~ Irssi ~ URxvt
Avatar de l’utilisateur
Skunnyk
Maître du Kyudo
Messages : 1137
Inscription : mer. 06 sept. 2006, 21:31
Localisation : IRC
Contact :

Message par Skunnyk »

j'ai modifié /etc/rc.d/cpufreq pour qu'il initialise tout les processeurs au demarrage (sinon il fait que le premier)
Euh, j'ai surement rien compris mais ca n'est utile que si on a plusieurs processeurs ? Si tu pouvais expliquer :p
_alexmyself
Chu Ko Nu
Messages : 405
Inscription : lun. 18 sept. 2006, 16:21
Localisation : france, yvelines 78

Message par _alexmyself »

j'avait juste besoin d'un endroit pour coller ce texte sans déformation de mises en page et c'est tombé là.
oui ca ne concerne que le cas ou tu as plusieurs processeurs ou, dans mon cas, un seul qui se fait passer pour deux (P4M HyperThreading) et je suppose tout les doubles coeurs et assimilés.
le cpufreqd actuel gère tout le monde c'est juste cpufreq qui ne prenait pas tout le monde, ce n'est pas très utile comme modif c'est juste que là j'étais en pleine guerre de processeur et que pour faire des essais ca (me) manquais.
voila :)
Répondre