Qu'est-ce que le DFU ?

July 29, 2026 · visiteurs

Si vous avez déjà branché une carte embarquée sur votre ordinateur et l'avez vue s'énumérer comme un étrange périphérique USB sans pilote, il y a de bonnes chances qu'elle se trouvait en mode DFU — Device Firmware Update.

Ce qu'est vraiment le DFU

Le DFU est une classe de périphérique USB définie par l'USB Implementers Forum, conçue à l'origine pour mettre à jour le firmware de périphériques USB sans outillage spécifique au produit. Un appareil qui le prend en charge expose une interface petite et standardisée : un outil côté hôte peut l'interroger, lui envoyer une nouvelle image de firmware et déclencher un redémarrage vers le nouveau code — le tout via le même câble USB utilisé pour tout le reste.

Sur les cartes embarquées, le « mode DFU » signifie généralement que le bootloader lui-même (U-Boot, par exemple) exécute une pile DFU minimale au lieu de démarrer Linux. La carte apparaît sur l'hôte comme un périphérique USB de classe DFU, et un outil comme dfu-util peut lister les cibles flashables (partitions, zones mémoire, tout ce que le bootloader choisit d'exposer) et y écrire directement.

Pourquoi c'est important

Plusieurs éléments rendent le DFU réellement utile en développement embarqué et en production :

Il vaut la peine de comparer le DFU aux mécanismes voisins que l'on croise sur les mêmes cartes : fastboot (le protocole d'Android, avec un objectif similaire mais un format de transmission différent), et les outils d'image système complets comme swupdate ou RAUC, qui gèrent la livraison des mises à jour et le rollback une fois que Linux tourne déjà — le DFU opère généralement une couche en dessous, plus près du bootloader.

Un déroulement type

Une session DFU typique côté hôte ressemble à ceci :

# see what the board exposes in DFU mode
dfu-util -l

# flash an image to a specific alt-setting/partition
dfu-util -a 0 -D firmware.bin

La carte redémarre dans le gestionnaire DFU du bootloader, l'outil hôte négocie le transfert, et l'image atterrit là où le bootloader a mappé cet alt-setting — souvent une partition eMMC/NAND spécifique ou une zone de transit que le bootloader flashe au démarrage suivant.

Pour conclure

Le DFU fait partie de ces éléments d'infrastructure invisibles quand ils fonctionnent : on branche un câble, on lance une commande, et une carte qui ne démarrait plus une minute auparavant est de nouveau opérationnelle. L'essentiel du travail d'ingénierie intéressant se situe du côté du bootloader : ce qui est exposé, comment cela correspond au stockage réel, et comment il échoue de manière sûre quand le transfert est interrompu en cours de route.

C'était un article court — j'irai plus en profondeur sur des implémentations spécifiques (et sur les points délicats) dans un futur article.

Pour aller plus loin

À Lire Aussi

Commentaires