Cingular AirCard 875
I will be taking a trip next week and I wanted to use my department’s WAP card for Internet access. I’m a linux kinda guy though and went on the search for the configuration. I found some notes relating to KDE and OpenSuSE, however I am running Ubuntu Feisty. Here are my modifications to get this card to work.
/etc/ppp/peers/cingular
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/cingular"
debug
/dev/ttyUSB0
115200
defaultroute
noipdefault
user "WAP@CINGULARGPRS.COM"
remotename cingular
ipparam cingular
usepeerdns
/etc/chatscripts/cingular
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
'' "ATZ" 'OK' 'AT+CGDCONT=1,"IP","ISP.CINGULAR"'
OK-AT-OK "ATDT*99***1#"
CONNECT \d\c
/etc/ppp/chapsecrets
"WAP@CINGULARGPRS.COM" * "cingular1"
After that, to establish the connection, open a terminal and type ‘pon cingular’. If anyone has better ways to perform this action, please let me know. I wish there was a GUI that could configure and manage the entire thing.








Thanks for the notes on the Air_Card_875, still trying to get it working with SuSE-10.2, username and password is posing a question, is that for “all” who use this seeing it has a SIMM card or just your example? Thanks
Hi Bill. I actually found that username and password on the Internet and it seemed to work. I say, give it a whirl. Let me know how it works out for you.
Finally! Someone else using an 875 in Ubuntu.
I’ve been wrestling with this all night and haven’t gotten it quite working yet.
Couple questions:
– what version of the sierra driver are you using? I downloaded the latest from their website (1.0.6) but that doesn’t seem to help
– are you using their PPP scripts or the ubuntu ones?
When I run pon, /var/log/messages shows:
May 16 20:04:05 lagom pppd[6422]: pppd 2.4.4 started by nicp, uid 1000
May 16 20:04:06 lagom chat[6426]: abort on (BUSY)
May 16 20:04:06 lagom chat[6426]: abort on (NO CARRIER)
May 16 20:04:06 lagom chat[6426]: abort on (VOICE)
May 16 20:04:06 lagom chat[6426]: abort on (NO DIALTONE)
May 16 20:04:06 lagom chat[6426]: abort on (NO DIAL TONE)
May 16 20:04:06 lagom chat[6426]: abort on (NO ANSWER)
May 16 20:04:06 lagom chat[6426]: abort on (DELAYED)
May 16 20:04:06 lagom chat[6426]: send (ATZ^M)
May 16 20:04:06 lagom chat[6426]: expect (OK)
May 16 20:04:06 lagom chat[6426]: ATZ^M^M
May 16 20:04:06 lagom chat[6426]: OK
May 16 20:04:06 lagom chat[6426]: — got it
May 16 20:04:06 lagom chat[6426]: send (AT+CGDCONT=1,”IP”,”ISP.CINGULAR”^M)
May 16 20:04:06 lagom chat[6426]: expect (OK)
May 16 20:04:06 lagom chat[6426]: ^M
May 16 20:04:06 lagom chat[6426]: AT+CGDCONT=1,”IP”,”ISP.CINGULAR”^M^M
May 16 20:04:06 lagom chat[6426]: OK
May 16 20:04:06 lagom chat[6426]: — got it
May 16 20:04:06 lagom chat[6426]: send (ATDT*99***1#^M)
May 16 20:04:07 lagom chat[6426]: expect (CONNECT)
May 16 20:04:07 lagom chat[6426]: ^M
May 16 20:04:07 lagom chat[6426]: ATDT*99***1#^M^M
May 16 20:04:07 lagom chat[6426]: CONNECT
May 16 20:04:07 lagom chat[6426]: — got it
May 16 20:04:07 lagom chat[6426]: send (\d)
May 16 20:04:08 lagom pppd[6422]: Serial connection established.
May 16 20:04:08 lagom pppd[6422]: Using interface ppp0
May 16 20:04:08 lagom pppd[6422]: Connect: ppp0 /dev/ttyUSB0
May 16 20:04:15 lagom pppd[6422]: Could not determine remote IP address: defaulting to 10.64.64.64
May 16 20:04:15 lagom pppd[6422]: local IP address 166.214.141.195
May 16 20:04:15 lagom pppd[6422]: remote IP address 10.64.64.64
May 16 20:04:15 lagom pppd[6422]: primary DNS address 10.11.12.13
May 16 20:04:15 lagom pppd[6422]: secondary DNS address 10.11.12.14
And my the light turns on showing connectivity, but no dice.
nicp@lagom:/etc/ppp/peers$ ping 10.11.12.13
PING 10.11.12.13 (10.11.12.13) 56(84) bytes of data.
— 10.11.12.13 ping statistics —
7 packets transmitted, 0 received, 100% packet loss, time 6011ms
Wondering if my routes are set wrong, are you using the built in Network Manager?
My ifconfig:
ppp0 Link encap:Point-to-Point Protocol
inet addr:166.214.141.195 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:118 (118.0 b) TX bytes:1105 (1.0 KiB)
Would appreciate any tips you have for debugging this, this is my last hurdle to having Feisty up to the same level of functionality as my old XP setup.
For some reason I can’t post my full message, so here’s an abbreviated version.
I’m trying to get this working as well and I think I’m close but still no dice.
1) Are you using the latest Sierra drivers? I believe that’s 1.0.6? I believe this part of my setup is actually working, it’s the dialing / establishing the connection that’s causing problems.
2) Do you have network manager installed? Part of me thinks this might be causing issues.
When I run pon, things seem to work correct, I get a ppp0 entry in my ifconfig, but if I disable my WiFi modem I’m unable to ping anything, including the gateway that ppp claims.
Any advice on trouble shooting this?
Hi Nic!
I’m not using the software from Sierra. I am using everything stock from Ubuntu Feisty. If I had to venture a guess, I think you are right on about the routes. I do not have my card with me today to check it out, but I’ll look at it soon. I am using Network Manager (NM). I have not found an easy way to use NM to manage the connection.
To check you route, run…
# sudo route -n
If you do not see a default route, I think we got the problem identified. Let me know what you find out.
Hi Kurt, thanks for the reply.
Here’s what route gives me after turning off my WiFi, plugging in the card doing a % pon cingular.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
The end of /var/log/messages shows:
May 20 20:58:27 lagom pppd[18816]: Could not determine remote IP address: defaulting to 10.64.64.64
May 20 20:58:27 lagom pppd[18816]: local IP address 166.214.220.40
May 20 20:58:27 lagom pppd[18816]: remote IP address 10.64.64.64
May 20 20:58:27 lagom pppd[18816]: primary DNS address 10.11.12.13
May 20 20:58:27 lagom pppd[18816]: secondary DNS address 10.11.12.14
So I tried adding the route manually via:
sudo route add default gw 10.64.64.64
But that not surprisingly doesn’t work. So it seems my main problem is that I’m not sure what IP SHOULD be my default route, or at least the 10.64.64.64 IP doesn’t work.
What is yours set to when you log in with your air card?
Update: I got things working, but it’s painful..
With the clue that my gateway IP was wrong, I did a bit of googling and came across this script:
http://quozl.linux.org.au/bp3-usb/usbsetup.pl.html
Which although not completely applicable, does contain a clever hack of using traceroute to derive the gateway. Once I used this and set the routes things worked ok.
However, I didn’t have DNS. This time though the IP’s reported in /var/log/messages were correct and editing /etc/resolv.conf got me going. A quick test at dslreports shows me getting 1.4Mb down, so things seem to be working quite well.
However that’s an awful lot of hackage going on. Any idea how to at least have my DNS servers set automatically? I could certainly hack some perl to do it, but there must be a better way.
Another quick update. Turns out the DNS IP’s aren’t always right either, things will connect ok and appear to be working (I can even derive a gateway via the traceroute hack) but the DNS entries reported are bogus. (usually 10.11.12.13 and 10.11.12.14)
I wrote a quick script to detect that and retry and with all those layers of hacks it seems to work reliably now.
Here’s the final script I use, use at your own risk etc..
#!/usr/bin/perl
#######################################################
#
# Set these to match your system.
#
#######################################################
$USER = “nicp”;
$IFCONFIG = “/sbin/ifconfig”;
$ROUTE= “/sbin/route”;
$TRACEROUTE= “/usr/bin/traceroute”;
##################################################
# Start things up
##################################################
print “Connecting to Cingular..”;
`sudo -u $USER poff`;
sleep 5;
`sudo -u $USER pon cingular`;
my $PPPDEV = “”;
$now = time();
while(time() – $now );
close(I);
if (($line) = grep /^ppp/, @lines) {
($PPPDEV) = $line =~ /^(ppp\d+)/m;
last;
}
sleep(1);
}
if (!$PPPDEV) {
print “Could not find ppp device. Aborted\n”;
Shutdown();
}
else {
print “Using PPP device $PPPDEV\n”;
}
##################################################
#
# Now try and determine our default route. This is
# tricky as the modem doesn’t tell us automatically
# so we use traceroute and discover for ourselves.
#
##################################################
my $GW = “”;
if (! open(I,”$TRACEROUTE -n -m 2 10.11.12.13 |”)) {
print “Cannot run [$cmd]\n”;
Shutdown();
}
while(my $line = ) {
print “$line\n”;
if ($line =~ /\d\s+?([\d\.]+)/) {
$GW = $1;
last;
}
}
close(I);
if ($GW) {
print “Found gateway $GW\n”;
}
else {
print “Could not determine gateway, traceroute failed\n”;
Shutdown();
}
# Delete the default gateway
$cmd = “$ROUTE del default gw 0.0.0.0″;
print “$cmd\n”;
if (system($cmd)) { print “Command failed\n”; }
# Add a host route to our new gateway
$cmd = “$ROUTE add -host $GW dev $PPPDEV”;
print “$cmd\n”;
if (system($cmd)) { print “Command failed\n”; }
# Set this as the default
$cmd = “$ROUTE add default gw $GW”;
print “$cmd\n”;
if (system($cmd)) { print “Command failed\n”; }
# Remove the fake GW
$cmd = “$ROUTE del -host 10.64.64.64″;
print “$cmd\n”;
if (system($cmd)) { print “Command failed\n”; }
##################################################
#
# Finally, determine the DNS servers from the
# output of /var/log/messages
#
##################################################
my $address = `tail -30 /var/log/messages | grep \”DNS address\”`;
$address =~ s/(.*) DNS address/nameserver/g;
if ($address =~ /10.11.12.13/){
print “\nInvalid Connection, try again.\n”;
Shutdown();
}
`echo “$address” > /etc/resolv.conf`;
print “Nameservers set to:\n”;
print $address;
print “\nFinished\n”;
exit 0;
sub Shutdown {
`poff cingular`;
exit 1;
}
Nick! You rock! Thank you for the follow-up. I’m sure everyone that comes across this post will find the information really valuable.
Thank you! You just saved me several hours!
cut&paste, ran pon.. I’m done.
Thanks for saving me a lot of grief getting this working!!! I copy and pasted the configs and they worked perfectly on Ubuntu Fiesty (Compaq nw8440 laptop).
Hi Kurt,
Excellent material! From what it looks like, this is THE place to get config info for using the AirCard 875 on Ubuntu.
I am having issues with the following error:
Could not determine remote IP address: defaulting to 10.64.64.64
However, I am getting a connection and valid local IP and DNS addresses (at least they match the ones I get when I use the card on XP).
Trying to resolve this, I found something that I thought would be of help at this link:
http://axion.physics.ubc.ca/ppp-linux.html#Other
Unfortunately, after making the suggested changes to the /etc/ppp/options file, I was still unable to ping anything.
I am using Ubuntu Feisty on a Dell Latitude D620, which has an external hard switch for disabling the WiFi, so it is pretty easy to enable/disable the WiFi when troubleshooting.
Any clue as to what I should look at next?
Great resource guys, unfortunately I had a similar, yet different problem (which MilitaryGeek seems to still be experiencing).
For me, I’m using Ubuntu Gutsy Gibbon with an AC875 Cingular card. The awesome thing about Gutsy is it will detect the card OUT OF THE BOX. I was excited after that happened
I used Sierra’s website instructions: http://www.sierrawireless.com/faq/ShowFAQ.aspx?ID=601 and tried the websites listed here, but I got the same error “Could not determine remote IP address: defaulting to 10.64.64.64″ I booted into windows, found that the remote PPP address was the same as the local, as well as the default gateway? That same ip address.
I tried to put it in statically, but it was literally changing almost every time. Then I executed the route commands to remove the default gateway, and add in the ppp and default gatway. And that worked. The problem was I had my wireless default route in there, and KPPP couldn’t (or wouldn’t) overwrite that. So for MilitaryGeek, maybe just remove your default route (using the command “route del default gw 0.0.0.0″) and when you run KPPP it should right the ship (or use the scripts on this page, two ways to skin a cat, etc).
So after a reboot with the wireless off, the routing table was clean. KPPP populated it with the 10.64.64.64 address, however, since the table was clean, I’m still able to get out to the internet. DNS addresses populated just fine.
Wow, it really worked for me the first time. THANKS … Koset
Josh, you ROCK! Thanks for the tip. I guess I just needed a nudge in the right direction.
Thanks again!
I tired this with a sierra MC8720 builtin module. Got the kernel driver working, it shows in the dmesg.
I tried these scripts but i hitting a brick wall. I need to enter a PIN for first. Currently i getting this with comgt (gcom)
gcom -d /dev/ttyUSB0 info
##### GlobeTrotter Configuration #####
Manufacturer Text: gcom 20:43:03 -> — Error Report –
gcom 20:43:03 -> —-> ^
gcom 20:43:03 -> Error @190, line 8, Could not write to COM device.
somebody can help me?
fixed it had to use /dev/ttyUSB2