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

  FORUM HardWare.fr
  Programmation
  C

  [usb bulk] endpoint 1 IN de ma clé usb (broken pipe)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[usb bulk] endpoint 1 IN de ma clé usb (broken pipe)

n°954922
allawos
Posté le 17-01-2005 à 18:15:52  profilanswer
 

Bonjour à tous. J'ai créé un module linux permettant de gérer une caméra usb. Pour l'instant, je teste sur ma clé usb et je bloque sur la lecture du endpoint 1 IN.
 
En effet, j'ai repris usb-skeleton.c, et dans la fonction read, la lecture du EP 1 IN se fait avec usb_bulk_msg(...) (tous les params ont l'air OK). Le souci, c'est que mon buffer de destination n'est pas rempli par cet appel ... qui termine systématiquement par un timed out (même pour 15 minutes d'attente).
 
J'ai donc essayé de remplacer usb_bulk_msg par le remplissage d'un urb (FILL_BULK_URB) puis l'appel de usb_submit_urb() ... mon buffer n'est toujours pas rempli et mon urb.status vaut -EINPROGRESS (alias : Operation now in progress).
 
J'ai essayé de faire un :

Code :
  1. while (urb.status==-EINPROGRESS) {}


juste après ... afin d'attendre la fin du transfert ... mais la, plantage, il ne sort jamais de mon while.
 
Je ne sais pas si il y a un bug connu avec certaines clé usb (le module initial usb-storage la gère pourtant sans problème) ou si c'est moi qui fait le trop laid.
 
Toute aide serait fortement appréciée. Merci d'avance !


Message édité par allawos le 20-01-2005 à 10:17:05
mood
Publicité
Posté le 17-01-2005 à 18:15:52  profilanswer
 

n°956103
allawos
Posté le 19-01-2005 à 09:30:20  profilanswer
 

Bon j'ai un peu avancé. je n'arrive toujours pas à lire mon endpoint IN mais par contre, en faisant d'abord une écriture sur le endpoint OUT, le comportement change lors de la lecture (pipe broken ou unknown device or adress). C'est pas encore ca mais ca avance.
Il est en fait logique de d'abord effectuer une requete sur le endpoint OUT avant de pouvoir lire un acquitement sur le endpoint IN !!!

n°956441
chaica
Posté le 19-01-2005 à 14:45:44  profilanswer
 

Bon courage :)


---------------
Du taf dans le Logiciel Libre : https://www.linuxjobs.fr
n°957155
allawos
Posté le 20-01-2005 à 10:15:52  profilanswer
 

Meuuuuuh ... j'y arrive pas.
J'essaye cette fois d'écrire d'abord des 0 dans le endpoint 1 out, ca passe systématiquement, puis ensuite je fais une lecture du enpoint 1 in. Ca ne passe qu'à la première lecture après branchement de la clé ... ou j'obtient 5 octets à 0 puis différentes autre valeurs (différentes à chaque test).
 
Par contre, si j'utilise usb_bulk_msg, j'ai directement le broken pipe si je refais une écriture de 0 puis une lecture, sans débrancher la clé, j'arrive systématiquement sur un Broken pipe ... zavez pas une idée pourquoi ???
 
A noter, que je suis sous le kernel 2.4.20-8 ... savez-vous s'il y a des soucis particuliers avec l'usb sous ce kernel ?
 
 
Merci d'avance et merci chaica pour l'encouragement !


Message édité par allawos le 20-01-2005 à 11:11:30

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

  [usb bulk] endpoint 1 IN de ma clé usb (broken pipe)

 

Sujets relatifs
Comment connaitre le pipe nommé d'un appli XPSQL - pb de Bulk Insert depuis un fichier txt
Timeout sur la lecture d'un pipe ?Bulk sous oracle 9i
[C] implementation shell unix (fork, pipe)Pb de Broken Pipe en C (bsd) - Application FTP
Probleme de broken pipeProblème de pipe (grrrr)
Plus de sujets relatifs à : [usb bulk] endpoint 1 IN de ma clé usb (broken pipe)


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