[usb linux ]commandes de clé usb

commandes de clé usb [usb linux ] - C - Programmation

Marsh Posté le 26-01-2005 à 11:17:56    

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 !

Reply

Marsh Posté le 26-01-2005 à 11:17:56   

Reply

Marsh Posté le 26-01-2005 à 11:27:26    

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
Reply

Marsh Posté le 26-01-2005 à 11:34:54    

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
Reply

Marsh Posté le 26-01-2005 à 11:55:06    

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
Reply

Marsh Posté le 26-01-2005 à 12:00:19    

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é ;)

Reply

Marsh Posté le 26-01-2005 à 12:03:32    

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
Reply

Marsh Posté le 26-01-2005 à 13:21:03    

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 !

Reply

Marsh Posté le 26-01-2005 à 14:34:40    

Reply

Marsh Posté le 26-01-2005 à 16:27:20    

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 !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed