#1 Le 14/11/2009, à 13:39
- LP640
[Résolu]Régler vitesse du ventilateur en fonction de la température
Bonjour à tous,
Depuis quelques temps, le ventilateur de ma radeon hd4850 fait un bruit épouvantable le temps de se stabiliser, pour y remédier sous windows, j'ai installé rivatuner et j'ai fixé des vitesses de rotation du ventilateur pour certaines températures. Je voudrais faire la même chose sous karmic, et en cherchant dans la documentation, je suis tombé sur ce script :
#!/usr/bin/perl;
while(1){
# on récupère la température de la carte
open TEMPE, "aticonfig --adapter=0 --od-gettemperature|";
my $temperature = 50;
while (my $atitool =<TEMPE>) {
#expression régulière pour ne garder que le chiffre de la température (exemple 50.25)
if ($atitool =~ /\- (.*) C/is) {
$temperature = $1;
close (TEMPE);
}
}
#on effectue des comparaison de la temperature récupéré pour executer ou non une commande réglage du ventilateur...
if ($temperature > '52.00') {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 20"');
}
if (($temperature > '51.40')&&($temperature < '52.00')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 6"');
}
if (($temperature > '50.40')&&($temperature < '51.40')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 4"');
}
if (($temperature > '50.01')&&($temperature < '50.40')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 2"');
}
if (($temperature > '10.00')&&($temperature < '50.01')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 1"');
}
sleep 15;
#on fait une pause de 15s pour que le ventilo ne fasse pas du "yoyo" en permanance...
}
Le problème c'est que je ne comprends rien Si quelqu'un pouvait me mettre un exemple pour une température de 0 à 65° une rotation du ventilo à 40%, ça m'aiderait beaucoup.
Merci d'avance
Dernière modification par LP640 (Le 17/11/2009, à 21:33)
Hors ligne
#2 Le 15/11/2009, à 15:03
- LP640
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Personne pour me venir en aide ?
Hors ligne
#3 Le 15/11/2009, à 15:12
- jlhal
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Salut !
Tu ne connais pas le langage shell ou bien tu ne comprends pas ce que fait celui là
??
ASUS M4N98TD EVO, Xubuntu 11.10 X64 (3.0.0.17), AMD Phenom II X6 1055T, GigaByte GTX590 3Go DDR5
ASUS Sabertooth 990FX, Windows 7 Intégral X64 SP1, AMD FX 8150 , Gainward 560ti Phantom2 2Go + GigaByte GTX460SO 1Go
Hors ligne
#4 Le 15/11/2009, à 15:17
- LP640
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
A vrai dire je comprends très peu le shell encore
Hors ligne
#5 Le 15/11/2009, à 15:21
- jlhal
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
A vrai dire je comprends très peu le shell encore
En fait, c'est du perl et ça ressemble (mais ressemble seulemnt à du javascript
Je te poste une version commentée...
#!/usr/bin/perl;
# on vient d'indiquer au shell qu'on execute du perl...
# tant que (vrai) faire
while(1)
# commande pour récupérer la température de la carte
open TEMPE, "aticonfig --adapter=0 --od-gettemperature|";
# on définit une variable pour la température à relever
my $temperature = 50;
# on execute la commande de récupération et on met le résultat dans la variable atitool
while (my $atitool =<TEMPE>)
{
# expression régulière pour ne garder que le chiffre de la température (exemple 50.25)
if ($atitool =~ /\- (.*) C/is)
{
$temperature = $1;
close (TEMPE);
}
}
# on effectue des comparaisons de la température récupérée
# pour éxécuter ou non une commande réglage du ventilateur...
# comparaison simple: si a est strictement supérieur à b
# alors on éxécute une commande système pour commander le ventilo...
if ($temperature > '52.00') {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 20"');
}
# Expression logique ET : si (a est strictement supérieur à b) ET (a est strictement inférieur à c)
#
if (($temperature > '51.40') && ($temperature < '52.00')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 6"');
}
# etc...
if (($temperature > '50.40') && ($temperature < '51.40')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 4"');
}
if (($temperature > '50.01') && ($temperature < '50.40')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 2"');
}
if (($temperature > '10.00') && ($temperature < '50.01')) {
system ('nohup aticonfig --pplib-cmd "set fanspeed 0 1"');
}
# on fait une pause de 15s pour que le ventilo ne fasse pas du "yoyo" en permanance...
sleep 15;
# on reboucle éternellement sur le 'while'
}
# fin du bloc 'while'
Dernière modification par jlhal (Le 15/11/2009, à 15:44)
ASUS M4N98TD EVO, Xubuntu 11.10 X64 (3.0.0.17), AMD Phenom II X6 1055T, GigaByte GTX590 3Go DDR5
ASUS Sabertooth 990FX, Windows 7 Intégral X64 SP1, AMD FX 8150 , Gainward 560ti Phantom2 2Go + GigaByte GTX460SO 1Go
Hors ligne
#6 Le 15/11/2009, à 16:51
- LP640
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Merci beaucoup jihal, c'est très bien expliqué Je m'y attelle ce soir et je reviendrai pour dire ce qu'il en est.
Merci encore !
Hors ligne
#7 Le 15/11/2009, à 17:56
- LP640
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Me revoilà, en fait j'ai eu le temps de le faire.
Donc j'ai édité le fichier ati.pl que j'ai créé en mettant mes vitesses du ventilo souhaitées par rapport à la température. Une fois fini j'ai rendu mon fichier éxecutable => chmod +x ati.pl
Ensuite j'ai lancé le script => perl ati.pl, là j'ai entendu mon ventilo se mettre à la bonne vitesse, et dans le terminal j'ai une ligne qui se met toute les 15s "nohup: les entrées sont ignorées et la sortie est ajoutée à `nohup.out'" et j'ai un fichier nohup.out qui s'est créé et qui se rempli au fur et mesure de "PPLIB command execution is Successful!". Est ce normal?
Autre question, comment faire pour que mon fichier ati.pl s'éxecute à chaque démarrage ?
Merci ...
Hors ligne
#8 Le 15/11/2009, à 19:01
- jlhal
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Me revoilà, en fait j'ai eu le temps de le faire.
Donc j'ai édité le fichier ati.pl que j'ai créé en mettant mes vitesses du ventilo souhaitées par rapport à la température. Une fois fini j'ai rendu mon fichier éxecutable => chmod +x ati.pl
Ensuite j'ai lancé le script => perl ati.pl, là j'ai entendu mon ventilo se mettre à la bonne vitesse, et dans le terminal j'ai une ligne qui se met toute les 15s "nohup: les entrées sont ignorées et la sortie est ajoutée à `nohup.out'" et j'ai un fichier nohup.out qui s'est créé et qui se rempli au fur et mesure de "PPLIB command execution is Successful!". Est ce normal?
Autre question, comment faire pour que mon fichier ati.pl s'éxecute à chaque démarrage ?
Merci ...
Pour la sortie (sans les " ' " ): 'perl ati.pl >/dev/null'
Ou encore , si tu ne veux pas voir les messages d'erreur : 'perl ati.pl >/dev/null 2>&1'
Par la 'crontab' , on peut executer à intervalles réguliers un certain nombre de programmes/scripts .
Je ne l'ai pas fait sous Ubuntu mais essaie (sous root) : 'crontab -l' et tu verras le contenu de cette table.
Chezrche dans les aides comment ça s'utilise...
ASUS M4N98TD EVO, Xubuntu 11.10 X64 (3.0.0.17), AMD Phenom II X6 1055T, GigaByte GTX590 3Go DDR5
ASUS Sabertooth 990FX, Windows 7 Intégral X64 SP1, AMD FX 8150 , Gainward 560ti Phantom2 2Go + GigaByte GTX460SO 1Go
Hors ligne
#9 Le 17/11/2009, à 19:54
- LP640
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Tout marche très bien.
Merci à toi jlhal très sympa.
Hors ligne
#10 Le 17/11/2009, à 20:30
- jlhal
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Tout marche très bien.
Merci à toi jlhal
très sympa.
De rien... Signale ton pb comme résolu
A+ peut-être pour un autre pb...
ASUS M4N98TD EVO, Xubuntu 11.10 X64 (3.0.0.17), AMD Phenom II X6 1055T, GigaByte GTX590 3Go DDR5
ASUS Sabertooth 990FX, Windows 7 Intégral X64 SP1, AMD FX 8150 , Gainward 560ti Phantom2 2Go + GigaByte GTX460SO 1Go
Hors ligne
#11 Le 03/12/2009, à 18:33
- NolanF
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Bonjour.
J'ai un Toshiba A100 768 et mon ventilateur tourne Non stop.
Je voudrais récupérer ce fichier mais je ne sais pas comment l'adapter a mon cas.
Quelqu'un pourrait m'aider ? C'est vraiment insupportable ce ventilateur qui tourne sans cesse. Je n'avais pas ce problème sous Jaunty...
Hors ligne
#12 Le 03/12/2009, à 19:38
- jlhal
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Bonjour.
J'ai un Toshiba A100 768 et mon ventilateur tourne Non stop.
Je voudrais récupérer ce fichier mais je ne sais pas comment l'adapter a mon cas.
Quelqu'un pourrait m'aider ? C'est vraiment insupportable ce ventilateur qui tourne sans cesse. Je n'avais pas ce problème sous Jaunty...
Salut !
Ce sujet ayant été marqué comme résolu , pourrais-tu en ouvrir un nouveau et je verrai si on peut l' adapter à ton cas ;-)
ASUS M4N98TD EVO, Xubuntu 11.10 X64 (3.0.0.17), AMD Phenom II X6 1055T, GigaByte GTX590 3Go DDR5
ASUS Sabertooth 990FX, Windows 7 Intégral X64 SP1, AMD FX 8150 , Gainward 560ti Phantom2 2Go + GigaByte GTX460SO 1Go
Hors ligne
#13 Le 03/12/2009, à 23:10
- NolanF
Re : [Résolu]Régler vitesse du ventilateur en fonction de la température
Ca roule
Je fais ça de suite.
http://forum.ubuntu-fr.org/viewtopic.php?pid=3114972#p3114972
Dernière modification par NolanF (Le 03/12/2009, à 23:14)
Hors ligne