Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 neutral 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 sad ou bien tu ne comprends pas ce que fait celui là smile ??


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 sad

Hors ligne

#5 Le 15/11/2009, à 15:21

jlhal

Re : [Résolu]Régler vitesse du ventilateur en fonction de la température

LP640 a écrit :

A vrai dire je comprends très peu le shell encore sad

En fait, c'est du perl et ça ressemble (mais ressemble seulemnt neutral à 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é smile 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

LP640 a écrit :

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 wink 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

LP640 a écrit :

Tout marche très bien.

Merci à toi jlhal wink 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

NolanF a écrit :

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 cool;-)


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 wink
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