dimanche 1 novembre 2009

Coolbook, c'est magique ?

Voilà maintenant presque deux ans que j'utilise un MacBook Air (première version "originale"), et j'en suis très satisfait. Utilisation intensive (Matlab, compilations de programmes, LaTeX, OpenOffice, ...), mises à jour régulières, passage à Snow Leopard sans soucis... je le trimbale partout, comme un vulgaire bouquin à la main, bref, que du bonheur et toujours la même remarque étonnée des collègues: « quoi !? c'est ton ordinateur principal !? »...

Écran 24" LED
Tout allait bien jusqu'au jour où j'ai fait l'acquisition du superbe moniteur Apple 24" LED Cinema Display pour agrémenter mon poste fixe. C'est un complément vraiment parfait pour le MBA, comme une station d'accueil: alimentation intégrée (plus besoin de transporter l'adaptateur secteur) et hub de 3 ports USB permettant de bénéficier d'une connexion Ethernet permanente, d'un clavier et d'une souris externe et d'avoir encore un port USB alimenté de libre... tout ça ne manque pas en voyage, mais c'était le seul défaut du MBA utilisé en poste fixe. En bonus, j'ai gagné des hauts-parleurs et une caméra iSight dignes de ce nom, miraculeusement gérée via le port USB ! Seul hic, la première génération des MBA n'a pas le fameux Mini DisplayPort et Apple ne vend pas d'adaptateur (ils ne proposent que l'autre sens DisplayPort -> DVI); le vendeur m'avait dit carrément d'oublier cet écran, mais après quelques recherches sur le Net, j'ai trouvé et acheté le seul adaptateur DVI -> DisplayPort du marché: Atlona AT-DP200 (179 USD)... qui fonctionne très bien (reçu en 48h des USA via UPS). Au passage, bravo à MacOSX pour sa gestion des écrans multiples: après une utilisation du MBA seul (avec l'écran intégré) et sa mise en veille, la connexion au 24" (USB, DisplayPort et en dernier l'alimentation) le fait s'allumer tout seul et apparaissent miraculeusement toutes les applications en cours à une place pas trop débile, alors que l'écran est presque 2 fois plus grand... Idem dans le sens inverse.

kernel_task qui s'emballe
Mais l'objet de cet article concerne les soucis que j'ai eu ensuite: tous les jours, en général après 2 ou 3 heures d'utilisation, le MacBook devenait quasi inutilisable suite à un kernel_task prenant 180% de la CPU! Je pouvais surveiller ça avec le Moniteur d'Activité mais aussi l'excellent programme MenuMeters. Les deux seuls remèdes efficaces pour sortir de ce quasi blocage de la machine: soit déconnecter l'écran (...), soit mettre le MBA en veille (alt-cmd-EJECT) puis le rallumer... mais pour ne gagner que quelques minutes d'utilisation normale avant un nouveau "plantage". Cet emballement du système était souvent associé à une augmentation de température et un ventilateur tournant à sa vitesse maximale (6200 tr/mn).

J'ai parcouru beaucoup de forums sur le sujet, et j'ai découvert que, malheureusement, ce problème est bien connu des utilisateurs de MacBook... certains ont même des “kernel panic” (plantage complet). Le problème n'existe pas seulement avec l'écran 24", mais aussi avec des logiciels gourmands en CPU (par exemple les vidéos), l'adaptateur USB-Ethernet ou une température ambiante trop élevée, ... des utilisateurs ont été jusqu'à incriminer un problème de construction et ont renvoyé leur MacBook en réparation chez Apple, sans résultat. Après moult lectures, l'interprétation que je trouve la plus raisonnable est que le problème soit lié à la gestion des périphériques externes qui demanderaient trop de ressources au système... En effet, pour ma part, je n'ai jamais rencontré ce problème avant l'utilisation de l'écran 24" et son hub USB, et encore maintenant, jamais de problème avec le MBA seul. La gestion des périphériques externes semble donc très gourmande en CPU, ce qui fait chauffer le processeur; le kernel_task cherche alors à optimiser les tâches pour abaisser cette température, ce qui déclenche temporairement un pic d'activité et fait aussi monter la température! Si la température redescend, tout revient à la normale, mais si jamais la température maximale est atteinte, le ventilateur à fond, plus moyen de redescendre...

Une fois le problème cerné, quelle solution ?? Et bien après avoir essayé smcFanControl (efficace mais qui ne faisait que retarder le problème), il semble que la seule et unique solution à ce jour soit l'utilisation de CoolBook développé par Magnus Lundholm (je recommande la lecture du très bon article de Wikipedia, ou encore ce forum), au prix de 10 USD (8.50 € TTC pour la France), somme largement justifiée compte tenu des résultats. Ce programme permet de faire ce qui est bien connu des “geeks” du monde Windows: abaisser la tension d'alimentation maximale du processeur afin d'en réduire la consommation, mais sans perte de performances. Cela peut sembler osé, mais ce n'est en fait qu'un réglage tout à fait “naturel” et sans risque. Baisser la tension diminue au carré la puissance consommée ce qui a 2 effets directs: baisser la température (ce qui résout indirectement notre problème) et la consommation (ce qui augmente donc l'autonomie du MacBook sur batterie). Attention toutefois: suivre scrupuleusement les recommandations (pas extrêmement claires dans la doc) pour choisir et tester les couples fréquences/tensions optimaux; une tension trop faible à fréquence élevée peut entraîner une instabilité du système et un plantage général. En ce qui me concerne, j'ai d'abord testé 0.975 V puis finalement opté pour la tension minimale (0.9V) pour toutes les fréquences (600 MHz à 1.6 GHz). Depuis, plus aucun soucis, et le gain en autonomie batterie est assez sensible (autour d'une demi-heure)!

Un petit programme qui résout un sérieux problème d'utilisation de votre MacBook, et se permet de le rendre encore plus performant, c'est presque magique! À l'avenir on pourrait imaginer qu'Apple intègre ce type d'optimisation dans un firmware update... mais comme les réglages dépendent apparemment de la disparité de fabrication des processeurs (c'est pourquoi ils auraient fixé la tension maximale avec une bonne marge de sécurité), c'est tout de même assez délicat à faire...