UART c'est quoi ? Trouver le port série et lire le boot log
UART c'est quoi : le port série caché sur les cartes électroniques. Repérer TX, RX et GND, trouver le baudrate et lire la console de démarrage de votre appareil.
L'UART (Universal Asynchronous Receiver-Transmitter) est le port série le plus simple qui existe : deux fils de données, une masse, et un appareil qui raconte en texte ce qu'il fait au démarrage. On le trouve sur une grande partie des routeurs, box, caméras et objets connectés, souvent sous la forme de quatre pastilles discrètes sur la carte. Le trouver, s'y connecter et lire la console de démarrage est le « hello world » du hacking matériel.
Pour ce guide, la cible idéale est un vieux routeur que vous possédez, par exemple acheté d'occasion pour quelques euros. Tout ce qui suit se fait sur votre propre matériel.
UART en une image
Un lien UART relie deux composants avec trois fils utiles.
Appareil (routeur) Adaptateur USB-UART
┌──────────────┐ ┌──────────────┐
│ TX ─┼──────────────────►┼─ RX │
│ RX ─┼◄──────────────────┼─ TX │
│ GND ─┼───────────────────┼─ GND │
│ VCC │ (ne pas relier) │ VCC │
└──────────────┘ └──────────────┘
- TX (transmit) : la broche par laquelle l'appareil envoie ses données.
- RX (receive) : la broche par laquelle il reçoit.
- GND : la masse, la référence de tension commune aux deux côtés.
- VCC : l'alimentation de la puce, souvent présente sur le connecteur. Elle ne doit pas être reliée.
Le TX de l'un va sur le RX de l'autre, et inversement. Il n'y a pas d'horloge partagée : les deux côtés doivent simplement être réglés sur la même vitesse, le baudrate, exprimé en bits par seconde. Le format le plus courant est noté « 8N1 » : 8 bits de données, pas de parité, 1 bit de stop.
Le matériel nécessaire
| Outil | Rôle | Remarque |
|---|---|---|
| Adaptateur USB-UART (CP2102, CH340, FT232…) | Relier le port série à votre ordinateur | Choisissez-en un qui fonctionne en 3,3 V |
| Multimètre | Repérer la masse et mesurer les tensions | Le moindre modèle avec test de continuité suffit |
| Analyseur logique | Voir les données passer et mesurer le baudrate | Optionnel, mais très pratique |
| Fils Dupont, pinces de test | Se connecter aux broches | Un connecteur à souder si les pastilles sont nues |
Sécurité : tensions et alimentation
Deux règles évitent l'essentiel des dégâts.
- Vérifiez la tension avant de brancher. La plupart des cartes récentes travaillent en 3,3 V, certaines en 1,8 V, quelques anciennes en 5 V. Un adaptateur réglé en 5 V sur une broche RX prévue pour 3,3 V peut endommager la puce de l'appareil. Mesurez d'abord, puis réglez votre adaptateur (souvent un cavalier 3,3 V / 5 V). Pour du 1,8 V, il faut un adaptateur compatible ou un convertisseur de niveau.
- Ne reliez jamais VCC. L'appareil s'alimente avec son propre bloc secteur. Relier aussi le VCC de l'adaptateur crée deux sources d'alimentation qui se battent, et peut abîmer l'appareil, l'adaptateur ou le port USB de votre ordinateur. Seuls GND, TX et RX se branchent.
Ajoutez à cela le bon sens d'atelier : appareil débranché pendant que vous manipulez les fils, pas de travail près de l'alimentation secteur interne si le boîtier en contient une, et jamais de port RS-232 (anciens connecteurs DB9 en ±12 V environ) sur un adaptateur TTL.
Repérer les broches (multimètre, analyseur logique)
Trouver le connecteur
Ouvrez le boîtier et cherchez une rangée de 3 à 5 pastilles ou broches alignées, souvent près du processeur principal. Elles sont parfois sérigraphiées (« J1 », « CON2 », « TX RX GND »), parfois anonymes. Une rangée de quatre est le cas le plus fréquent. Prenez une photo nette de la carte des deux côtés : elle vous servira de carte d'état-major.
Identifier chaque broche au multimètre
Procédez dans cet ordre.
- GND, appareil éteint. Mettez le multimètre en mode continuité. Posez une pointe sur une masse connue (le blindage métallique, la carcasse d'un connecteur USB ou Ethernet) et testez chaque broche. Celle qui bipe est la masse.
- VCC, appareil allumé. Passez en mode tension continue, pointe noire sur GND. La broche qui affiche une tension stable (3,3 V par exemple) dès l'allumage et ne bouge plus est probablement VCC. Notez sa valeur : c'est le niveau logique de la carte.
- TX, pendant le démarrage. Mesurez les broches restantes juste après l'allumage. TX envoie le journal de démarrage : sa tension fluctue pendant quelques secondes, puis se stabilise au niveau haut, car une ligne UART au repos reste à l'état haut.
- RX, par élimination. La broche restante est souvent stable, au niveau haut ou proche de 0 V selon la carte.
Confirmer à l'analyseur logique
Si vous avez un analyseur logique, branchez sa masse sur GND et une voie sur la broche supposée TX, lancez la capture dans PulseView puis allumez l'appareil. Vous devez voir des rafales de transitions pendant le démarrage. C'est la confirmation que vous tenez TX, et cela permet aussi de mesurer le baudrate. Notre tutoriel analyseur logique avec PulseView explique l'installation et le décodage pas à pas.
Trouver le baudrate
Il n'y a pas de magie : soit on devine parmi les valeurs classiques, soit on mesure.
Essayer les valeurs courantes
La grande majorité des appareils embarqués Linux utilisent 115200 bauds. Viennent ensuite 57600, 38400, 19200 et 9600. Un mauvais réglage donne des caractères illisibles, un bon réglage du texte clair.
Mesurer le bit le plus court
Dans la capture de l'analyseur logique, zoomez sur une rafale et mesurez l'impulsion la plus étroite : elle correspond à la durée d'un bit. Le baudrate est l'inverse de cette durée.
| Durée d'un bit mesurée | Baudrate correspondant |
|---|---|
| ≈ 8,7 µs | 115200 |
| ≈ 17,4 µs | 57600 |
| ≈ 26 µs | 38400 |
| ≈ 52 µs | 19200 |
| ≈ 104 µs | 9600 |
Ajoutez ensuite le décodeur UART de PulseView avec ce baudrate : si du texte apparaît, c'est gagné.
Se connecter et lire le boot log
Branchez maintenant, appareil éteint :
- GND de l'appareil sur GND de l'adaptateur ;
- TX de l'appareil sur RX de l'adaptateur ;
- RX de l'appareil sur TX de l'adaptateur ;
- VCC laissé libre.
Sous Linux, repérez l'adaptateur puis ouvrez un terminal série :
sudo dmesg | tail # l'adaptateur apparaît, par ex. ttyUSB0
ls /dev/ttyUSB*
sudo usermod -aG dialout $USER # une fois, puis reconnectez-vous
picocom -b 115200 /dev/ttyUSB0 # quitter : Ctrl-A puis Ctrl-X
Alternative avec screen :
screen /dev/ttyUSB0 115200 # quitter : Ctrl-A puis K
Sous macOS, le port s'appelle en général /dev/tty.usbserial-… ou /dev/tty.usbmodem…. Sous Windows, PuTTY en mode « Serial » avec le port COM indiqué par le Gestionnaire de périphériques fait l'affaire.
Allumez alors l'appareil. Si tout est juste, le texte défile. Voici à quoi ressemble typiquement le début d'un journal de démarrage d'un routeur sous Linux (exemple simplifié) :
U-Boot 2012.10 (...)
DRAM: 64 MiB
Flash: 8 MiB
Hit any key to stop autoboot: 1
Starting kernel ...
Linux version 3.10.x ...
En cas de problème : texte illisible, changez de baudrate ; rien du tout, inversez TX et RX ; caractères aléatoires même au bon baudrate, vérifiez la masse.
Ce que ça révèle (et où s'arrêter sur un appareil qui ne vous appartient pas)
Ce que vous apprenez de votre appareil
La console de démarrage est une mine d'informations sur votre propre matériel :
- le bootloader (souvent U-Boot, le programme qui charge le système) et sa version ;
- la version du noyau Linux et parfois sa date de compilation, utile pour savoir si l'appareil est à jour ;
- la table des partitions de la mémoire flash, première étape pour comprendre où se trouve le firmware ;
- parfois une invite de connexion, voire un shell directement ouvert, signe d'une configuration de débogage oubliée par le fabricant.
Une remarque de prudence : si le bootloader vous propose d'interrompre le démarrage, vous pouvez y lire des informations, mais évitez les commandes d'écriture ou d'effacement de la flash tant que vous n'avez pas de sauvegarde. C'est le moyen le plus rapide de transformer un routeur en presse-papier. La suite logique, extraire et analyser le firmware, est l'objet de notre guide extraire un firmware pour débutants.
Où s'arrêter
Tout ce guide suppose un appareil qui vous appartient. Quelques limites claires :
- Pas d'appareil d'un tiers. Ouvrir la box de votre opérateur, qui lui appartient souvent, ou l'équipement d'un employeur sans accord écrit n'est pas un exercice. Accéder sans droit à un système de traitement de données est puni par l'article 323-1 du Code pénal.
- Pas de réutilisation. Un mot de passe ou une clé trouvés dans votre appareil ne doivent pas servir à accéder à un service en ligne ou à d'autres appareils.
- Signaler plutôt que publier. Si vous trouvez une vraie faille sur un produit encore vendu, contactez le fabricant avant d'en parler publiquement. En France, le CERT-FR de l'ANSSI peut aussi être sollicité.
Pour s'entraîner sans rien démonter
Si vous préférez commencer sans ouvrir de boîtier ni souder, nos puzzles CTF sont pensés pour cela. Le Firmware Dump, prévu pour 2028, met une puce mémoire bien visible à lire avec le programmateur USB fourni, avec trois niveaux et rien à souder. Il est en liste d'attente : inscrivez-vous pour être prévenu. Et pour observer vos premières trames UART, un analyseur logique 8 voies compatible PulseView est l'outil le plus polyvalent de l'établi.
Questions fréquentes
Quelle est la différence entre UART et RS-232 ?
L'UART décrit la façon d'envoyer les bits (un fil pour émettre, un pour recevoir, sans horloge). Sur une carte électronique, il circule en niveaux logiques TTL de 3,3 V ou 1,8 V. Le RS-232 utilise le même principe mais avec des tensions bien plus élevées, de l'ordre de ±12 V, sur les anciens ports DB9. Ne branchez jamais un adaptateur TTL sur un port RS-232.
Faut-il souder pour se connecter à un port UART ?
Pas toujours. Certains appareils ont des broches déjà en place. Sinon, des pinces de test, des grippe-fils ou des pointes à ressort peuvent suffire, mais souder un connecteur reste la solution la plus fiable sur des pastilles nues.
Pourquoi je ne vois que des caractères illisibles ?
Presque toujours un mauvais baudrate. Essayez 115200, puis 57600, 38400 et 9600. Si rien ne change, vérifiez que TX et RX ne sont pas inversés et que la masse est bien commune.
Est-ce légal d'ouvrir un appareil et de lire sa console série ?
Sur un appareil qui vous appartient, ouvrir le boîtier et lire sa console relève de la bidouille et de l'apprentissage. Cela peut annuler la garantie. En revanche, utiliser ce que vous découvrez pour accéder à un système ou à un appareil qui n'est pas le vôtre sans autorisation est puni par le Code pénal.