J'ai une carte ARM9 et j'ai quelques difficultés a y connecter des clé USB.
J'ai d'abord activé les modules suivants dans le noyau : USB host, USB file system, OHCI_HCD, USB mass storage (en module), SCSI et la gestion des disk SCSI.
D'après les quelques tutoriaux que j'ai lu sur le net ces drivers sont suffisants.
Lorsque je lance la carte, tout à l'air de bien se passer : ma clé est bien détectée et plusieurs informations affichées lors de la connexion sont correctes, voici la trace :
usb 1-1: Product: Flash Disk
usb 1-1: Manufacturer: USB
usb 1-1: SerialNumber: 4403983FABC895D3
usb 1-1: configuration #1 chosen from 1 choice
scsi2 : SCSI emulation for USB Mass Storage devices
Vendor: OTi Model: Flash Disk Rev: 2.00
Type: Direct-Access ANSI SCSI revision: 02
SCSI device sda: 256000 512-byte hdwr sectors (131 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
SCSI device sda: 256000 512-byte hdwr sectors (131 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
sda:<7>usb-storage: queuecommand called
sda1
sd 2:0:0:0: Attached scsi removable disk sda
Le fichier /proc/bus/usb/devices contient toutes les informations liées à la clé :
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 8 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0ea0 ProdID=2168 Rev= 2.00
S: Manufacturer=USB
S: Product=Flash Disk
S: SerialNumber=4403983FABC895D3
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=1ms
Le fichier /proc/scsi/scsi semble se mettre à jour correctement :
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: OTi Model: Flash Disk Rev: 2.00
Type: Direct-Access ANSI SCSI revision: 02
Cependant la clé n'est pas montée automatiquement alors que mon fichier /etc/fstab contient bien la ligne : none /proc/bus/usb usbfs defaults 0 0
Lorsque j'essai de la monter à la main (je fais mount -t usbfs /proc/bus/usb /mnt/usb) j'obtient dans le répertoire /mnt/usb le contenu du répertoire /proc/bus/usb (fichier devices et répertoire 001 représentant le hub je crois) !
J'essai avec les répertoires /proc/bus/usb/001/001 et /proc/scsi/usb-storage/ : même résultat.
J'ai aussi essayé avec les fichiers /dev/sda et /dev/sda1 mais là encore même résultat.
Quelqu'un aurai-t-il une idée, une commande que j'aurai oublié ?
Merci d'avance.
PS : si vous voulez, je peut fournir la trace
# Tu te trompe ;)
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Ce qui devrais marcher :
mkdir -p /mnt/usb
mount -t vfat /dev/sda1 /mnt/usb
ls /mnt/usb
En fait une clef est vue comme un disque scsi par le noyau linux, donc suffit de monter sa première partition souvent en vfat (fat32), mais tu peux reformater en ext3/xfs/jfs/... si ça te chante...
(bon l'autre bouse de redmond supporte que le fat32 par contre)
# De mon côté....
Posté par Gyro Gearllose . Évalué à 2.
/dev/sda1 /mnt/usb auto defaults 0 0
Le problème, c'est que la clef ne sera peut-être pas toujours en /dev/sda1... Faut jeter un oeil du côté d'udev pour créer une règle spéciale qui crée un lien fixe en fonction du model, du n° de série de la clef ou tout autre identifiant permettant de distinguer de façon unique cette clef.
Quoi qu'il en soit, la trace du système donne le périphérique alloué à la clef. Si tu veux essayer, fais un essai avec :
$ mount /dev/sda1 /mnt/usb
Ca devrait rouler !
[^] # Re: De mon côté....
Posté par undine . Évalué à 1.
De toute façon j'avais essayé avant avec une configuration du noyau où le module était intégré et j'avais la même problème, seules les traces que j'ai fournies sont différentes).
Grâce à vos propositions j'ai pu enfin lire ma clé !!!
En fait, le mount -t vfat /dev/sda1 /mnt/usb ne fonctionne pas (pourquoi, là est tout le mystère...).
En faisant un mount -t auto /dev/sda1 /mnt/usb j'ai aussi des messages d'erreurs mais cela fonctionne. Voici la trace :
# mount -t auto /dev/sda1 /mnt/usb/
VFS: Can't find ext3 filesystem on dev sda1.
VFS: Can't find an ext2 filesystem on dev sda1.
cramfs: wrong magic
Bref, je vous remercie tous les deux pour vos réponse pertinentes et rapides.
PS pour Da Bou : en fait j'ai utilisé la ligne "none /proc/bus/usb usbfs defaults 0 0" dans mon fstab car dans la doc de linux fournie avec les sources du noyau il est dit que pour le gestion des clé usb il faut utiliser cette ligne. Cependant j'avais mal compris, cette ligne sert, je pense, pour le noyau et non pour l'utilisateur. Elle lui permet de monter la clé de sorte à pouvoir extraire toutes les informations liées à la clé (nom, id du bus,...) via le fichiers devices.
PS2 : j'aimerai bien savoir quel type de système fichiers j'ai sur la clé étant donné que le mount avec -t vfat ne fonctionne pas et je j'avais auparavant utilisé la clé avec Windows...
[^] # Re: PS2
Posté par Eric Streit . Évalué à 1.
Eric!
-----
[^] # Re: De mon côté....
Posté par Gyro Gearllose . Évalué à 2.
Mais on parle bien du bus dans ce cas, et non des périphériques eux-mêmes.
Si tu veux vraiment savoir quel est le système de fichiers sur ta clef (probablement vfat ou fat32 ou fat16), tu peux, une fois ta clef branchée et avant de la monter effectuer un :
$ fdisk -l
en tant que root.
Ca te listera toutes les partitions de tous tes disques, y compris ta clef...
Autrement, si vfat ne fonctionne pas, c'est peut-être parce que ton kernel ne le supporte pas, ni en natif, ni sous forme de module.
Voilà, en espérant que ces quelques lignes t'aideront.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.