VoodooPower ou le Speedstep pour OSX86

En raison de l'absence de manuel utilisateur pour VoodooPower cet article est voué a évoluer. Cependant toutes les informations délivrées ici ont été vérifiées et appliquées. MAJ : 04/03/09

Introduction :


Grâce au kext VoodooPower, réalisé par Superhai, il est possible d'activer le Speedstep sous OS X. Le Speedstep est une technologie que permet de moduler la fréquence du processeur en fonction de son utilisation.( Applications Intel SpeedStep et AMD Cool&Quiet ) Le but de cette technologie Intel est d'économiser de l'énergie et de réduire la température du processeur. Vous l'aurez compris cette fonction est particulièrement intéressante pour les utilisateurs d'ordinateur portable :

Meilleure autonomie de la batterie
Fonctionnement plus silencieux grâce à la diminution de la température du processeur, et de la vitesse de rotation de son ventilateur.

Bien entendu le Speedstep fonctionne aussi sur les ordinateurs de bureau qui sont équipés de processeurs supportant cette technologie.

Mais ce n'est pas tout, VoodooPower est pourvue d'une interface graphique ! Ce logiciel nommé Genric CPU Power Management Control va vous permettre de visualiser et de contrôler VoodooPower. Attention : cette application n'est plus maintenue et donc mise à jour. Elle peut toujours être utilisé pour visualiser le comportement de VoodooPower, mais les réglages ne fonctionne plus avec VoodooPower.kext. En attendant une nouvelle interface graphique Superhai préconise l'utilisation de l'utilitaire de ligne de commandes Vpower.

Genric CPU Power Management Control

Par défaut l'extension du noyau se débrouille toute seule (Auto Throttle), mais il est possible de configurer ce kext pour répondre à vos besoins. Dans cet exemple, je vais vous montrer comment paramétrer le comportement de VoodooPower sur un Netbook (Atom N270). L'idée étant d'optimiser les performances en mode "secteur" et d'optimiser l'autonomie en mode "batterie". Veuillez aussi consulter l'article Indicateur de batterie , ces deux extensions sont complémentaires.


Dans la pratique :


Le processeur Intel ATOM N270 à une fréquence maximale de 1,6 Ghz et une fréquence minimale de 800 Mhz.
Son bus est cadencé à 133 Mhz, la vitesse du processeur est fixée par un coefficient multiplicateur variable (ratio) qui va permettre l'accélération ou la diminution de la fréquence de fonctionnement du processeur. ex : 133 x 6 = 800 Mhz et 133 x 12 = 1600 Mhz. Le ratio du N270 est variable de 6 à 12, ce qui nous fait donc 7 fréquences de fonctionnement possible. Ces fréquences sont appelées "P-State", et en fonction de des P-states la consomation electrique du processeur varie.

En résumé voici les P-States de l'Atom :

P-States Fréquences en Mhz
P-State 0
800
P-State 1
933
P-State 2
1066
P-State 3
1199
P-State 4
1333
P-State 5
1466
P-State 6
1600


Pour obtenir le nombre de P-State de votre processeur vous pouvez utiliser l'utilitaire de ligne de commande Vpower, ou encore observer dans Genric CPU Power Management Control la vitesse minimale et maximale de votre processeur. Puis grâce à l'application CPU-X de Netkas, vous pourrez obtenir la fréquence du bus de votre CPU.

Édition de la plist (property list) de VoodooPower.kext :


Afin d'éditer ce fichier en toute simplicité veuillez utiliser Property List Editor (disponible dans Xcode) ou n'importe quel autre éditeur de plist pour OS X. (Il est également possible d'éditer les plist via un éditeur de texte) Voici donc une capture d'écran de cette fameuse plist :




Le fichier nous propose des réglages pour trois cas de figure différents :

OnAC = alimentation sur le secteur.
OnBattery = alimentation sur batterie.
OnBatteryLow = alimentation sur batterie faible. (5%)

Comme vous pouvez le voir dans chacun de ces cas de figure il est possible d'éditer un certain nombre de paramètres.

Ces differents paramètres correspondent aux fonctions suivantes :

CStateControl = Cette fonction n'est pas encore implémentée ! Gestion de la mise en veille du processeur, ou d'un de ces cœurs, quand il ne travaille pas.
Hysteresis = Réglage de la sensibilité du Theshold (seuil). Si la charge du CPU varie au dessu de la valeur de ce paramètre, le CPU change de Pstate.
PStateLimitHigh = représente la fréquence processeur maximale admise par le driver.
PStateLimitLow = représente la fréquence processeur minimale admise par le driver.
TstateControl = Contrôle du changement de la fréquence du processeur (PState = Power State). Attention : il ne pas utiliser cette fonction avec les processeurs récents (Atom/Core/Celeron). La fréquence du processeur deviens trop faible et çelà peut engendrer des bugs et ralentissements du système. Ce réglage va disparaitre dans les prochaines versions, il étais destiné au ancien processeurs de type P4/m ne possédant pas la technologie Speedsted.
Threshold = c'est la sensibilité du driver pour passer d'un Pstate à l'autre en fonction de la charge de travail du processeur.

La configuration des PStateLimitHigh et Low est assez simple. Il suffit d'indiquer au driver la marge de fréquence dans laquelle vous souhaitez travailler. Par exemple dans le mode OnAC, j'ai voulu optimiser les performances de l'Atom en limitant sa fréquence minimale. Et inversement dans le mode batterie pour accroitre l'autonomie.

PStateLimitHigh Frequence en Mhz
PStateLimitLow
Frequence en Mhz
Pstate 0
1600 Pstate 0
800
Pstate 1
1466 Pstate 1
933
Pstate 2
1333 Pstate 2
1066
Pstate 3
1199
Pstate 3
1199
Pstate 4
1066 Pstate 4
1333
Pstate 5
933 Pstate 5
1466
Pstate 6
800 Pstate 6
1600


Donc en résumé et en clair :


- En mode alimentation sur secteur le processeur aura une fréquence maximale de 1600 Mhz et une fréquence minimale de 1199 Mhz avec une sensibilité élevée à la charge de travail.

- En mode alimentation sur batterie le processeur aura une fréquence maximale de 1199 Mhz et une fréquence minimale de 800 Mhz avec une faible sensibilité à la charge de travail. Et en cas d'inactivité le processeur verra son alimentation réduite au minimum (veille du processeur ou d'un de ces cœurs).


http://www.superhai.com/darwin.htmlhttp://netkas.org/
Mise à jour le Jeudi, 05 Mars 2009 16:17  

Commentaires 

 
+1 #1 07-03-2009 15:32
Salut tout le monde.

Déjà, merci beaucoup pour votre super site, j'en apprend tous les jours grâce à ça !

Voilà, j'ai un Acer Aspire 3680, Mac OS 10.5.6 installé dessus.
Mais impossible de faire fonctionne le speedstep :(
Peut importe le kext. J'ai un Intel Celeron M

Voodoo n'est pas compatible avec mon processeur, et quand j'essaye de mettre l'autre (IntelEnchancer SpeedStep), pas moyen de le faire fonctionner (en kext load, impossible à charger, et en installation, il me dit qu'il ne se charge pas quand je boote en verbose)

Merci d'avance à vous.

@++ !
Citer
 
 
0 #2 Trauma 07-03-2009 16:47
@ DC.Marxxx :

Je ne pense pas que ton processeur support le speedstep. Je crois que seul les celeron D (Dual core) support le speedstep, les celeron M ne support pas cette technologie.

en.wikipedia.org/wiki/Celeron

Merci, pour ton commentaire sur le site.

A+
Citer
 
 
0 #3 25-10-2009 01:34
Merci pour cet article qui explique un peu mieux le mode d'emploi de ce kext. Ca donne quoi les modifs dont tu parles dans la plist ? Je suis intéressé car j'ai moi aussi un Wind ! Seconde question : est-ce que le mode Onlowbat permet de mettre en veille le Wind ? Le mieux s'éteind quand la batterie meurt, il ne se met pas en veille - alors qu'il supporte l'hibernation, c'est dommage !
Citer