Ventole al massimo! (iMac early 2006)

Problemi con il Mac, componenti o periferiche

Moderatore: ModiMaccanici

daddazio
Stato: Non connesso
Nuovo Maccanico
Nuovo Maccanico
Iscritto il: lun, 22 ott 2012 10:47
Messaggi: 3

Top

Oggetto del messaggio: Ventole al massimo! (iMac early 2006)

Messaggio da daddazio »

Buongiorno a tutti!
Ho acquistato un iMac early 2006 20" poco tempo fa. Arrivandomi senza Hdd era privo anche del relativo sensore.
Questo comportava l'innalzamento della velocità delle ventole alla massima velocità.
Ora ho acquistato il sensore ma la situazione non sembra molto cambiata: dopo aver resettato la SMC le ventole si avviano lentamente fino alla massima velocità.
Ho provato con l'Apple Service Diagnostic e non risultano errori.

Avete qualche consiglio?? :)

Grazie dell'attenzione, ciao!
Matteo.

PS
Ho installato fin da subito Snow Leopard, può servire a qualcosa provare ad installare Tiger?

daddazio
Stato: Non connesso
Nuovo Maccanico
Nuovo Maccanico
Iscritto il: lun, 22 ott 2012 10:47
Messaggi: 3

Top

Oggetto del messaggio: Re: Ventole al massimo! (iMac early 2006)

Messaggio da daddazio »

Buongiorno,
alla fine ho risolto creando questo script da associare al binario di smc (contenuto in SMCfancontrol), basta lanciarlo all'avvio in background.
Si adatta facilmente a tutti i mac, basta inserire i dati necessari :-)
Ciao!

Codice: Seleziona tutto

#!/bin/bash
path_to_SMC="/usr/local/scripts/smc"

i=0
# HDD settings
TEMP_MAX[i]=50
TEMP_MIN[i]=35
FAN_MAX[i]=5000
FAN_MIN[i]=1200
FAN_KEY[i]=F0Mx
TMP_KEY[i]=TH0P

let i++
# CPU settings
TEMP_MAX[i]=60
TEMP_MIN[i]=45
FAN_MAX[i]=5000
FAN_MIN[i]=1400
FAN_KEY[i]=F1Mx
TMP_KEY[i]=TC0D

let i++
# OPT settings
TEMP_MAX[i]=50
TEMP_MIN[i]=35
FAN_MAX[i]=5000
FAN_MIN[i]=1200
FAN_KEY[i]=F2Mx
TMP_KEY[i]=TO0P



fan_set() {
#	echo $1 $2 $3 $4 $5 $6

	TMP=`$path_to_SMC -k $6 -r`		#acquisisco la temperatura dal sensore
#	echo $TMP

	TMP=`echo $TMP | cut -d" " -f4`		#prelevo il primo byte della temperatura
#	echo $TMP

	TMP=`echo $TMP | tr '[a-z]' '[A-Z]'`	#rendo tutto maiuscolo per la conversione da HEX
	TMP=`echo "ibase=16; $TMP" | bc`	#converto da HEX a 10
#	echo $TMP

	if [[ $TMP -lt $2 ]]			#se la temperatura é inferiore alla minima uso quella
	then
		TMP=$2
	fi
#	echo $TMP

	DIFF1=`echo $1-$2 | bc`
	DIFF2=`echo $TMP-$2 | bc`
	PERC=`echo "scale = 2 ; $DIFF2/$DIFF1" | bc`
	DIFF1=`echo $3-$4 | bc`
	SPD=`echo $DIFF1*$PERC | bc`
	SPD=`echo $SPD | cut -d"." -f1`
	SPD=`echo $SPD+$4 | bc`
#	echo $SPD

	if [[ $SPD -gt $3 ]]			#se la velocità é superiore alla massima uso quella
	then
		SPD=$3
	fi

	SPD=`echo $SPD*4 | bc`			#moltiplico per 4 per convertire in HEX
	SPD=`echo "obase=16; $SPD" | bc`	#converto in HEX
	
#	echo $SPD
	$path_to_SMC -k $5 -w $SPD		#scrivo la velocità della ventola

	unset TMP
	unset SPD
}

i=0

while :
do
	fan_set ${TEMP_MAX[i]} ${TEMP_MIN[i]} ${FAN_MAX[i]} ${FAN_MIN[i]} ${FAN_KEY[i]} ${TMP_KEY[i]}

	LEN=${#TMP_KEY[*]}
	LEN=`echo $LEN-1 | bc`

#	echo $i di $LEN

	let i++
	if [[ $i -gt $LEN ]]
	then
		i=0
	fi

	sleep 5
done

exit;
PS
attenziona al percorso per smc (la prima variabile)

Avatar utente
Scialla
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: mer, 12 ago 2009 19:27
Messaggi: 17360
Località: Torino

Top

Oggetto del messaggio: Re: Ventole al massimo! (iMac early 2006)

Messaggio da Scialla »

Grazie per la chicca ma, come avrai potuto verificare in altri topic, con smc non risolvi il problema ma lo tamponi..
La regolazione manuale delle ventole risolve parzialmente il problema in quanto, senza il sensore, se la temperatura aumenterà, le ventole rimarranno costanti.
Nel caso specifico del tuo script CREDO che sfrutti gli altri sensori presenti per effettuare una sorta di regolazione ma, in ogni caso, a lungo andare non lo lascerei così, soprattutto in estate, e cercherei di montargli il suo sensore ;)
 Il futuro (Apple)? Nammerda!

Di un costoso Mac si può fare a meno, di macOS no... (cit. fax)