Manuel FreeBSD
Précédent | Chapitre 18. Stockage des données | Suivant

# 18.5. Périphériques de stockage USB

Contribution de Marc Fonvieille.

De nombreuses solutions de stockage externes utilisent, de nos jours, le bus série universel (“Universal Serial Bus”—USB): disques durs, clés USB, graveurs de CDs, etc. FreeBSD fournit un support pour ces périphériques.

## 18.5.1. Configuration

Le pilote de périphériques USB de stockage de masse, umass(4), fournit le support pour les périphériques de stockage USB. Si vous utilisez le noyau `GENERIC`, vous n'avez rien à modifier à votre configuration. Si vous utilisez un noyau personnalisé, assurez-vous que les lignes suivantes sont présentent dans votre fichier de configuration du noyau:

    device scbus
    device da
    device pass
    device uhci
    device ohci
    device usb
    device umass

Le pilote umass(4) utilise le sous-système SCSI pour accéder aux périphériques de stockage USB, votre périphérique USB sera vu par le système comme étant un périphérique SCSI. En fonction du contrôleur USB présent sur votre carte mère, vous n'avez besoin qu'une des lignes `device uhci` et `device ohci`, cependant avoir les deux lignes dans votre configuration du noyau est sans danger. N'oubliez pas de compiler et d'installer le nouveau noyau si vous y avez effectué des modifications.

> Note : Si votre périphérique USB est un graveur de CD ou de DVD, le pilote de périphérique SCSI CD-ROM, cd(4), doit être ajouté au noyau via la ligne:

>     device cd

> Puisque le graveur est vu comme un disque SCSI, le pilote atapicam(4) ne devrait pas être employé dans la configuration du noyau.

Le support pour les contrôleurs USB 2.0 est fourni avec FreeBSD vous devez cependant ajouter:

    device ehci

à votre fichier de configuration pour bénéficier du support USB 2.0. Notez que les pilotes uhci(4) et ohci(4) sont toujours nécessaires si vous désirez le support de l'USB 1.X.

## 18.5.2. Test de la configuration

La configuration est prête à être testée: branchez votre périphérique USB, et dans le tampon des messages du système (dmesg(8)), le disque devrait apparaître de cette manière:

    umass0: USB Solid state disk, rev 1.10/1.00, addr 2
    GEOM: create disk da0 dp=0xc2d74850
    da0 at umass-sim0 bus 0 target 0 lun 0
    da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
    da0: 1.000MB/s transfers
    da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)

Bien évidement, le modèle, le fichier spécial de périphérique (`da0`) et d'autres détails peuvent être différents en fonction de votre configuration.

Comme le périphérique USB est vu comme étant un périphérique SCSI, la commande `camcontrol` peut être employée pour lister les périphériques de stockage USB attachés au système:

    # camcontrol devlist
    <Generic Traveling Disk 1.11>      at scbus0 target 0 lun 0 (da0,pass0)

Si le disque dispose d'un système de fichiers, vous devriez pouvoir le monter. La Section 18.3 vous aidera à formater et créer des partitions sur le disque USB si nécessaire.

Pour rendre ce périphérique montable par un utilisateur normal, un certain nombre de paramétrages sont nécessaires. Tout d'abord, les entrées de périphériques qui sont créées lors de la connexion d'un périphérique USB doivent être accessibles à l'utilisateur. Une solution est de faire en sorte que tous les utilisateurs de ces périphériques soient membres du groupe `operator`. Cela se fait à l'aide de pw(8). Ensuite, quand ces entrées de périphériques sont créées, le groupe `operator` doit pouvoir y accéder en lecture et en écriture. Pour cela, les lignes suivantes sont ajoutées à `/etc/devfs.rules`:

    [localrules=1]
    add path 'da*' mode 0660 group operator

> Note : S'il y a déjà des disques SCSI dans le système, on doit procéder légèrement différemment. Par exemple, si le système contient déjà des disques `da0` à `da2` attachés au système, changez la seconde ligne pour:

>     add path 'da[3-9]*' mode 0660 group operator

> Les disques déjà présents n'appartiendront pas au groupe `operator`.

Vous devez également activer votre ensemble de règles devfs.rules(5) dans votre fichier `/etc/rc.conf`:

    devfs_system_ruleset="localrules"

Le noyau doit être ensuite configuré pour autoriser les utilisateurs habituels à monter des systèmes de fichiers. La méthode la plus simple est d'ajouter la ligne suivante au fichier `/etc/sysctl.conf`:

    vfs.usermount=1

Notez que ce paramétrage ne prendra effet qu'au prochain redémarrage. Il est également possible d'utiliser sysctl(8) pour fixer cette variable.

La dernière étape est de créer un répertoire où le système de fichiers sera monté. Ce répertoire doit appartenir à l'utilisateur qui montera le système de fichiers. Une méthode adaptée et la création par `root` d'un sous-répertoire `/mnt/`$USER`` appartenant à l'utilisateur en question (remplacez `$USER` par le nom d'utilisateur de cet utilisateur):

    # mkdir /mnt/$USER
    # chown $USER:$USER /mnt/$USER

Supposez qu'une clé USB soit branchée et qu'un périphérique `/dev/da0s1` apparaît. Comme ce type de périphériques est en général livré préformaté avec un système de fichiers de type FAT, on pourra le monter de cette manière:

    % mount -t msdosfs -m 644 -M 755 /dev/da0s1 /mnt/$USER

Si vous débranchez le périphérique (le disque doit être démonté auparavant), vous devriez voir dans les messages du système quelque chose comme:

    umass0: at uhub0 port 1 (addr 2) disconnected
    (da0:umass-sim0:0:0:0): lost device
    (da0:umass-sim0:0:0:0): removing device entry
    GEOM: destroy disk da0 dp=0xc2d74850
    umass0: detached

## 18.5.3. Lectures supplémentaires

En plus des sections Ajouter des disques et Monter et démonter des systèmes de fichiers, la lecture de différentes pages de manuel peut être également utile: umass(4), camcontrol(8), et usbdevs(8).

Précédent | Sommaire | Suivant
RAID | Niveau supérieur | Création et utilisation de supports optiques (CDs)

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.