Un pilote open source pour macOS et les cartes Ethernet 10 Gb/s de Realtek

Je parlais hier des cartes Ethernet basées sur une puce Realtek, en expliquant que les modèles 2,5 Gb/s et 10 Gb/s ne fonctionnent pas nativement sous macOS, même si Apple a intégré les pilotes. Les Mac mini M6 ont une puce RTL8125 (Ethernet 2,5 Gb/s) ou RTL8127 (10 Gb/s, en option) mais le pilote d’Apple ne charge pas avec mes cartes PCI-Express en Thunderbolt. Mais il y a une solution : un dext open source.

Apple a visiblement déployé un kext (une extension du noyau), mais il existe donc un dext (un pilote qui passe par DriverKit). Il est open source, basé sur d’anciens travaux et sur les pilotes de Realtek. Il a la bonne idée d’être signé et notarisé, donc il suffit de télécharger la release, de lancer l’installeur et d’accepter de charger le pilote (dans Réglages Système -> Général -> Ouverture et extensions). L’application elle-même va vous permettre de l’activer, il se désactive au même endroit, en cherchant le nom de l’application (RTL8127App) ou dans l’application elle-même.

Le pilote


L’app

Le pilote est compatible avec les cartes à base de RTL8125 (2,5 Gb/s), a priori RTL8126 (5 Gb/s, pas testé) et RTL8127 (10 Gb/s). Point important, il faut installer le pilote avant de brancher une carte à base de RTL8125, sinon vous allez peut-être planter macOS. C’est en tout cas comme ça chez moi : ma vieille carte à base de RTL8125 plante macOS avec le pilote natif.

C’est bien ce pilote qui est chargé

En Thunderbolt

Pour le moment, j’ai testé avec deux cartes. Une vieille carte à base de RTL8125 et une plus récente à base de RTL8127, en PCI-Express 1x. C’est important, parce que j’utilise un boîtier externe Thunderbolt 3, donc qui expose quatre ligne PCI-Express 3.0. La carte à base de RTL8127 est donc bridée, comme dans mon test précédent. Le PCI-Express 3.0 permet 8 Gb/s par ligne, et avec l’overhead de la norme et du Thunderbolt, on est réellement limité. La solution est assez simple dans ce cas précis : il faut une carte avec du PCI-Express 4x et pas une avec du PCI-Express 1x (en théorie, je n’ai pas testé).

Ma carte 2,5 Gb/s en Thunderbolt


La 10 Gb/s

La carte à 2,5 Gb/s donne 2,35 Gb/s dans les deux sens sur des tests, ce qui est la valeur attendue, rien à dire.

2,35 Gb/s

La carte à 10 Gb/s donne seulement 5,3 Gb/s dans un sens et 4,85 Gb/s dans l’autre. C’est vraiment assez loin du maximum, mais on a probablement l’overhead du Thunderbolt et la limitation en PCI-Express 3.0 qui joue. Dans un PC en direct, une fois en PCI-Express 3.0, je monte à 6,5 Gb/s.

5,3 Gb/s vers un Mac


4,85 depuis un autre Mac

En interne

C’est assez logique, mais le pilote fonctionne avec la puce RTL8125 d’un Mac mini M6 et prend le pas sur celui d’Apple quand il est actif. Il offre le même débit qu’en Thunderbolt (2,35 Gb/s). J’ai ensuite fait le même test en désactivant le pilote pour utiliser celui d’Apple, et j’ai eu les mêmes résultats. Donc le pilote, au moins sur une puce RTL8125, offre les mêmes débits que celui d’Apple.

Avec le pilote externe


Avec le pilote Apple

En attendant (peut-être) qu’Apple permette de charger son pilote avec n’importe quelle carte, c’est donc une bonne solution. Ça vise évidemment principalement les Hackintosh à la base, étant donné que pas mal de cartes mères de PC ont une carte Realtek et qu’elles sont peu onéreuses. Pour un véritable Mac, c’est moins intéressant : les cartes PCI-Express se trouvent facilement, mais il faut un boîtier Thunderbolt vers PCI-Express. Disons qu’avec une carte en M.2, on peut recycler un boîtier pour SSD, normalement. Mais si vous avez déjà un boîtier et que vous voulez de l’Ethernet à 10 Gb/s, ça se tente.

10 Gb/s


2,5 Gb/s