Web Analytics

usb-gadget

⭐ 155 stars French by surban

usb-gadget ==========

page crates.io page docs.rs licence Apache 2.0

Cette bibliothèque permet l’implémentation de périphériques USB, appelés gadgets USB, sur des appareils Linux disposant d’un contrôleur de périphérique USB (UDC). Sont supportées à la fois des fonctions USB pré-définies et des implémentations entièrement personnalisées de l’interface USB.

Les fonctions USB pré-définies suivantes, implémentées par des pilotes du noyau, sont disponibles :

De plus, des fonctions USB entièrement personnalisées peuvent être implémentées en Rust en mode utilisateur.

Le support des descripteurs spécifiques au système d’exploitation et de WebUSB est également fourni.

Outil CLI --------

L’outil CLI usb-gadget permet de configurer des gadgets USB à partir de fichiers de configuration TOML sans écrire de code Rust.

Installation

cargo install usb-gadget --features cli

Utilisation

Créez un fichier de configuration TOML décrivant votre gadget, puis utilisez la CLI pour le gérer :

usb-gadget up gadget.toml # enregistrer et lier un gadget usb-gadget list # lister les gadgets enregistrés usb-gadget down my-gadget # supprimer un gadget par nom usb-gadget down --all # supprimer tous les gadgets usb-gadget check gadget.toml # valider un fichier de configuration

Vous pouvez également passer un répertoire à up ou check pour traiter tous les fichiers .toml qu’il contient.

Exemple de configuration

name = "serial-debug"

[device] vendor = 0x1209 product = 0x0002 manufacturer = "Example Inc." product_name = "Debug Console" serial = "0001"

[[config]] description = "Serial Config"

[[config.function]] type = "serial" class = "acm"

Plusieurs fonctions peuvent être combinées dans un seul gadget en ajoutant davantage d’entrées [[config.function]]. Exécutez usb-gadget template --list pour voir tous les modèles disponibles.

Fonctionnalités ---------------

Cette crate propose les fonctionnalités optionnelles suivantes :

Exigences ---------

La version minimale de Rust prise en charge (MSRV) est la 1.77.

Un contrôleur de périphérique USB (UDC) pris en charge par Linux est requis. En général, les PC standard ne comprennent pas d’UDC. Un Raspberry Pi 4 contient un UDC, qui est connecté à son port USB-C.

Les options de configuration du noyau Linux suivantes doivent être activées pour une fonctionnalité complète :

Les permissions root sont requises pour configurer les gadgets USB sous Linux et le système de fichiers configfs doit être monté.

Licence -------

usb-gadget est sous licence [Apache 2.0].

[Apache 2.0 license]: https://github.com/surban/usb-gadget/blob/master/LICENSE

Contribution

Sauf indication explicite contraire de votre part, toute contribution soumise intentionnellement pour inclusion dans usb-gadget par vous, sera sous licence Apache 2.0, sans termes ou conditions supplémentaires.

--- Tranlated By Open Ai Tx | Last indexed: 2026-04-27 ---