TRIM sur Yosemite : tout ce qu'il faut savoir

Soumis par Stéphane Moussie le lun, 20/10/2014 - 13:30

Maintenant qu'OS X Yosemite est disponible en version finale, on peut faire le point sur le fonctionnement de la commande TRIM avec le système. Pour mémoire, cette commande permet d’éviter une dégradation des performances du SSD et elle limite aussi en partie son usure (les détails dans notre dossier).

L'activation du TRIM compliquée par une nouvelle mesure de sécurité

Sur les Mac, le TRIM n’est activé par défaut que sur les SSD intégrés. Si vous avez remplacé le support de stockage de votre machine par un SSD tiers, c’est à vous d’activer cette commande. L'opération était très simple jusqu'à Mavericks — il suffisait de cliquer sur le gros bouton du logiciel spécialisé TRIM Enabler —, mais Yosemite a compliqué cela.

Apple a introduit une nouvelle mesure de sécurité baptisée kext signing. Un kext est une extension du kernel, le noyau du système. Si Yosemite repère qu’une extension du kernel a été modifiée, il ne la chargera pas par précaution. Or, TRIM Enabler altère justement une de ces extensions, et se retrouve donc bloqué par le système.

Au cours du développement du système, il subsistait un petit doute sur la présence du kext signing dans la version finale de Yosemite — Apple s'était montrée vague sur le sujet. Maintenant qu'OS X 10.10 est disponible en version stable, on peut juger sur pièces que le kext signing est toujours de la partie.

Comment activer le TRIM

Le seul moyen d'activer la commande TRIM sur Yosemite, c'est de désactiver le contrôle d'intégrité des extensions. Pour cela, le plus simple est d'utiliser TRIM Enabler (version 3.3). Son développeur l'a mis à jour exprès pour ce cas de figure. En premier lieu, l'utilitaire va désactiver le kext signing. Après un redémarrage de l'ordinateur, on pourra ensuite activer le TRIM toujours à partir du même logiciel.

TRIM Enabler permet aussi de faire marche arrière : on peut désactiver le TRIM et restaurer le contrôle d'intégrité des extensions au besoin.

Oskar Groth, le développeur de l'utilitaire, reconnait que désactiver une mesure de sécurité pour faire fonctionner le TRIM est loin d'être idéal, mais il explique ne pas avoir trouvé un autre moyen et rejette la faute sur Apple. « Apple garde le pilote AHCI privé, rendant impossible pour tout le monde, même les gros fabricants, de créer un pilote pour leur SSD », souligne-t-il.

Les fonctions de base de TRIM Enabler sont gratuites. En payant 10 $, on débloque des fonctions supplémentaires (benchmark, divers tweaks et moniteur SMART avancé). Il existe un second logiciel qui sert à activer le TRIM sur Mac, Chameleon SSD optimizer. Il est gratuit (les dons sont acceptés) et compatible avec Yosemite.

En cas de problème

Il est primordial de désactiver le kext signing avant de démarrer un ordinateur où le TRIM a été activé sur un SSD tiers. Autrement, Yosemite ne va pas charger le pilote qui a été modifié et la machine va rester bloquée sur un écran gris.

Le réglage du contrôle des extensions est stocké dans la NVRAM/PRAM, une petite quantité de mémoire qui est chargée au démarrage de la machine. Si vous devez réinitialiser la NVRAM/PRAM pour quelque raison que ce soit, désactivez d'abord le TRIM, car la réinitialisation de la mémoire va réactiver le kext signing.

Le panneau « stationnement interdit » qui reste à l'écran. Photo atrashids

Si vous êtes confronté au problème de l'écran gris au démarrage, Oskar Groth donne la marche à suivre pour le résoudre :

  1. 1. Démarrer sur la partition de restauration d'OS X en pressant les touches Commande + R
  2. 2. Ouvrez le Terminal
  3. 3. Tapez cette commande : nvram boot-args. Si la réponse est « kext-dev-mode=1 », vous pouvez sauter à l'étape 6, sinon continuez dans l'ordre
  4. 4. Tapez cette commande : nvram boot-args=kext-dev-mode=1
  5. 5. Redémarrez sur la partition de restauration encore une fois
  6. 6. Ouvrez le Terminal et tapez ces commandes en remplaçant "XXX" par le nom de votre partition (les guillemets doivent être présents) :
    • cd "/Volumes/XXX"
    • touch System/Library/Extensions
    • kextcache -prelinked-kernel System/Library/Caches/com.apple.kext.caches/Startup/kernelcache -K System/Library/Kernels/kernel System/Library/Extensions
  7. 7. Attendez jusqu'à ce que l'opération se termine (5 à 10 minutes) et redémarrez.

Si vous avez des questions ou des remarques, le sujet est largement débattu sur les forums.