Changer le nom « USB audio CODEC » d’une station Thunderbolt (presque)

Dans les trucs qui m’énervent avec les stations Thunderbolt, il y a le nom de la sortie audio. Dans toutes les stations (il me semble) que j’ai testé, la sortie audio se nomme USB audio CODEC. Et ce nom moche m’énerve (oui, c’est idiot).

De plus, au delà du fait que ce n’est pas très harmonieux, si on branche plusieurs périphériques audio, on peut avoir des sorties avec le même nom, et ça pose des soucis. Ma première interrogation a été simple : pourquoi les constructeurs ne changent pas le nom ? Parce que ce n’est pas si simple. Dans la majorité des cas, c’est une puce audio de chez Texas Instruments, la PCM2912, et c’est le nom par défaut. De ce que j’ai compris, la puce n’a pas de firmware, et donc changer le nom implique de fabriquer une puce spécifique, et TI ne semble même plus le proposer. De toute façon, j’imagine que les fabricants de stations Thunderbolt ne vendent pas assez pour financer une puce custom. La première voie que j’avais envisagé rapidement, modifier le firmware, tombe donc à l’eau.

USB Audio CODEC (pas bien)

La seconde solution, c’est un bout de code de chez Apple. Il se nomme SampleUSBAudioOverrideDriver et doit permettre de passer au-dessus (je n’ai pas d’autres mots pour override) le pilote standard, pour changer le nom. L’idée, c’est de passer par une extension codeless (sans code) qui va juste permettre de changer le nom du périphérique. Le problème, c’est que ça fonctionne… mais pas sous macOS Catalina. J’ai tenté plusieurs fois, sans résultats, sauf un cas bizarre ou le nom a changé mais pas pour le bon. Je ne sais pas si Apple a modifié la gestion dans macOS, si Catalina attend quelque chose de spécial, mais ça ne fonctionne pas.

Attention, je vais vous expliquer comment modifier, mais il faut désactiver le SIP (ou signer le pilote, mais je n’ai pas essayé).

Première étape, télécharger le fichier chez Apple (Download Sample Code).

Ensuite, il faut fait un clic droit sur SampleUSBAudioOverrideDriver.kext et choisir Afficher le contenu du paquet. Et avec un éditeur de texte (j’utilise BBEdit), modifier le fichier Info.plist dans Contents.

Il faut modifier les valeurs qui suivent USB Product Name et USB Interface Name (il y en a deux) pour modifier le nom de l’interface (j’ai mis Station Thunderbolt).

Il faut modifier les valeurs idProduct et idVendor (trois fois) pour mettre les identifiants de votre périphérique. Pour les connaître, passez dans le menu , A propos de ce Mac, Rapport système. Dans l’ongle USB, cherchez USB audio CODEC (ou le nom de votre périphérique). Notez les valeurs Identifiants du produit et Identifiant du fournisseur.

Les valeurs





La première (0x2912) est donc idProduct, la seconde (0x8bb) est idVendor. Il faut les convertir de l’hexadécimal vers le décimal. Le plus simple est de passer par la calculette de macOS. Faites Présentation -> Programmeur, cliquez sur le 16 dans le coin, tapez la valeur (par exemple 8bb) puis cliquez sur le 10 : vous avez obtenu la valeur en décimale (2235). Même chose pour le 0x2912 qui devient 10514. Les fabricants de stations utilisent souvent la même puce, donc vous aurez peut-être les mêmes valeurs que moi (c’est le cas pour deux de mes stations Thunderbolt).

Placez les deux valeurs dans le fichier et sauvegardez. Maintenant, il faut placer le fichier dans /Bibliothèque/Extensions (/Système/Bibliothèque/Extensions avec certains vieux OS). macOS vous demandera sûrement le mot de passe. La dernière étape, avant de redémarrer, est de donner les bons droits. Le readme donne les commandes à taper, mais sinon un passage de Kext Utility fait le boulot.

Station Thunderbolt (bien)


Le résultat (sous Mojave, donc) : le périphérique se nomme bien Station Thunderbolt. Je ne sais pas si Apple va encore permettre ça sous Big Sur (ou même sous Catalina, si ce n’est pas un bug) mais en tout cas, c’est pratique et les fabricants pourraient fournir le kext avec leurs stations. Si ça vous intéresse, j’ai la version modifiée ici, mais elle n’est pas signée.