Re: [Bug 13354] Entry in "unusual_devs" keeps modem device from switching

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux