Un trackpad multitouch sur un MacBook Pro Santa Rosa

Pendant quelques jours, des articles de mon ancien blog. Ils sont dédiés à Apple et ce sont des astuces ou des bidouilles qui peuvent encore servir. Aujourd’hui, le montage d’un trackpad multitouch sur un MacBook Pro qui n’en était pas équipé à la base, et les modifications nécessaires. Pour faire simple : j’avais un MacBook Pro Santa Rosa (2007) sans le multitouch, il en est maintenant équipé.

Attention : il faut bien prendre en compte que la manipulation reste complexe, qu’elle nécessite des modifications matérielles et logicielles et qu’elle reste assez compliquée. Si vous n’êtes pas certains de vous, n’essayez pas chez vous, vous risquez de rendre votre MacBook Pro inutilisable.

Le multitouch est une technologie amusante, et plutôt pratique. Les premiers MacBook Pro n’en étaient pas équipés, mais les dernières générations, à base de Penryn, ont été équipées de cette technologie apparue sur le MacBook Air. Comme ces appareils utilisent le même châssis que les anciens modèles, il est tout à fait possible d’installer un trackpad multitouch sur les anciens modèles. Contrairement à ce que certains semblent croire, le multitouch n’est pas entièrement logiciel et il nécessite un trackpad adapté. Sur le MacBook Pro, le trackpad est lié à ce qu’on appelle le topcase, c’est-à-dire le dessus du boîtier interne. Pour passer au multitouch, j’ai donc dû acheter un topcase de MacBook Pro Penryn. C’est une pièce assez simple à trouver, même si le prix peut être élevé (par exemple chez PowerbookMedic ou chez iFixit). Une fois la pièce reçue, il faut l’installer. Je ne vais pas détailler le démontage du MacBook Pro, mais il faut savoir que c’est une opération complexe, à réserver aux utilisateurs avertis. De plus, le topcase est vendu sans clavier : il va donc falloir démonter le clavier de l’ancien topcase pour le placer sur le nouveau topcase. C’est une opération assez compliquée et qui va poser quelques problèmes, nous le verrons par la suite.

Pour le démontage, je ne peux que vous conseiller le guide de MacBidouille.

Une fois le topcase et le clavier installé, bonne nouvelle, le multitouch est pleinement fonctionnel, mais pas toutes la machine. En fait, un problème subsiste : le clavier qui voit certaines touches changer d’effet.

Un gros problème de clavier

Un problème est survenu, dont la résolution m’a pris un certain temps : le clavier. Faisons simple : les MacBook Pro, jusqu’au Penryn, ont les fonctions OSD suivantes : luminosité, son, verr. num., gestion de l’écran, gestion de l’éclairage du clavier. Sur les Penryn, les touches ont changé de fonction : luminosité, exposé, gestion de l’éclairage du clavier, iTunes, son. Petit problème, le contrôleur clavier est lié au trackpad et Mac OS X considère donc que si on a un trackpad multitouch, on a aussi un clavier de MacBook Penryn. Mais comme expliqué plus haut, j’ai gardé un clavier de MacBook Pro Santa Rosa. Au final, les fonctions des touches ne correspondaient pas aux fonctions dessinées sur ces dernières. Très vite énervant.

Comment corriger ça ? Après quelques recherches, j’ai finalement trouvé comment modifier les fonctions. Attention, la manipulation est potentiellement cause de plantages et je vous conseille de garder une partition Mac OS X bootables pour récupérer les fichiers.

Le fichier à modifier se situe dans le répertoire suivant : /Système/Bibliothèque/Extensions. Dans ce répertoire, il faut chercher le fichier AppleUSBTopCase.kext, cliquer droit sur ce dernier, Afficher le contenu du paquet, se déplacer dans /Contents/Plugin/, cliquer droit sur le fichier AppleUSBTCKeyEventDriver.kext et choisir Afficher le contenu du paquet, se déplacer dans /Contents/ et enfin éditer le fichier Info.plist. Ouf.

Ce fichier XML contient les données nécessaires aux claviers des PC portables Apple, il faut l’éditer avec précautions. Globalement, chaque clavier dispose d’un nom de code, en fonction de la machine, et existe en trois versions : ANSI, ISO et JIS. Deux noms de code seront nécessaires ici : GeyserIV, qui correspond au MacBook Pro Santa Rosa, et WellspringII, le MacBook Pro Penryn. Pour mon modèle (belge), c’est la version ISO qui est importante.

Les fonctions des touches sont encodées de la manière suivante : il faut rechercher le nom du clavier (par exemple WellspringIIKeyboardISO), ensuite la clé FnFunctionUsageMap. Comme son nom l’indique, cette dernière fait le lien entre la fonction et la touche.

On retrouve une chaîne de caractères qui comprend des associations : 0x0007003a,0x00ff0005,0x0007003b,0x00ff0004. Le premier ensemble de caractère désigne la touche Fn+F1, le second la fonction, ici Diminuer la luminosité. Le troisième ensemble représente Fn+F2, le quatrième code la fonction Augmenter la luminosité, etc. En modifiant la liste, on peut donc modifier les fonctions des touches pour qu’elles soient les mêmes que celles dessinées sur le clavier.

Voici la liste d’une partie des codes :

0x0007003a : Fn+F1
0x0007003b : Fn+F2
0x0007003c : Fn+F3
0x0007003d : Fn+F4
0x0007003e : Fn+F5
0x0007003f : Fn+F6
0x00070040 : Fn+F7
0x00070041 : Fn+F8
0x00070042 : Fn+F9
0x00070043 : Fn+F10
0x00070044 : Fn+F11
0x00070045 : Fn+F12

0x00ff0005 : Diminuer la luminosité
0x00ff0004 : Augmenter la luminosité
0x000c00e2 : Couper le son
0x000c00ea : Diminuer le son
0x000c00e9 : Augmenter le son
0x00070083 : Passer en verrouillage numérique
0x00ff0006 : Changer la gestion écran
0x00ff0007 : Couper l'éclairage clavier
0x00ff0009 : Diminuer la luminosité du clavier
0x00ff0008 : Augmenter la luminosité du clavier
0x000C00CD : Play
0x000C00B4 : Retour
0x000C00B3 : Avance

D’autres codes existent, notamment pour les fonctions d’Exposé.

Une fois la chaîne modifiée, il faut sauver le fichier en gardant les droits : attention, certains programmes ne les gardent pas. Comme Mac OS X garde certains fichiers en cache, il va falloir effectuer deux actions pour prendre en compte les modifications : la première consiste à effacer les caches systèmes (avec Onyx, par exemple), la seconde consiste à redémarrer deux fois. Pourquoi deux ? Aucune idée, mais en ne redémarrant qu’une fois, ça ne fonctionne pas.

Pour l’exemple, la chaîne que j’ai utilisée pour mon clavier :

0x0007003a,0x00ff0005,0x0007003b,0x00ff0004,0x0007003c,0x000c00e2,
0x0007003d,0x000c00ea,0x0007003e,0x000c00e9,0x0007003f,0x000C00CD,
0x00070040,0x00ff0006,0x00070041,0x00ff0007,0x00070042,0x00ff0009,
0x00070043,0x00ff0008,0x00070044,0x000C00B4,0x00070045,0x000C00B3

Pour ceux qui ont suivi et lu ma chaîne, ils remarqueront que j’ai supprimé le Verr. Num. et que je l’ai remplacé par Play, et que j’ai utilisé F11 et F12 (qui n’ont pas de fonctions par défaut) pour les touches de commande iTunes.

J’ai donc maintenant une machine unique : un MacBook Pro multitouch avec un clavier qui est équipé d’une touche avec une Pomme…