540 octets dans un hub USB-C à 40 € : comment l’ingénieur Michał Kopeć débloque l’écran TV et le HDR sur Nintendo Switch 2

Hub USB-C Cable Matters 7-en-1 et son circuit imprimé équipé des puces VIA Labs VL103 et Realtek RTD2142 modifiées pour la Nintendo Switch 2

Brancher un adaptateur USB-C générique sur la Nintendo Switch 2 se solde invariablement par le même constat frustrant : la batterie se recharge, mais le téléviseur reste plongé dans le noir. Alors que le dock officiel s’appuie pourtant sur le standard DisplayPort Alt Mode, Nintendo a verrouillé la sortie vidéo derrière une séquence d’authentification propriétaire. Agacé par l’encombrement du socle d’origine lors de ses déplacements, l’ingénieur et bidouilleur Michał Kopeć (connu sous le pseudonyme mkopec) a résolu le problème à la racine en injectant à peine 540 octets de code dans un simple hub USB-C Cable Matters à 40 € (environ 45 $), complétés par un patch de 108 octets pour corriger l’affichage HDR.

Pourquoi un hub USB-C classique laisse la Switch 2 sur un écran noir

Sur le papier, le hub 7-en-1 « Triple Display » de Cable Matters (référence 201031-BLK, doté de sorties HDMI, DisplayPort, VGA, Ethernet et d’une alimentation USB Power Delivery jusqu’à 60 W) possède toute la quincaillerie requise pour basculer la console sur grand écran. En inspectant son circuit imprimé, on retrouve un contrôleur USB-PD VIA Labs VL103, un concentrateur USB VL817 ainsi qu’une puce de conversion DisplayPort vers HDMI Realtek RTD2142.

Dans le compte rendu technique publié sur son blog, Michał Kopeć explique qu’avec le firmware d’usine, la négociation initiale va étonnamment loin. La Nintendo Switch 2 valide la puissance électrique, active le mode DisplayPort Alt Mode et configure même l’attribution des broches (pin assignment D). Pourtant, aucun signal vidéo n’est émis. Après le détournement d’une Tesla via le bus CAN par le chercheur Matthew KuKanich sur Nintendo Switch 2, cette nouvelle rétro-ingénierie met à nu les vérifications matérielles imposées par le constructeur japonais.

Pour intercepter le dialogue secret entre la console et le socle officiel, le développeur a intercalé un analyseur de protocole USB-PD (un boîtier WITRN K2 piloté sous Linux via un outil maison basé sur usbpdparser). Les captures révèlent que la console exige plusieurs gages avant d’autoriser le mode TV :

  • Une alimentation calibrée et une identité complète : le dock officiel annonce un profil de 15 V à 2,8 A (42 W) et répond à la requête Discover Identity avec l’identifiant vendeur de Nintendo (VID 0x057E), le code produit 0x2062 et cinq descripteurs VDO précis.
  • L’entrée préalable dans le mode propriétaire : lors de l’étape Discover SVIDs, le socle expose l’identifiant SVID de Nintendo (0x057E) à côté du DisplayPort (0xFF01). La console exige d’entrer dans ce mode Nintendo avant même d’initialiser le flux vidéo.
  • Un échange de commandes non structurées : une fois le DisplayPort configuré, la Switch 2 bombarde l’accessoire de requêtes VDM (préfixe 057E0001 suivi des commandes 20, 01, 02, 06 ou 04) auxquelles le dock répond par le préfixe 057E0041 en renvoyant des numéros de version hérités des contrôleurs Cypress/Infineon CCGx.

Voir les disponibilités sur Amazon→

Injecter 540 octets dans le contrôleur VIA Labs VL103 pour débloquer le mode TV

La bonne surprise de ce hub Cable Matters réside dans son architecture : la puce USB-PD VIA Labs VL103 repose sur un microcontrôleur 8051 doté de 32 Kio de mémoire, que le plugin vli de l’utilitaire Linux fwupdtool sait extraire et reflasher directement par le câble USB, sans dessouder le moindre composant. En désassemblant l’image binaire avec Ghidra et en testant ses modifications dans le simulateur uCsim, Michał Kopeć a logé une routine de 540 octets en assembleur 8051 dans l’espace libre de la mémoire flash, juste avant la somme de contrôle CRC-16/USB.

Ses sept versions successives ont permis d’isoler le comportement exact de la console. Se contenter d’usurper le Vendor ID 0x057E (version v4) laisse toujours l’écran noir : ce n’est qu’en restituant l’intégralité des descripteurs d’identité du dock officiel (version v5) que l’affichage TV se déclenche enfin. L’ajout des réponses aux registres de version 02, 06 et 04 (version v7) a ensuite supprimé la latence de trois secondes pendant laquelle la console attendait en vain une réponse avant de basculer l’image.

Trailer video

Le piège du HDR délavé et le correctif de 108 octets sur la puce Realtek RTD2142

Une fois le signal vidéo rétabli sur le téléviseur, un second écueil technique a surgi : dès l’activation du HDR, les couleurs apparaissaient complètement ternes et désaturées. Contrairement à certaines dérives d’étalonnage HDR déjà observées sur Nintendo Switch 2 dans les jeux, le coupable se cachait ici dans le convertisseur DisplayPort vers HDMI Realtek RTD2142 du hub.

En extrayant les 2 Mio du firmware non signé de cette seconde puce 8051 via flashrom (à travers le canal auxiliaire I²C-over-DP-AUX du câble USB-C), l’ingénieur a compris la méprise. La Switch 2 transmet bien ses couleurs dans l’espace large BT.2020, mais sans utiliser le balisage standard attendu par le convertisseur Realtek. Résultat : la puce RTD2142 activait la luminosité HDR sur le téléviseur, mais continuait d’étiqueter ses paquets HDMI (AVI InfoFrame) en BT.709 (SDR), écrasant toute la palette chromatique. Kopeć a d’ailleurs découvert que d’autres fabricants de docks tiers avaient dû intégrer en urgence une rustine nommée switch2 color space patch dans leurs mises à jour.

Pour y remédier proprement sur le port HDMI, il a écrit un second patch de 108 octets logé dans l’une des huit banques de 64 Kio du RTD2142. Dès que le convertisseur détecte des métadonnées HDR utilisant une courbe de transfert PQ ou HLG, le code force l’indicateur BT.2020 dans chaque trame AVI InfoFrame et recalcule la somme de contrôle à la volée. En revanche, bien que l’usurpation du dock officiel fasse apparaître l’option VRR (Variable Refresh Rate) dans les menus de la Switch 2, la puce Realtek du hub ne gère pas les paquets HDMI à fréquence variable : Kopeć recommande donc de laisser le VRR désactivé dans les paramètres de la console. L’outil de patch hors ligne est disponible dès maintenant sur le dépôt GitHub switch2-hub-patcher de mkopec.

Mon avis sur cette fiche technique

Même si nous n’avons pas encore flashé ni passé ce hub Cable Matters modifié sur notre propre banc d’essai au labo, l’investigation de Michał Kopeć est un modèle d’ingénierie inverse matérielle. Tenir l’émulation complète de la poignée de main USB-PD de Nintendo en 540 octets et corriger dans la foulée le bug de signalisation BT.2020 en 108 octets sur deux contrôleurs 8051 distincts témoigne d’une maîtrise rare du matériel. Ce travail démontre surtout que le blocage des adaptateurs USB-C standards sur Switch 2 ne repose sur aucune puce cryptographique dédiée, mais sur une simple vérification de descripteurs VDM que Nintendo pourrait d’ailleurs faire évoluer au gré d’une future mise à jour système. Nous n’avons pas encore eu ce matériel entre les mains à la rédaction : si le constructeur souhaite nous confier un exemplaire de test pour le passer sur notre protocole complet en conditions réelles, notre banc d’essai lui est grand ouvert.

Suivez Pro-Gamer sur Discord
Recevez toutes nos actus gaming, les alertes de prix hardware et votez sur les sorties en direct avec la communauté.
Rejoindre le Discord →

Retrouvez Pro-Gamer en priorité sur Google

Ajoutez pro-gamer.fr à vos sources préférées pour retrouver nos guides et actus directement dans votre flux Google Discover et vos résultats de recherche.

Arthur "Heimdall"
Rédigé par Arthur "Heimdall"
⚡ Rédacteur Hardware FR & UK

Passionné de hardware et de jeu vidéo, Arthur « Heimdall » navigue entre la France et l'Angleterre où il travaille dans la vente de solutions logicielles B2B. Diplômé d'école de commerce et passionné de bancs d'essai, il monte et démonte des PC depuis son enfance, traquant chaque degré thermique et chaque milliseconde de latence d'affichage. Joueur éclectique passé par Assassin's Creed et Roblox, c'est sur les raids de World of Warcraft qu'il a rencontré Grimtag et Chaya avant de rejoindre l'aventure Pro-Gamer.

Spécialité :⚡ Banc d'essai Hardware & Benchmarks PC @Allkeygames @heimdall.pg
Tous les articles d'Arthur →

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.