Introduction

«Universal Serial Bus» (USB) est une norme développée depuis 1994 par les partenaires industriels Compaq, Intel, Microsoft et NEC. Elle décrit un bus de communication pour les périphériques et se donnant comme objectifs initiaux :

1. connecter les ["PCs"] au téléphone

2. utilisation facile

3. connectique extensible

Concrètement, les machines récentes sont livrées avec au moins un connecteur USB sur lequel il est théoriquement possible de brancher 127 périphériques de tous types (imprimantes, scanner, disques, modem, photo numérique, ...). Les cartes mères sont généralement pourvues d'un contrôleur USB compatibles avec l'un des deux standards :

OHCI -- Open Host Controller Interface (Compaq)

UHCI -- Universal Host Controller Interface (Intel)

En théorie le taux de transfert escompté est de 12Mbit/s, mais en pratique dans les meilleurs cas il ne peut dépasser 8Mbits/s et dans la majorité des utilisations le débit stagne à 2M/bits. La nouvelle norme ["USB2"].0 promet un débit théorique de 480 Mbit/s !

Base

Pour l'USB, l'utilisation d'un noyau 2.4 est préférable même si le support USB est maintenant disponible pour les noyaux 2.2

Avoir le support USB activé ! C'est à dire, dans la config du noyau

et monter le système de fichier virtuel ('/proc/bus/usb' ) permettant de gérer l'USB.

  'usbdevfs /proc/bus/usb usbdevfs defaults 0 0'

  'mount /proc/bus/usb usbdevfs -t usbdevfs '

Pratique!

La commande ci-desssus exécutée avant de brancher un périphérique USB (ou non!) permet de suivre les évènements systèmes correspondant. Cela donne pas mal d'informations et permet donc d'aider au déverminage.

permet d'obtenir la liste des pilotes chargés (même s'il n'y pas de périphérique correspondant)

permet d'obtenir la liste des périphériques détectés sur le bus USB

Exemple

Le branchement d'un flash-drive (cf ci-après) génère le message suivant ::

' hub.c: USB new device connect on bus1/1, assigned device number 6

 Manufacturer: USB
 Product: Solid state disk
 SerialNumber: 1E4207E33D900311
 scsi0 : SCSI emulation for USB Mass Storage devices
 Vendor: USB       Model: HD                Rev: 1.11
 Type:   Direct-Access                      ANSI SCSI revision: 02
 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
 SCSI device sda: 64512 512-byte hdwr sectors (33 MB)
 sda: Write Protect is off
 sda:<7>usb-storage: queuecommand() called sda1'

DebSearch:hotplug

Afin de connecter facilement et automatiquement des périphériques USB, le système GNU/Linux est désormais fourni avec l'utilitaire hotplug .

L'utilisation d'hotplug permet une autoconfiguration (au moins partielle) du système et dispense donc l'utilisateur de tâches d'administration souvent ardues.

Cette fonctionnalité est essentiellement basée sur :

Sous Debian, le fichier de configuration basique est déplacé en /etc/default/hotplug.usb .

L'utilisation de hotplug permet donc d'optimiser (réduire) le contenu du fichier /etc/modules qui force le chargement de modules lors de l'initialisation du système. Après avoir vérifié que le branchement d'un périphérique provoque bien le chargement du bon module, on supprimera les lignes inutiles de ce fichier.

Le site de développement «hotplug» http://linux-hotplug.sourceforge.net/

Flash Drive / Disk On Key (Grégory Simon)

Un «flash drive» est une unité de stockage ayant toutes les fonctionnalités d'un disque dur traditionel. Ce sont en fait des petits modules de mémoire souvent présentés en forme de briquet ou de stylo. Ils peuvent avoir des capacités de 32, 64, 128, 256, 512 ou 1024 mégaoctets.

Ils ont pour but de faciliter le transfert de données d'un ordinateur à un autre et d'être universel car le port USB est présent sur la plupart des équipements récents.

La liste des modules nécessaires pour supporter les «USB Flash Drive» (en plus du support USB de base)

'usb-storage [USB Mass Storage support]'

hotplug

'sd_mod [SCSI Disk support]'

'scsi_mod [SCSI Support]'

'uhci [UHCI Alternate Driver (JE) support]'

'usbcore [wiki:USB Support for]'

UHCI peut varier suivant le contrôleur USB, il peut être :

Pour plus d'information consulter la documentation de la carte-mère et aussi celle du noyau6

Ensuite il faut créer un point de montage :

'# sudo mkdir /mnt/flash'

Dans le fichier /etc/fstab , insérer la ligne suivante pour permettre le montage/démontage par les utilisateurs :

'/dev/sda1 /mnt/flash vfat default,noauto,user 0 0'

Il est maintenant possible de monter/utiliser/démonter l'«USB Flash Drive» comme un disque normal.

'# mount /mnt/flash'

'# ...'

'# umount /mnt/flash'

Autre contribution Rémi Suinot (novembre 2002)

Dans le même genre, l'utilisation très similaire d'un disk on key (64Mo de mémoire sur support externe et connexion usb) est décrite dans la documentation :

Disque On Key http://rsuinux.free.fr/index3.php?page=debian&index=clef_usb

Pour en savoir plus

The Linux USB sub-system http://["LinuxUSBGuide"].sourceforge.net