OVH Cloud OVH Cloud

usb storage et hotplug

5 réponses
Avatar
Vincent
Bonjour,

J'utilise sur ma machine - sous Mandrake 10.1 - un disque dur externe (2
partitions logiques, 5 et 6), un lecteur de cartes flash et une clef de
stockage, le tout en USB 2. Quand je connecte un de ces périphérique
hotplug fait son boulot et attibue un /dev/sdxy au différentes partitions
touvées. Ensuite c'est à harddrake de jouer, et de monter la ou les
partitions dans /mnt/removable(s).

Et c'est là que le bas blesse : si ça fonctionne parfaitement avec la
clef de stockage et le lecteur de carte (1ère partition physique) cela
n'est pas le cas avec le disque dur externe !?

J'ai donc créé 2 entrées dans mon fstab

/dev/sda5 /mnt/commun etc...
/dev/sda6 /mnt/vgdoc etc...

ce qui ne fonctionne naturellement que si mon disque dur externe est le
premier périphérique branché. Si daventure un autre l'a été
précedement et que je le débranche pour que la lettre 'a' soit libérée
et affectée au hd usb, j'obtient alors le message "bloc device non valide".

Peut-être faut-il prendre le problème par un autre bout ? Ou par hazard
peut-on préaffecter la lettre du device en fonction du connecteur usb
utilisé (j'en ai 4). Si quelqu'un entre-aperçoit le début d'une
solution merci de me mettre sur la piste.

Amicalement,

Vincent

5 réponses

Avatar
chimay
bonjour,

il est possible que la lettre corresponde en effet au port usb : j'en ai
5 et je monte ma clef sur /dev/sde1. Mais ca fonctionne seulement en
mode console :(

amicalement,
david

Bonjour,

J'utilise sur ma machine - sous Mandrake 10.1 - un disque dur externe (2
partitions logiques, 5 et 6), un lecteur de cartes flash et une clef de
stockage, le tout en USB 2. Quand je connecte un de ces périphérique
hotplug fait son boulot et attibue un /dev/sdxy au différentes partitions
touvées. Ensuite c'est à harddrake de jouer, et de monter la ou les
partitions dans /mnt/removable(s).

Et c'est là que le bas blesse : si ça fonctionne parfaitement avec la
clef de stockage et le lecteur de carte (1ère partition physique) cela
n'est pas le cas avec le disque dur externe !?

J'ai donc créé 2 entrées dans mon fstab

/dev/sda5 /mnt/commun etc...
/dev/sda6 /mnt/vgdoc etc...

ce qui ne fonctionne naturellement que si mon disque dur externe est le
premier périphérique branché. Si daventure un autre l'a été
précedement et que je le débranche pour que la lettre 'a' soit libérée
et affectée au hd usb, j'obtient alors le message "bloc device non valide".

Peut-être faut-il prendre le problème par un autre bout ? Ou par hazard
peut-on préaffecter la lettre du device en fonction du connecteur usb
utilisé (j'en ai 4). Si quelqu'un entre-aperçoit le début d'une
solution merci de me mettre sur la piste.

Amicalement,

Vincent


Avatar
Vincent
Le Tue, 05 Oct 2004 10:08:31 +0200, chimay a écrit :


il est possible que la lettre corresponde en effet au port usb : j'en ai
5 et je monte ma clef sur /dev/sde1. Mais ca fonctionne seulement en
mode console :(


?? Comment fais-tu ??
Quel processus affecte telle lettre à tel port ?

Merci d'avance

Vincent

Avatar
Luc
Il y a la même question dans le forum linux.user.french, ainsi qu'une
réponse qui me semble pertinente à base de udev.

Vincent wrote:

Bonjour,

J'utilise sur ma machine - sous Mandrake 10.1 - un disque dur externe (2
partitions logiques, 5 et 6), un lecteur de cartes flash et une clef de
stockage, le tout en USB 2. Quand je connecte un de ces périphérique
hotplug fait son boulot et attibue un /dev/sdxy au différentes partitions
touvées. Ensuite c'est à harddrake de jouer, et de monter la ou les
partitions dans /mnt/removable(s).

Et c'est là que le bas blesse : si ça fonctionne parfaitement avec la
clef de stockage et le lecteur de carte (1ère partition physique) cela
n'est pas le cas avec le disque dur externe !?

J'ai donc créé 2 entrées dans mon fstab

/dev/sda5 /mnt/commun etc...
/dev/sda6 /mnt/vgdoc etc...

ce qui ne fonctionne naturellement que si mon disque dur externe est le
premier périphérique branché. Si daventure un autre l'a été
précedement et que je le débranche pour que la lettre 'a' soit libérée
et affectée au hd usb, j'obtient alors le message "bloc device non
valide".

Peut-être faut-il prendre le problème par un autre bout ? Ou par hazard
peut-on préaffecter la lettre du device en fonction du connecteur usb
utilisé (j'en ai 4). Si quelqu'un entre-aperçoit le début d'une
solution merci de me mettre sur la piste.

Amicalement,

Vincent


Avatar
Vincent
Le Tue, 05 Oct 2004 22:08:19 -0400, Luc a écrit :

Il y a la même question dans le forum linux.user.french, ainsi qu'une
réponse qui me semble pertinente à base de udev.



Cela me semble effectivement une piste intéressante. Du reste udev était
déjà installé sur ma machine et est documenté par
/usr/share/doc/udev-030/index.html

Merci

Vincent

Avatar
Vincent
Le 04 Oct j'envoyais ici même un message concernant le nomage par le
système des différents périphériques usb en fonction de leur ordre de
branchement (/dev/sdxy) et les problèmes que cela me posais pour adresser
les partitions de mon disque dur externe dans mon fstab. Celui ci recevait
l'affectation sda, sdb, sdc... selon qu'un autre lecteur (clef de
stockage, lecteur de carte...) ait été préalablement branché ou non.

Luc m'avait mis sur la voie en faisant référence à
un thread sur linux.debian.user.french traitand de udev.

Merci Luc, ÇA MARCHE !

En gros :

Installer udev si ce n'est déjà fait (installé par défaut sur ma
Mandrake 10.1). Attention : remplace devfs, conflit potentiel

Lire la documentation
/usr/share/doc/udev-030/index.html sur ma Mandrake ou
http://www.reactivated.net/udevrules.php

Brancher son périphérique et afficher /sys/block pour vérifier son
attribution (sda dans mon exemple)

# udevinfo -a -p /sys/block/sda/ (ou sdx selon votre cas)

Rechercher ce qui correspond au périph en question

Chez moi ça donne:
------------------------------
looking at the device chain at
'/sys/devices/pci0000:00/0000:00:13.2/usb3/3-3':
BUS="usb"
ID="3-3"
SYSFS{bConfigurationValue}="1"
SYSFS{bDeviceClass}="00"
SYSFS{bDeviceProtocol}="00"
SYSFS{bDeviceSubClass}="00"
SYSFS{bMaxPower}=" 0mA"
SYSFS{bNumConfigurations}="1"
SYSFS{bNumInterfaces}=" 1"
SYSFS{bcdDevice}="0001"
SYSFS{bmAttributes}="c0"
SYSFS{detach_state}="0"
SYSFS{devnum}="4"
SYSFS{idProduct}="6830"
SYSFS{idVendor}="04b4"
SYSFS{manufacturer}="Cypress Semiconductor" SYSFS{maxchild}="0"
SYSFS{product}="USB2.0 Storage Device" SYSFS{speed}="480"
SYSFS{version}=" 2.00"
------------------------------------

repérer ce qui peut servir d'identifiant unique. Dans mon exemple :
SYSFS{idVendor}="04b4"
SYSFS{serial}="DEF10844FA46"


rechercher dans :/etc/udev/rules.d/ un fichier de regle de priorité
suffisament haute (ordre alphabétique, les dernières sont les règles
par défaut).

Rajouter la ligne (à adapter en fonction de votre périf)
BUS="usb", SYSFS{idVendor}="04b4", SYSFS{serial}="DEF10844FA46",
NAME{all_partitions}="usbhd"
(Attention, tout sur la même ligne, ne pas tenir compte du découpage
lié à mon client news)

Débrancher et rebranchez votre disque dur externe PAR LA PRISE USB, et
hop, c'est magique. J'obtiens un /dev/usbhd, /dev/usbhd1, /dev/usbhd2...
que je peux utiliser dans mon fstab.

Ne me demandez pas pourquoi mais ça ne fonctionne pas si j'utilise
l'interupteur d'alimentation situé sur le boitier du disque dur externe.

Et voilà, hoping this helps

Vincent