La gestion du trackpad et du clavier en SPI dans les Mac

Récemment je suis tombé sur une vidéo intéressante : un réparateur de Mac explique que Linux supporte mieux le matériel Apple que macOS. Ce qui est intéressant, ce n’est pas son problème (ni sa conclusion, qui me semble fausse), mais le côté technique.

Dans les Mac depuis ~2013, le clavier et le trackpad ne se connectent plus en USB comme dans les modèles précédents, mais en SPI. Il s’agit d’un bus série qui a l’avantage de fonctionner par interruption, ce qui réduit la consommation. En SPI, quand vous bougez le trackpad, une interruption est envoyée au système, qui va lire le mouvement. En USB, le système doit allez lire périodiquement s’il y a un mouvement (même s’il n’y en a pas) à une fréquence assez élevée (125 à 1 000 Hz). Au niveau de la consommation, la première solution a évidemment l’avantage. Le SPI est d’ailleurs de plus en plus utilisé, même dans les PC Windows : l’ancien protocole PS/2 fonctionne aussi par interruption mais n’est pas adapté aux trackpads modernes. Dans un PC portable moderne, vous avez d’ailleurs généralement le choix entre un mode PS/2 (sans multitouch) et un mode SPI qui nécessite des pilotes.

SPI

J’arrive à la problématique de la vidéo. Le MacBook Air endommagé qu’il essaye de réparer a ses lignes SPI coupées (ou endommagées) et donc le trackpad ne fonctionne pas sous macOS. Par contre, assez étonnamment, il fonctionne dans l’EFI (et sous Linux), parce qu’en réalité le clavier et le trackpad démarrent en mode USB pour des raisons de compatibilité, et macOS – au démarrage – passe ensuite les deux en mode SPI. En forçant le mode USB en permanence, Louis Rossmann – très doué avec un fer à souder – espérait faire reconnaître le trackpad par macOS, ce qui ne fonctionne pas (je suppose une exclusion dans les pilotes). Alors que sous Linux, ça passe sans soucis (et a priori sous Windows). Sa conclusion un peu idiote à mon avis, c’est que Linux est mieux sur du matériel Apple que macOS.

A mon sens, la conclusion manque de recul pour une bonne raison : passer en SPI a des avantages sur l’autonomie (la raison logique du choix) et macOS suppose que le trackpad d’un MacBook Air doit fonctionner en SPI. Le fait que macOS n’essaye pas de charger des pilotes USB pour un périphérique qui ne doit pas fonctionner en USB me semble assez logique. Surtout qu’en pratique, le cas de figure ou le SPI ne fonctionne pas et ou l’USB fonctionne n’existe a priori pas sans modifications matérielles importantes : ce n’est pas un cas réellement possible en cas de souci matériel. Donc tirer une conclusion de ce type sur un cas précis (et irréaliste) me semble de très mauvaise foi.

Reste que la vidéo est intéressante sur la façon de faire et qu’elle montre bien certains avantages liés à un « vrai » Mac.