On Fri, 22 May 2009, Gabriel Smolar wrote: > Alan Stern <stern@...> writes: > > > > A usbmon trace of the failed probe might provide a clue. > > I'm pasting the output of /tmp/1.mon.out below. This was obtained as described > in [1] after pluging in the modem: > > ===cut here=== > f5528480 3491693641 S Ci:6:001:0 s a3 00 0000 0001 0004 4 < > f5528480 3491693664 C Ci:6:001:0 0 4 = 00010000 > f5528480 3491693672 S Ci:6:001:0 s a3 00 0000 0002 0004 4 < > f5528480 3491693681 C Ci:6:001:0 0 4 = 01010100 > f5528480 3491693686 S Co:6:001:0 s 23 01 0010 0002 0000 0 > f5528480 3491693693 C Co:6:001:0 0 0 > f6883300 3491797639 S Ii:6:001:1 -115:128 2 < > f3c92400 3491797696 S Ci:6:001:0 s a3 00 0000 0002 0004 4 < > f3c92400 3491797718 C Ci:6:001:0 0 4 = 01010000 > f3c92400 3491797737 S Co:6:001:0 s 23 03 0004 0002 0000 0 > f3c92400 3491797746 C Co:6:001:0 0 0 > f3c92400 3491854156 S Ci:6:001:0 s a3 00 0000 0002 0004 4 < > f3c92400 3491854196 C Ci:6:001:0 0 4 = 03010000 > f3c92400 3491909981 S Co:6:001:0 s 23 01 0014 0002 0000 0 > f3c92400 3491909994 C Co:6:001:0 0 0 > f3c92400 3491910022 S Ci:6:000:0 s 80 06 0100 0000 0040 64 < > f3c92400 3491913689 C Ci:6:000:0 0 18 = 12011001 00000040 c6050010 00000102 0301 > f3c92400 3491913716 S Co:6:001:0 s 23 03 0004 0002 0000 0 > f3c92400 3491913726 C Co:6:001:0 0 0 > f3c92880 3491965972 S Ci:6:001:0 s a3 00 0000 0002 0004 4 < > f3c92880 3491966012 C Ci:6:001:0 0 4 = 03010000 > f3c92880 3492022139 S Co:6:001:0 s 23 01 0014 0002 0000 0 > f3c92880 3492022152 C Co:6:001:0 0 0 > f3c92880 3492022162 S Co:6:000:0 s 00 05 0004 0000 0000 0 > f3c92880 3492024736 C Co:6:000:0 0 0 > f3c92880 3492042136 S Ci:6:004:0 s 80 06 0100 0000 0012 18 < > f3c92880 3492045673 C Ci:6:004:0 0 18 = 12011001 00000040 c6050010 00000102 0301 > f3c92880 3492045716 S Ci:6:004:0 s 80 06 0200 0000 0009 9 < > f3c92880 3492048737 C Ci:6:004:0 0 9 = 09022000 01010080 fa > f3c92880 3492048774 S Ci:6:004:0 s 80 06 0200 0000 0020 32 < > f3c92880 3492052734 C Ci:6:004:0 0 32 = 09022000 01010080 fa090400 00020806 > 50000705 87024000 00070508 02400000 > f3c92880 3492052797 S Ci:6:004:0 s 80 06 0300 0000 00ff 255 < > f3c92880 3492056729 C Ci:6:004:0 0 4 = 04030904 > f3c92880 3492056783 S Ci:6:004:0 s 80 06 0302 0409 00ff 255 < > f3c92880 3492059781 C Ci:6:004:0 0 32 = 20035500 53004200 20004d00 4d004300 > 20005300 74006f00 72006100 67006500 > f3c92880 3492059843 S Ci:6:004:0 s 80 06 0301 0409 00ff 255 < > f3c92880 3492064667 C Ci:6:004:0 0 40 = 28034100 6e007900 44004100 54004100 > 20004300 6f007200 70006f00 72006100 > f3c92880 3492064702 S Ci:6:004:0 s 80 06 0303 0409 00ff 255 < > f3c92880 3492067782 C Ci:6:004:0 0 26 = 1a033000 30003000 30003000 30003000 > 30003000 30003000 3200 > f5528180 3492068136 S Co:6:004:0 s 00 09 0001 0000 0000 0 > f5528180 3492070685 C Co:6:004:0 0 0 Everything above here is normal device initialization and enumeration. This was before usb-storage got loaded. > f3ecd100 3492286035 S Co:6:004:0 s 02 01 0000 0008 0000 0 > f3ecd100 3492287688 C Co:6:004:0 0 0 > f3ecd100 3492287730 S Co:6:004:0 s 01 0b 0000 0000 0000 0 > f3ecd100 3492288692 C Co:6:004:0 0 0 > f3ecd380 3493288931 S Bo:6:004:8 -115 31 = 55534243 78563412 01000000 80000601 > 00000000 00000000 00000000 000000 > f3ecd380 3493290782 C Bo:6:004:8 0 31 > > f3ecd380 3493290869 S Bi:6:004:7 -115 256 < > f3ecd380 3493291678 C Bi:6:004:7 -32 0 I have no idea what generated these lines. They could have come from a user program; they aren't from usb-storage. They look like an attempt to switch to modem mode, which apparently did not succeed. > f51ae500 3493315451 S Bo:6:004:8 -115 31 = 55534243 78563412 01000000 80000601 > 00000000 00000000 00000000 000000 > f51ae500 3493316669 C Bo:6:004:8 0 31 > > f51ae500 3493316706 S Bo:6:004:8 -115 1024 = 55534243 78563412 01000000 80000601 > 00000000 00000000 00000000 00000000 > f51ae500 3493317674 C Bo:6:004:8 -32 192 > > f51ae500 3493317845 S Co:6:004:0 s 02 01 0000 0008 0000 0 > f51ae500 3493318671 C Co:6:004:0 0 0 These lines _were_ generated by usb-storage, in the option_rezero() routine. By the way, there's a bug in that routine which might be responsible for part of the problem: The second line saying usb_sndbulkpipe(us->pusb_dev, ep_out), must have been put in by copy-and-paste -- it should say usb_rcvbulkpipe(us->pusb_dev, ep_in), > ===and here=== > > I don't know how to interpret the output, so please let me know if this > information is useful or not. > > > The corresponding messages in /var/log/messages are below: > > ===cut here=== > May 22 10:14:07 user-laptop kernel: [ 2879.600579] usb 6-2: new full speed USB > device using uhci_hcd and address 4 > May 22 10:14:07 user-laptop kernel: [ 2879.758687] usb 6-2: configuration #1 > chosen from 1 choice > May 22 10:14:09 user-laptop kernel: [ 2881.000539] Initializing USB Mass Storage > driver... > May 22 10:14:09 user-laptop kernel: [ 2881.009543] usb-storage: probe of 6-2:1.0 > failed with error -5 I don't understand this failure message either. According to the usbmon log the probe should have succeeded. > May 22 10:14:09 user-laptop kernel: [ 2881.009603] usbcore: registered new > interface driver usb-storage > May 22 10:14:09 user-laptop kernel: [ 2881.009612] USB Mass Storage support > registered. > > ===and here=== > > Some additional info: What version of the kernel was this? > > If there's no way to tell these devices apart but they need different > > switching commands, how do other operating systems handle them? > > I don't know about other modems, but mine (AnyData ADU-510L) has some Windows > installer which is used to connect to the internet. > > > Do you know what the different switching commands are? > > If you are referring to the usb_modeswitch parameters I use to switch the modem, > these are the ones present in the AnyData section of usb_modeswitch.conf: > > ===cut here=== > user@user-laptop:~/usb_modeswitch-0.9.7$ egrep -v '^#|^;|^$' usb_modeswitch.conf > > DefaultVendor= 0x05c6 > DefaultProduct= 0x1000 > TargetVendor= 0x16d5 > TargetProduct= 0x6502 > MessageEndpoint=0x08 > MessageContent="5553424312345678000000000000061b000000020000000000000000000000" That's definitely different from both the command in usb-storage and the command used by whatever user program tried to do the initial mode-switch. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html