Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
983 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [usb linux ]commandes de clé usb

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[usb linux ]commandes de clé usb

n°962570
allawos
Posté le 26-01-2005 à 11:17:56  profilanswer
 

Bonjour à tous. Je développe un driver usb sous linux que je voudrais tester sur une clé usb. Savez-vous où trouver les spécifications des commandes bulk à écrire/lire sur le clé ? Sont-elles dépendantes du modèle de ma clé ?
Merci d'avace !

mood
Publicité
Posté le 26-01-2005 à 11:17:56  profilanswer
 

n°962578
black_lord
Truth speaks from peacefulness
Posté le 26-01-2005 à 11:27:26  profilanswer
 

quand tu branches ta clé tu as des infos qui s'affichent dans /var/log/message.
 
Je ne m'y connais pas en driver USB mais les commandes BULK sont à priori dépendantes de ta clé (de ce que j'ai pu voir dans des sources que j'ai trifouillé).


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°962582
allawos
Posté le 26-01-2005 à 11:34:54  profilanswer
 

OK, je vais aller chercher sur le site du vendeur. Merci !
 
[edit] euh, j'ai cru comprendre que c'était usb-storage qui gérait ma clé, personne aurait la source usb-storage.c afin que je vois le traitement effectué pour ce modèle de clé ?.
N'y aurait-il pas des commandes un peu génériques pour commencer à tester car sur le site d'Easy Disk (marque de ma clé), je n'ai pas l'impression qu'il y ait ce genre de spec ... y'a que des trucs pour windows et de haut niveau :(


Message édité par allawos le 26-01-2005 à 11:53:34
n°962603
black_lord
Truth speaks from peacefulness
Posté le 26-01-2005 à 11:55:06  profilanswer
 

si c'est usb-storage alors tu n'as rien à écrire comme drivers. Pour les pb d'utilisation passe sur sur la section OS Alternatifs ;)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°962606
allawos
Posté le 26-01-2005 à 12:00:19  profilanswer
 

oui, oui, je sais que usb-storage fait déjà tout ce qu'il faut ... mais comme je fais un driver pour microcontrolleur et que je n'ai pas encore le microcontrolleur, je voudrais me faire la main sur ma clé ;)

n°962609
black_lord
Truth speaks from peacefulness
Posté le 26-01-2005 à 12:03:32  profilanswer
 

les sources de usb-storage sont dans le kernel alors :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°962682
allawos
Posté le 26-01-2005 à 13:21:03  profilanswer
 

Aaaaaaaa h ! je cherchais un usb-storage.c ... mais il n'existe pas !!
Par contre, j'ai bien trouvé les sources que je cherche dans :
/usr/src/linux/drivers/usb/storage/
... et qui permettent la création de usb-storage.o :D
 
Merci black_lord !
 
... mais si certains ont quelques commandes génériques pour les clés usb, je suis toujours preneur !

n°962781
allawos
Posté le 26-01-2005 à 14:34:40  profilanswer
 
n°962889
allawos
Posté le 26-01-2005 à 16:27:20  profilanswer
 

allez, voici une entête de commande nulle qui ne fait rien mais devrait passer sur, je pense toute clé :
 
CBW : 0x55 0x53 0x42 0x43 - 0x10 0x11 0x12 0x13 - 0x00 0x00 0x00 0x00 - 0x80 0x00 0x10 0xff
 
petite explication :
- valeur indicant que c'est un CBW : 0x43425355 (little endian)
- flag au choix, j'ai choisi : 0x13121110 (little endian)
- bytes transférés entre l'émission du CBW et la réception du CSW : 0x00000000 -> aucun transfert entre émission et réception.
- définition du sens IN : 0x80
- LUN : 0x00 ... car ... un seul LUN, je ne sais pas ce que c'est ???
- taille du block commande qui suit : 0x01 (on va passer une commande bidon de 1 byte)
- block commande bidon : 0xff (c'est la commande effectivement passée au device - 1 byte ici).
 
J'obtient ainsi en retour (lecture du EP IN) :
 
CSW : 0x55 0x53 0x42 0x53 - 0x10 0x11 0x12 0x13 - 0x00 0x00 0x00 0x00 - 0x01
 
soit :  
- valeur indicant que c'est un CSW : 0x53425355 (little endian)
- mon flag passé par le CBW : 0x13121110 (little endian)
- la différence entre les donnée transférées (entre CBW et CSW)  prévues et les effectives : 0x00000000 (car je n'avais pas prévu de transfert entre le CBW et le CSW).
- le status : 0x01 (ce qui signifie que mon block commande bidon n'a pas réussi ... normal puisqu'il est bidon).
 
Voila voila, si certains trouvent des erreurs dans mes interprétations, n'hésitez pas à me mettre au courant, merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [usb linux ]commandes de clé usb

 

Sujets relatifs
javascript et linux[J2ME] dispacher les commandes sur les boutons
Utiliser SDL avec NASM sous linux[usb linux]Besoin d'une explication sur les URB et interruptions
[C/Linux] récupérer signaux capteurs carte mèreComment lire une bdd SQL Server sous windows depuis Linux
[UNIX / LINUX]Comment feriez vous ceci ?[C] Compiler un module Linux
[module linux] fread appelle ioctl avec cmd=TCGETS ???Comment activer les commandes MySQL sous PHP (Linux)
Plus de sujets relatifs à : [usb linux ]commandes de clé usb


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR