Re: Mobile broadband connects to wrong USB device



Hi Dan

--On Wednesday, January 14, 2009 18:29:51 -0500 Dan Williams <dcbw redhat com> wrote:
> On Tue, 2009-01-06 at 16:03 +0000, Rick Jones wrote:
> >
> > a) it requires an initial <CR> otherwise it fails to see a clean AT
> > command and doesn't respond - resulting in an init. timeout.
>
> With this, my Sierra 860 doesn't respond and times out.  Were you ever
> able to find out from the MobileStream guys why this might be required?
> It might also be something that NetworkManager isn't doing when setting
> up the serial port.  Does USBModem need specific serial port settings?

I didn't get much response from MobileStream, and also the problem doesn't happen on Windows :(. It seems to be some interaction with the Linux USB/serial driver, because I can prove the problem simply by connecting to the modem with telnet to /dev/USB0. The first command after connection is ignored. I thought initially that it needed to receive 2 AT commands before it would respond, but in fact it just needs \r before the first AT. I suspect that it picks up a bogus byte or two when the connection is opened, and thus the first AT is not seen as starting a new line, and hence ignored.

> > b) its initial CREG state is 1, meaning that NM gets incorrect
> > responses to its CREG queries later in the conversation. It requires
> > +CREG=0 in the init string.
>
> With this also, my Sierra 860 doesn't respond and times out.

Hmmm,  that's a blow, I would have thought that a modem that responds to CREG queries would allow +CREG=n.

> > By hacking these fixes into the init string it works fine. It's a soft
> > modem running in a Palm Treo handheld: USBModem by MobileStream. At
> > least one other poster on this list is using (or trying to) the same
> > software.
>
> What's the init string you currently use?  Long ago you mentioned:
>
> AT&F\rATV1 X4 &C1 +CREG=0
>
> Is that still correct?  Or can you move the AT&F after the \r?

I've changed it to \rAT&F V1 X4 &C1 +CREG=0.         It will also accept E0 and +FCLASS=0, but I overwrote those because I tweaked the embedded string in binary and couldn't extend it - those settings happen to be the defaults in USBModem.

> > Regarding ATZ v. AT&F, I believe the latter should always be
> > supported, as it is a full reset. ATZ restores to settings saved using
> > AT&W, but if that's never been used it's the same as AT&F. If AT&W is
> > not supported, then ATZ may not be either; and if you don't use AT&W
> > to save settings (does NM?) then there is no reason to use ATZ.
>
> The Sierra 860 also doesn't like AT&F *at all*.  Whee!  If we can put
> together an init string that works for now, we can add it to the bottom
> of the list.

USBModem works with ATZ or AT&F, but I noticed a post from someone else saying their modem didn't like ATZ. I was recalling my memories of programming "real" modems, where AT&F was always the full "factory reset", and hence the only thing that could be guaranteed to put the modem into a known state.

This is always the problem - somewhere along the line someone re-interprets the "standard", so it's never quite as standard as we'd all like :-/.

Maybe it's possible to have an init string that's close to universal at the moment, but I think everything said above illustrates that it's probably impossible to get a single string that works (and will work) for everything. To deal with the security issue, how about a configuration file writable only by root, containing a list of possible of init strings? This would be shipped with a selection of strings to cater for currently known variants, which the user can select from. In the case of a user having an even more oddball device, with tech knowledge and admin privilege they can add other entry.

Getting closer ....

Cheers, Rick


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