Bug 547513

Summary: Latest ModemManager breaks Verizon CDMA w/ Sierra card
Product: [Fedora] Fedora Reporter: Mike Radford <mike.radford>
Component: ModemManagerAssignee: Dan Williams <dcbw>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: low    
Version: 12CC: dcbw
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-04-06 01:39:39 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mike Radford 2009-12-14 20:37:09 UTC
Description of problem:

After Upgrading from:

ModemManager-0.2-3.20090826.fc12.x86_64 to
ModemManager-0.2-4.20091105.fc12.x86_64

I can no longer connect to Verizon Wireless CDMA using my Sierra Wireless MC5725 Modem.


Version-Release number of selected component (if applicable):

ModemManager-0.2-4.20091105.fc12.x86_64


How reproducible:

100%

Steps to Reproduce:
1. Run latest FC12 kernel (2.6.31.6-166.fc12.x86_64)
2. In Network Manager tray, choose "Auto CDMA network Connection"
3. Fails to connect.

Optionally:

4. Downgrade to ModemManager-0.2-3.20090826.fc12.x86_64
5. Reboot.
6. Connects perfectly.

Comment 1 Dan Williams 2009-12-14 22:48:39 UTC
http://koji.fedoraproject.org/koji/taskinfo?taskID=1871955

should do the trick.

Comment 2 Fedora Update System 2009-12-14 22:49:50 UTC
NetworkManager-0.7.997-2.git20091214.fc12,ModemManager-0.2.997-2.git20091214.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/NetworkManager-0.7.997-2.git20091214.fc12,ModemManager-0.2.997-2.git20091214.fc12

Comment 3 Fedora Update System 2009-12-16 01:09:10 UTC
NetworkManager-0.7.997-2.git20091214.fc12, ModemManager-0.2.997-2.git20091214.fc12 has been pushed to the Fedora 12 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update NetworkManager ModemManager'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2009-13165

Comment 4 Dan Williams 2009-12-16 16:36:30 UTC
Ok, if the update didn't work for whatever reason, do the following please (as root):

1) service NetworkManager stop
2) killall -TERM modem-manager
3) modem-manager --debug
4) service NetworkManager start  (in a new terminal of course)
5) reproduce the problem

and then paste the output from modem-manager into this bug.  THanks!

Comment 5 Mike Radford 2009-12-16 16:48:19 UTC
OK, First of all, this is the debug output when things work:

** (modem-manager:10909): WARNING **: Your CDMA modem does not support +CMEE command
** (modem-manager:10909): DEBUG: (ttyUSB0): --> 'ATDT#777<CR>'
** (modem-manager:10909): DEBUG: (ttyUSB0): <-- '<CR><LF>CONNECT<CR><LF>'


That's it.

Here's the debug with the latest ModemManager.x86_64 0:0.2.997-2.git20091214.fc12:

** (modem-manager:10643): WARNING **: Your CDMA modem does not support +CMEE command
** Message: Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabling -> enabled)
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS CDMA<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:10643): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'
** Message: Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabled -> disabling)
** Message: (ttyUSB0) closing serial device...
** Message: Modem /org/freedesktop/ModemManager/Modems/0: state changed (disabling -> disabled)
^C** Message: Caught signal 2, shutting down...

Hope this helps!

Comment 6 Dan Williams 2009-12-16 18:13:28 UTC
Yeah, it does:

** (modem-manager:10643): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS
Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam:
0<CR><LF>Temp: 44  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT
acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision:
A<CR><LF><CR><LF>OK<CR><LF>'

this indicates that the modem isn't registered with the network and thus has no service.

There's one more thing I can think of to try; do the errors happen after a suspend/hibernate or always?

Comment 7 Mike Radford 2009-12-16 18:50:49 UTC
No this particular problem happens even on a fresh boot.

Incidentally, I do have problems after suspend/resume (which started in FC11 I believe) but I currently work around that by cycling the RF kill switch.

Comment 8 Dan Williams 2009-12-16 19:33:50 UTC
Any chance you can try the followign command after it fails with minicom on the same serial port that MM was using for communication (wait until MM says it has closed the port):

at!pcstate?

it could be that the modem needs an unconditional power-up using that custom Sierra command before it'll do anything.

Comment 9 Dan Williams 2009-12-16 22:07:17 UTC
That should be just "at!pcstate" without the ? actually.

Comment 10 Mike Radford 2009-12-16 22:15:35 UTC
Sure no problem:

OK
at!pcstate?
!PCSTATE: 1

OK

Comment 11 Mike Radford 2009-12-16 22:16:18 UTC
Sorry, just saw your follow up:

at!pcstate
OK

Comment 12 Dan Williams 2009-12-16 22:25:02 UTC
(In reply to comment #10)
> Sure no problem:
> 
> OK
> at!pcstate?
> !PCSTATE: 1
> 
> OK  

This is what you got when the problem was appearing?

I've just pushed Sierra CDMA power control to ModemManager master (30a2a202073bb7c9ac56326fff01517850894774) which can help with some cases of this problem, but if at!status doesn't report that the modem has registered /and/ at!pcstate=1, then there's no way that you're registered yet and there's not a lot that ModemManager can do here :(

What we could do is periodically poll at!status to get registration status and signal strength and show that in the UI to let you know when it's likely to be able to connect or not, which is what we're working towards.  It's actually possible right now already, just no UI for it.

Comment 13 Mike Radford 2009-12-16 22:28:49 UTC
Strange that at!pcstate never reports anything. FYI, issuing at!pcstate=0 and at!pcstate=1 does appear to turn the radio off and on (based on the actual led).

at!pcstate=0
OK
at!pcstate
OK
at!pcstate=1
OK
at!pcstate
OK

Comment 14 Mike Radford 2009-12-16 22:31:55 UTC
I love the idea of power control. Would it make sense to just always issue at!pcstate=1 before trying to connect, and at!pcstate=0 after disconnecting?

Clearly the sierra driver is not reporting the state. Is this a bug in sierra?

Comment 15 Mike Radford 2009-12-16 22:43:38 UTC
Dan,

From sierra's document:

http://sierrawireless.custhelp.com/app/answers/detail/a_id/622/kw/pcstate/r_id/166

it seems that at+pcinfo? is the way to go (for my card at least):

at!pcstate=0
OK
at!pcinfo?
State: 0 (LPM)
LPM force flags - W_DISABLE:0 User:1 Temp:0 Volt:0
W_DISABLE: 0
Poweroff enabled: 1
LPM Persistent: 1 

OK
at!pcstate=1
OK
at!pcinfo?
State: 1 (ONLINE)
LPM force flags - W_DISABLE:0 User:0 Temp:0 Volt:0
W_DISABLE: 0
Poweroff enabled: 1
LPM Persistent: 0 

What do you think?

Comment 16 Mike Radford 2009-12-16 22:44:34 UTC
In case this helps too:

ati5
Manufacturer: Sierra Wireless, Inc.
Model: MC5725 Rev 2.0 (2)
Revision: p2006001,51098 [Apr 26 2007 09:57:49]
APPL: SWI6800_FP.00.60.01 2007/04/26 11:14:44
BOOT: SWI6800_FP.00.60.01 2007/04/26 11:14:44
QCOM: SWI6800_FP.00.60.01 2007/04/26 11:14:44
SWID: SWI6800_FP.00.60.01 2007/04/26 11:14:44 [LENOVO_00]
USBD: SWI6800_FP.00.60.01 2007/04/26 11:14:44 [LENOVO_00]
USB VID: 0x1199 PID: 0x0220
ESN: 0x605B5DAB
+GCAP: +CIS707-A, CIS-856, CIS-856-A, +MS, +ES, +DS, +FCLASS

Comment 17 Dan Williams 2009-12-17 01:32:52 UTC
Yeah, the commit I reference does exactly that; pcstate=1 unconditionally when enabling the device.  That *may* fix the problem, but some of your logs indicated that the device did think it was in pcstate=1 already but was not registered.  In that case you just have to wait or move to better signal coverage.

Comment 18 Dan Williams 2009-12-17 01:56:24 UTC
Mike, please give this build a shot, which has the power-up/power-down functionality for sierra CDMA cards:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1876376

Let me know how it does.

Comment 19 Mike Radford 2009-12-17 02:24:04 UTC
> In that case you just have to wait or move to better signal coverage.
  
I'll give that built a shot. I think its worth noting that when my card is reporting "Modem has NOT registered", I have adequate signal and can connect just fine with the older mm version). Perhaps its a useless field to check.

Comment 20 Mike Radford 2009-12-17 02:31:35 UTC
That build doesn't work for me. I get:

** (modem-manager:12058): DEBUG: (ttyUSB0): --> 'AT+CAD?<CR>'
** (modem-manager:12058): DEBUG: (ttyUSB0): <-- '<CR><LF>1<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:12058): DEBUG: (ttyUSB0): --> 'AT+CSS?<CR>'
** (modem-manager:12058): DEBUG: (ttyUSB0): <-- '<CR><LF>1, B , 0<CR><LF><CR><LF>OK<CR><LF>'
** (modem-manager:12058): DEBUG: (ttyUSB0): --> 'AT!STATUS<CR>'
** (modem-manager:12058): DEBUG: (ttyUSB0): <-- '<CR><LF>Current band: PCS Sleep<CR><LF>Current channel: 750<CR><LF>SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0<CR><LF>Temp: 31  State: 0  Sys Mode: HDR<CR><LF>Pilot NOT acquired<CR><LF>Modem has NOT registered<CR><LF>HDR Revision: A<CR><LF><CR><LF>OK<CR><LF>'


over and over. Again, I reverted mm and successfully connected:


* (modem-manager:12293): WARNING **: Your CDMA modem does not support +CMEE command
** (modem-manager:12293): DEBUG: (ttyUSB0): --> 'ATDT#777<CR>'
** (modem-manager:12293): DEBUG: (ttyUSB0): <-- '<CR><LF>CONNECT<CR><LF>'

This seems to confirm to me that "Modem has NOT registered" is not an accurate gauge of whether it can connect.

Comment 21 Mike Radford 2009-12-17 02:36:11 UTC
What do you think of using at+pcinfo? and inspecting "State"?

From Sierra site:

> To confirm that the radio on the AirCard modem is powered on or online, use at+pcinfo?

Comment 22 Dan Williams 2009-12-17 16:34:43 UTC
That doesn't really work because the modem isn't actually registered when that command returns ONLINE:

at!pcinfo                                                                       
State: 1 (ONLINE)                                                               
LPM force flags - W_DISABLE:0 User:0 Temp:0 Volt:0                              
W_DISABLE: 0                                                                    
Poweroff enabled: 1                                                             
LPM Persistent: 0                                                               
                                                                                
OK                                                                              
at+cad?                                                                         
0                                                                               

(I don't have any antennas connected here so it couldn't possibly have registered, plus +CAD isn't reporting service).  Guess I'll have to ask Sierra about this.

Comment 23 Mike Radford 2009-12-17 16:53:41 UTC
But equally, mine shows "NOT registered" when it is clearly able to connect. Its for this reason I see no meaning in the message.

It seems that "State: 1 (ONLINE)" is a statement of the power mode, not about the signal. I wasn't familiar with at+cad, but for me it works like this:


at!status
Current band: PCS Sleep
Current channel: 750
SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0
Temp: 49  State: 0  Sys Mode: HDR
Pilot NOT acquired
Modem has NOT registered
HDR Revision: A

OK
at+cad
1

OK
at!pcstate=0
OK
at+cad
0

OK
at!status
Current band: PCS Sleep
Current channel: 750
SID: 0  NID: 0  1xRoam: 0 HDRRoam: 0
Temp: 49  State: 0  Sys Mode: NO SRV
Pilot NOT acquired
Modem has NOT registered
HDR Revision: A

OK

Comment 24 Dan Williams 2009-12-17 17:16:39 UTC
So here's what I'll do...  Looks like we can use Sys Mode on these cards; mine operates as expected even if the pilot/carrier isn't on.  ie when Sys Mode is NO SRV then we'll assume no service, otherwise we'll assume service.  I have two cards I can test with (a 580 and a 5752) so we'll try that.

Comment 25 Mike Radford 2009-12-17 17:40:51 UTC
FYI, I was just in a parking garage (only place I could guarantee no signal - I have no external antenna). at+cad? accurately reported whether or not I had a signal.

Comment 26 Dan Williams 2009-12-17 17:54:07 UTC
(In reply to comment #25)
> FYI, I was just in a parking garage (only place I could guarantee no signal - I
> have no external antenna). at+cad? accurately reported whether or not I had a
> signal.  

Yeah, unfortunately it doesn't for all modems :(  Sierra's firmware is usually pretty good about it though, so we have additional avenues of attack here to fix this issue.

Comment 27 Dan Williams 2009-12-17 22:15:01 UTC
Sierra AirCard 580 doesn't report "Sys Mode" though (instead it reports "Scan Mode" whatever that is) so we'll just do a little dance here to make stuff work.

Comment 28 Fedora Update System 2009-12-18 04:27:07 UTC
ModemManager-0.2.997-3.git20091216.fc12, NetworkManager-0.7.997-2.git20091214.fc12 has been pushed to the Fedora 12 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update ModemManager NetworkManager'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2009-13165

Comment 29 Dan Williams 2009-12-19 08:22:38 UTC
New build for you to test, which is also part of FEDORA-2009-13165:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1880710

Let me know.

Comment 30 Mike Radford 2009-12-19 16:52:54 UTC
That worked great! Power goes on before connecting and turns off after disconnecting.

Comment 31 Dan Williams 2010-04-06 01:39:39 UTC
Long since fixed, closing.