Bonsoir !
J'ai eu aujourd'hui une petite misère avec mon cher Linux. Je vous en
fais part car elle prête à sourire.
J'ai un appareil photo numérique qui marche depuis longtemps sans
problème avec le module usb-storage. Aujourd'hui, après avoir fait des
photos au ski avec des copains, j'essaye de transférer les photos vers
le portable pour les montrer, voire les graver. Je n'arrive pas à monter
l'appareil. Dans les logs les deux messages
localhost kernel: hub.c: new USB device 00:03.0-1, assigned address 2
localhost kernel: usb.c: USB device not accepting new address=2 (error=-110)
se répètent à chaque fois que j'essaye de brancher l'appareil, avec
juste l'adresse qui change.
En me disant que « -110 » peut être une piste, je me plonge à grep perdu
dans les sources du noyau. Du ski et de la plongée le même week-end
c'est pas mal. Le message d'erreur provient de usb_new_device() dans
drivers/usb/usb.c, mais le code d'erreur lui-même est celui retourné par
usb_set_address(), qui lui même le tient de usb_control_msg(), qui
lui-même le tient de usb_submit_urb() via usb_start_wait_urb() et
usb_internal_control_msg() et...
Finalement c'est perror(1) qui m'a mis sur la voie. J'ai pris une grande
inspiration, soufflé un coup... maintenant ça marche. Ce que j'aime dans
ce système, c'est que quand on a des problèmes on peut au moins essayer
d'en remonter à la source.
À bientôt,
Edgar.
PS : J'oubliais, l'erreur -110 signifie « faudrait souffler un coup sur
la prise USB car elle est bien poussiéreuse ».
--
Edgar Bonet Maison : 04 76 21 29 16 Bureau : 04 76 88 10 96
3 rue Jean Prévost Mobile : 06 77 19 79 39 Fax : 04 76 88 11 91
38000 Grenoble guilde@??? www.edgar-bonet.org