Re: CDC-ACM driver can't communicate with Windows CE Satellite Phone - Could be an MS Active Sync issue ?

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

 



Have confirmed now that the device responds correctly to lsusb  when
picocom is "hung".

Should have added that I saw some XactErrs when I ran picocom on
Openwrt  since I was able to build the openwrt kernel with DEBUG
defined in cdc-acm and in the kernel.

I also changed ehci.h to set the XacErr retry limit to 1 and rebuilt
the kernel  - but that did not fix the hung problem and lack of
response.

Previous emails from Alan Stern on the XactErrs have indicated the
possibility of a  hardware/software error in the usb device
controller.  All I can say is that the same behaviour has been seen in
2 phones - of course it is possible that the mfgr's implementation is
faulty and just happens to work against Windows hosts.


Once I am successful getting the same debug capability with my ubuntu
kernel I will see if the  Xacterrs are reported. That might explain
why picocom is hung

Regards
Ashok

On Wed, May 30, 2012 at 1:58 PM, Ashok Rao <ashok@xxxxxxxxxxxxxx> wrote:
> Oliver:
> I've spent the last week hitting away at this and chasing various red
> herrings and here is a summary.
>
> 1. Proved that Phone does work in Bluetooth DUN mode with Ubuntu -
> this is not related to my original question but here just as a FYI
>
> 2. Moved to doing all the testing on Ubuntu  11.04 to remove any
> Openwrt idiosyncrasies.  However I can't seem to get verbose messages
> after rebuilding the  ubuntu 2.6.38-15 kernel with CONFIG_USB_DEBUG. I
> also had some issues rebuilding the cdc-acm.c after I defined DEBUG
> within it.   I will try  line6_USB_DEBUG   later today and see if that
> helps.
>
> 3. Tested a Samsung Windows Mobile (2008 version  as opposed to  the
> satellite phone which has WM 2003) with ubuntu. It worked fine. Did a
> wireshark capture and compared to Ubuntu wireshark of the satphone.
> In both cases once picocom is started  - the host seems to do about 16
> bulk transfers to an IN endpoint (0x84 for  the satphone). See frame
> 2568  to 2583  in the pastebin link below.  Since it is a IN endpoint
> there is no response  - that seems logical based on my limited
> understanding of how USB works.  Not sure why picocom would want to
> communicate with a wrong endpoint in both phones.
>
> Then when I type an A,  a bulk transfer to  the OUT endpoint 0x05 is
> made by the host (see last frame in the pastebin).  A late version of
> Wireshark labels that as a malformed Ethernet packet - but the ubuntu
> wireshark which is older does not call that out.  And then there is no
> more communications after that for the Satphone.  For the Samsung
> phone - the AT commands work fine and an OK response is received.
> Also tried microcom terminal emulation with the satphone and found
> that microcom was able to send the whole AT command but there was no
> OK response from the satphone.
>
>  ubuntu wireshark : http://pastebin.com/bN3mkrmT
> Windows XP: http://pastebin.com/4aTU51FN
>
> 5. After some fiddling around with the satphone and reconnecting the
> phone to the host and starting picocom I found that suddenly the phone
> is sending CREG messages (unsolicitated registration status messages)
> to the picocom. These messages are coming from the right IN endpoint
> 0x84 - but still the same behavior when I try to type an AT command
>
> 6.  One difference between the Samsung and the Satphone is that the
> Samsung is using the same endpoint value (2) for bi-directional
> communications  - with 0x82 as the IN endpoint and 0x2 as the OUT
> endpoint.
> Not sure why it would make a difference since the device descriptor is
> right in both phones and should be interpreted fine by the usbcore and
> driver on ubuntu.
>
> 7. I am speculating that the barrage of packets to the IN endpoint
> caused the Satphone to freeze somehow and not accept the packets on
> the right OUT endpoint.  I have read your earlier response and will
> try lsusb in this state and see if it responds.
>
>  ubuntu wireshark : http://pastebin.com/bN3mkrmT
> Windows XP: http://pastebin.com/4aTU51FN
>
> Ashok
>
> On Fri, May 25, 2012 at 4:55 AM, Oliver Neukum <oliver@xxxxxxxxxx> wrote:
>>
>> Am Freitag, 25. Mai 2012, 02:13:30 schrieb Ashok Rao:
>> > cable is inserted. Then more data is exchanged when I start picocom
>> > and it does the tty initialization.  However when I type AT and press
>> > return I see that the endpoint changes and a EINPROGRESS message.
>>
>> In what respect does the endpoint change?
>> -EINPROGRESS is normal.
>>
>> > Nothing after that and picocom is hung. I have to actually kill
>> > picocom and the terminal and restart.
>>
>> Does the phone answer to lsusb in that state?
>>
>> > I will post the wireshark capture soon.
>>
>> Good.
>>
>> > I am planning to compare the wireshark capture in linux to the one on
>> > Windows XP and see if that gives a clue.
>>
>> Good idea.
>>
>>        Regards
>>                Oliver
--
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