Brider un processeur

Bonjour à la zone :stuck_out_tongue:

J’ai une petite question (sisi, ca m’arrive).
Voilà, j’ai un portable équipé d’un centrino, la gestion de la fréquence marche très bien sous ma Ubuntu, mais parfois, le processeur passe en fréquence élevé alors que je suis sur batterie et que je me contente de regarder un film… Du coup, il se met à chauffer (normalement, mais surrement), et les ventillos ne tardent pas à se mettre en route, plombant lourdement mon autonomie…

D’où ma question, est-il possible de brider mon centrino quand je suis sur batterie sous linux à son niveau de fréquence minium ?

Normalement oui, car s’il est possible de faire varier sa fréquence, il doit aussi être possible de la bloquer… Des idées ? Une solution ?

Est-ce qu’il te fait la même chose sous Windows ?
Je sais pas trop sinon, c’est peut-être un truc gérable dans les options du noyau (qu’il faudrait donc recompiler), mais ça doit effectivement être possible. Sans aller aussi loin, tu devrais chercher dans la doc sur la gestion d’énergie si ça serait pas possible en modifiant un ou deux fichiers de conf.

T’as quelle version du kernel ? La technologie Centrino etant relativement recente, je ne pourrais que te conseiller de prendre le tout dernier kernel en 2.6 et le compiler manuellement en suivant http://tuxmobil.org/centrino.html par exemple.

J’ai un kernel 2.6.8.1 version Ubuntu Inside ^^

Plus sérieusement, je ne pense pas qu’il y ai quelque chose à modifier à mon kernel, car les modifications ont déjà était réaliser pour que la gestion de fréquence du centrino fonctionne.
En faite, je veux juste aller plus loin que le simple fait d’ajuster la fréquence de la bête suivant l’utilisation, je veux la brider en fréquence basse (un peu comme un ibook un mode économie si mes souvenir sont bon).

Vu que la fréquence est géré par diver programmes et services (comme powernowd ou cpufreq si je me souvient bien) à partir de l’acpi, j’imagine que l’on doit pouvoir trouver le moyen de modifier le fonctionnement d’un de ces truc de facon à ce qu’il se contente de foutre le CPU au minimum quel que soit sa charge…

Tu as surement speedfreq d’installé…

Alors quand tu es sur batterie tu passes root (sur ubuntu pas forcement de compte root) et tu tapes
speedfreq -P XXX

XXX nombre de méga hertz

Ou sinon tu fait speedfreq -h ca te donnera les policy que tu peux appliquer

Koubiak

Pour ce qui est du root sous ma ubuntu, il fait partie des premiers truc que j’ai modifier lors de l’install de cette merveilleuse distribution. Parce que bon, sudo, c’est bien jolie, mais bon… :P" B)

Sinon je n’ai pas speedfreq d’installer… J’ai un module chargé qui s’appelle cpu_freq, mais pas de speedfreq à bord.
Le problème c’est que je ne sais pas comment est gérée la fréquence de mon centrino sur ma ubuntu…

Bref, loin d’être un n00b, heu débutant sous linux, me voilà bien coincé…

[EDIT]Bon, après quelque recherche, speedfreq semble être le programme de mes rêves :stuck_out_tongue: . Par contre, je pense que je ne peux pas le compiler tel quel car il risquerait de rentrer en conflit avec l’actuel inconnue qui gère ma fréquence non ? D’où ma question, qui est cet inconnu ? [EDIT]

[EDIT2]D’après ces même recherches, j’ai confirmé mon idée que le scalling de la fréquence était gérée par powernowd sous ubuntu (je suis trop fort, je répond à mes question :stuck_out_tongue: ). Puis-je le remplacer sans probème par speedfreq ? J’en doute fort hélas… J’espère me tromper. :stuck_out_tongue: [EDIT2]

aptget speedfreq (ou speedfreqd)

Il dit quoi ?
Mais tu es sur que cpufreq fait pas deja ce que tu veux ?

Parce que moi j’utilisai ca je crois quand j’étais en 2.4 je crois je suis plus sur…

Koubiak

[code]PowerNow Daemon v0.90, © 2003-2004 John Clemens
Daemon to control the speed and voltage of cpus.

This is a simple client to the CPUFreq driver

Available Options:
       -h      Print this help message
       -d      Don’t detach from terminal (default is to
               detach and run in the background)
       -v      Increase output verbosity, can be used more than once.
       -q      Quiet mode, only emergency output.
       -n      Include 'nice’d processes in calculations
       -m #    Modes of operation, can be 0, 1, 2, or 3:
               0 = SINE, 1 = AGGRESSIVE (default),
               2 = PASSIVE, 3 = LEAPS
       -s #    Frequency step in kHz (default = 100000)
       -p #    Polling frequency in msecs (default = 1000)
       -u #    CPU usage upper limit percentage [0 … 100, default 80]
       -l #    CPU usage lower limit percentage [0 … 100, default 20][/code]
Voilà l’help de powernowd. Je ne vois pas d’option pour bloquer la fréquence comme dans speedfreq tel qu’il est décrit sur le site de ce soft. Maintenant, vu que les 2 ne sont que des clients de cpufreq, je pense finalement que je peux parfaitement désintaller powernowd et utiliser speedfreq non ? Bon, je sens que je vais faire une image disque de ma Ubuntu et que je vais tester tout ca. Au passage, je viens de voir que l’échelle des fréquences allait de 600 à 1600 pour mon centrino 1.5 Ghz :stuck_out_tongue: Y’a pas comme un problème là :stuck_out_tongue:

Ref :
Powernowd
Speedfreq

[EDIT]Au passage, qu’est ce donc :
-m # Modes of operation, can be 0, 1, 2, or 3:
0 = SINE, 1 = AGGRESSIVE (default),
2 = PASSIVE, 3 = LEAPS

Sinon pour aptget speedfreq, il n’est pas présent dans les dépots de la ubuntu, je vais devoir le compiler.
[/EDIT]

[quote name=‹ NeZetiC › date=’ 19 Mar 2005, 22:51’][code]
-s #    Frequency step in kHz (default = 100000)
       [/quote]

Et ca c’est qui ?

-c 600000

Te mettra ton proc’ à 600 Mhz :stuck_out_tongue:

Koubiak

Nop,

-s #    Frequency step in kHz (default = 100000)

Dans Frequency step, y’a step (étape en français). Il s’agit juste du réglage du pas. A 100000 par défault, la fréquence de mon proc évolue de 100 Mhz en 100 Mhz (sur ma machine, c de 200 Mhz en 200 Mhz que ca ca évolue d’ailleur)

Donc si je met 600000… Boom :P" :stuck_out_tongue:

[quote name=‹ koubiak › date=’ 20 Mar 2005, 00:42’]Et ca c’est qui ?

-c 600000

Te mettra ton proc’ à 600 Mhz :stuck_out_tongue:

Koubiak
[right][post=« 342839 »]<{POST_SNAPBACK}>[/post][/right][/quote]
cd /sys/devices/system/cpu/cpu0/cpufreq/
echo -n userspace > scaling_governor
echo -n 1000000 > scaling_setspeed

Ca devrait marcher c’est un truc un peu sale mais bon …

Koubiak

Heu, c’est bourrin, mais ca marche :stuck_out_tongue:

2 étapes en faite, j’arrete le demon powernowd (/etc/init.d/powernowd stop), puis je modifie le fichier scaling_setspeed comme indiqué en mettant 600000 en valeur.
Et là, magie, mon proc se bloque à 600 Mhz, soit la valeur minimum. Résultat : la machine ne rame pas du tout en utilisation bureautique, et le ventillo ne se fout plus en route B)

Reste plus cas voir le gain au niveau batterie en regardant mes films :stuck_out_tongue:

Merci pour m’avoir permi de trouver cette méthode, certe un brin brutal, mais au combien efficace :stuck_out_tongue:

[EDIT]Et pour remettre en place le controle, il me suffit juste de relancer le demon powernowd. Hop, un petit script pour automatiser tout ca et roule :stuck_out_tongue: [/EDIT]

ca doit etre reglable ca dans /etc/conf.d/powermachin

Tout doit pouvoir le modifier d’ailleurs je crois qu’il y a selon le truc qui tourne il m’est un mode special :stuck_out_tongue:

Sinon tu peux faire un script root

#!/bin/bash

/etc/init.d/powernan stop
Les deux trucs que je t’ai filé

#et voila

Koubiak

En effet, normalement, powernowd est capable de changer de mode tout seul quand je suis sur batterie… sauf que sur mon laptop, linux ne gère pas la batterie (smart battery). Je n’ai donc ni d’affichage du niveau, ni la possibilité de pre-règler powernowd à réagir à la mise sur batterie. D’où mon précedent problème : comment le faire à la main, sans pour autant totalement l’automatiser :stuck_out_tongue:

Pour l’instant je me satisfais de cette solution (j’ai juste crée un script pour simplifier la chose), en attendant la sortie des drivers du controleur de ma smart battery…

Bon, suite, et fin…

J’ai enfin réussi à compiler speedfreq :stuck_out_tongue:
Du coup, j’ai virer powernowd (en oubliant pas de purger les fichiers de conf), j’ai install speedfreq à la place, et… c’est surpuissant :stuck_out_tongue:

La gestion dynamique est bien mieux faite (genre, il ne me pas fou le proc à 100 % dès lors où je lui demande un brin de puissance), et comme tu me l’avais indiqué, il suffit en effet de taper une bête de commande pour le mettre à fréquence fixe.

Rah, j’aurais tatoné, mais qu’est-ce que j’aime les histoires qui finissent bien :stuck_out_tongue:

Petit up plutôt que de recréer un thread.

J’ai un portable Athlon M 2500 et pour des raisons d’économie de batterie (et de ventilo qui se met systematiquement en marche 1mn apres lancement de l’os même si je fais rien et s’arrete plus) j’aimerais bien pouvoir le downclocker aussi mais rien dans le bios pour…

A vrai dire j’apprecierais une solution extreme du genre downclock à 10Mhz : si j’installe msdos 6.22 dessus en dual boot ça sera AMPLEMENT suffisant 10mhz, et edit.com est un traitement de texte qui répond parfaitement à mes besoin pour la prise de note.

evidemment je doute qu’un downclock à 10Mhz soit possible, mais si je peux le mettre a un PR-rating de 1800 (FSB 266) pour peu que le traitement de texte soit pas trop gourmand et n’accede pas au disque dur (mise en veille du HD pendant utilisation, sauvegarde qu’au moment d’eteindre le PC… ouais faut avoir des couilles et confiance en son OS/traitement de texte) je vais peut être pouvoir prendre 2H de cour avec (actuellement la batterie est totalement vidée en 50mn en minimisant les accés disque et avec une mise en veille auto reglé au minimum), en évitant que le ventilo tourne.

Donc ya un moyen sous windows de baisser la fréquences par n’importe quel moyen que ce soit ?

Downclocker à 10 Mhz pour faire tourner Msdos et edit.com ? :stuck_out_tongue:
Heu… Oui, alors…

Bon, 55 min d’autonomie en traitement de texte, j’avoue, c’est, comment dire… faible :P"

Bon déjà, modifier la fréquence du proc sous Msdos 6.22, je doute que ce soit possible. :stuck_out_tongue:
Ensuite, pourquoi vouloir ce faire du mal ?

A la limite install une distrib minimaliste (genre une Crux 2.1), avec juste les packages de base (ce qui inclut VIM, éditeur par exellence), compile le noyau avec support de l’acpi, les packages qui vont bien comme cpufreq, qu’il suffit ensuite de configurer pour foutre le proc au minimum autorisée. A la limite tu auras peut etre 1 h 20 d’autonomie…

Sinon sous windows, il faut savoir que le proc ne représente qu’une petite partie de la consommation d’un portable, et que le retro-éclairage de l’écran et les disques dur (qui ne s’arreteront jamais totalement sous windows, ce monsieur ayant toujours besoin de faire des accès pour X raisons) sont en majeur partie responsable de l’autonomie.

En résumé, même si tu parviens à baisser la fréquence sous windows, je ne pense pas que le gain sera exeptionnel (au mieux 10 min).

Pour l’accé disque je t’inquiete pas je sais les faire cesser même sous windows (un windows non-XP bien configuré ça fait pas chier le disque… ménage dans msconfig et notepad.exe comme traitement de texte) et mes 50mn s’entendent “sans que le disque dur bouge entre 3mn apres la fin du boot et le moment ou il a plus de batterie” . Le retro-eclairage était totalement coupé aussi.

le probleme n’est pas le processeur en lui même mais le fait qu’il chauffe tant que le ventilo se mette en marche quelques minutes apres le lancement et ne se coupe jamais plus. Et effectivement l’air expulsé est TRES TRES chaud (jamais vu un portable chauffer autant, ceci dit j’en ai pas eu beaucoup et c’est mon premier portable AMD). Au début je pensais que c’était un probleme de crasse dans le dedans mais non, le dedans il est tout propre. Donc si je me demandait si yavait pas un moyen de downclocker, c’est dans l’espoir qu’il puisse se refroidir sinon passivement (à 10mhz quand même ça devrait… même si c’est bien evidemment techniquement impossible, enfin je suppose) au moins avec une RPM plus faible (genre si je pouvais mettre le FSB à 266 au lieu de 333 ça serait bien…)

ce qui serait encore mieux bien sur ça serait de pouvoir toucher le coef multiplicateur, là aussi je pense qu’il devait y avoir moyen en bidouillant un peu (on peut relier les ponts au crayon sur un processeur de portable ?)

le probleme c’est que quand bien même j’aurais unlocké le coef multiplicateur je saurais pas le modifier, puisque le bios est tres limité (vraiment tres limité… comparé a la profusion d’options du bios de mon A7N8X par exemple… on peut même pas desactiver la carte son ou autres trucs basique du genre…) je vois pas trop comment faire. (même pour une simple modif du FSB)