How to do mobile broadband from command line

Eric Johnson eric at minutekey.com
Thu Mar 20 14:17:36 PDT 2014


So I was able to connect to both Verizon and Sprint using PPP and wvDial.
I did this using Sprint's instructions from
http://www4.sprint.com/pcsbusiness/downloads/Sprint_Mobile_Broadband_Setup_Guide.pdf,
which boiled down to
changing /etc/wvdial.conf to:

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = USB Modem
Phone = #777
Username = ''
Password = ''
Carrier Check = no
Stupid Mode = 1

and then wvDialing....

[eric at linux-vn1z ~/modem]$ sudo wvdial
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Thu Mar 13 17:37:02 2014
--> Pid of pppd: 28332
--> Using interface ppp0
--> pppd: �[7f]
--> pppd: �[7f]
--> pppd: �[7f]
--> local  IP address 184.232.199.246
--> pppd: �[7f]
--> remote IP address 66.1.12.193
--> pppd: �[7f]
--> primary   DNS address 66.1.13.7
--> pppd: �[7f]
--> secondary DNS address 68.29.1.7
--> pppd: �[7f]
--> Script /etc/ppp/ip-up run successful
--> Default route Ok.
--> Nameserver (DNS) Ok.
--> Connected... Press Ctrl-C to disconnect
--> pppd: �[7f]

I am seeing 2 occasional issues, 1 minor, the other major:

1. Sometimes the DNS fails on PPP connection.  I've set
/etc/sysconfig/network/config
setting NETCONFIG_DNS_STATIC_SERVERS="8.8.8.8 4.4.4.4", to fall back on
Google's DNS.

[eric at linux-vn1z ~]$ sudo wvdial
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT#777
--> Waiting for carrier.
ATDT#777
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Fri Mar 14 16:12:18 2014
--> Pid of pppd: 1993
--> Using interface ppp0
--> pppd: p[7f]
--> pppd: p[7f]
--> local  IP address 75.220.118.4
--> pppd: p[7f]
--> remote IP address 66.174.192.64
--> pppd: p[7f]
--> primary   DNS address 198.224.160.135
--> pppd: p[7f]
--> secondary DNS address 198.224.164.135
--> pppd: p[7f]
--> Script /etc/ppp/ip-up run successful
--> Default route Ok.

*--> warning, no nameserver found `/etc/resolv.conf`--> Nameserver (DNS)
failure, the connection may not work.*
--> Connected... Press Ctrl-C to disconnect
--> pppd: p[7f]


2.  "Modem not responding" error, it happens pretty often, maybe 30-40% of
the time.  If I retry 2-4 times it usually connects.

[eric at linux-vn1z ~]$ sudo wvdial
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
--> Sending: ATQ0
--> Re-Sending: ATZ
*--> Modem not responding.*

The "Modem not responding" error is much more important to me to fix, as I
can always work around the DNS issue.  Any insights are appreciated.  Or if
this is normal on these networks, that would be good to know too.
Thanks!




On Thu, Mar 13, 2014 at 5:14 PM, Eric Johnson <eric at minutekey.com> wrote:

> Hi Aleksander,
> Wow, that python script sounds awesome, if you have a chance to finish
> it.
>
> I'm going to try to get pppd going, next.  Then Verizon and DHCP or static
> IP I'm guessing.
> Thank!
> Eric
>
>
> On Thu, Mar 13, 2014 at 4:31 PM, Aleksander Morgado <
> aleksander at aleksander.es> wrote:
>
>> Hey!
>>
>> On Thu, Mar 13, 2014 at 6:28 PM, Eric Johnson <eric at minutekey.com> wrote:
>> > [eric at linux-vn1z ~]$ mmcli -b 0
>> > Bearer '/org/freedesktop/ModemManager1/Bearer/0'
>> >   -------------------------
>> >   Status             |   connected: 'yes'
>> >                      |   suspended: 'no'
>> >                      |   interface: 'ttyUSB0'
>> >                      |  IP timeout: '20'
>> >   -------------------------
>> >   Properties         |         apn: 'none'
>> >                      |     roaming: 'allowed'
>> >                      |     IP type: 'none'
>> >                      |        user: 'none'
>> >                      |    password: 'none'
>> >                      |      number: '#777'
>> >                      | Rm protocol: 'unknown'
>> >   -------------------------
>> >   IPv4 configuration |   method: 'ppp'
>> >   -------------------------
>> >   IPv6 configuration |   method: 'unknown'
>> >
>> > [eric at linux-vn1z ~]$ mmcli -m 0 --list-bearers
>> >
>> > Found 1 bearers:
>> >
>> >     /org/freedesktop/ModemManager1/Bearer/0
>> >
>> > [eric at linux-vn1z ~]$ wvdialconf
>> > Editing `/etc/wvdial.conf'.
>> >
>> > Scanning your serial ports for a modem.
>>
>> Everything went ok until this point. So, mmcli lets you get the port
>> in connected state; that's how far ModemManager goes. Still, there is
>> another step that needs to be done, which is the IP setup in the data
>> port (which would usually be done by e.g. NetworkManager). There
>> currently are three main cases, and what you need to look at is the
>> Bearer properties that you get when MM tells you you're connected
>> (i.e. the "mmcli -b 0" output):
>>
>> Case 1) tty port
>> If the bearer tells you to use a tty as data port and use PPP, you
>> need to launch pppd on that tty, passing APN auth details among other
>> things.
>>
>> Case 2) net port, dhcp
>> If the bearer tells you to use a net port as data port and use DHCP,
>> you need to bring the interface up and launch a DHCP client in that
>> interface.
>>
>> Case 3) net port, static
>> If the bearer tells you to use a net port as data port and 'static'
>> config, it will also give you what IP address configuration (IP,
>> netmask..) you need to configure in the net port. So you'll need to
>> bring the interface up, and then setup those details in the interface.
>>
>> Interestingly, I was bored last Monday and started to write a python
>> app (called it 'mm-online', I'm no good inventing new names) which
>> will do exactly all that (just not using mmcli); it will use
>> libmm-glib via GObject-introspection to call SimpleConnect() and then
>> (this not yet done) prepare the connection following the steps I said
>> earlier. This would allow a 'standalone' operation of ModemManager
>> (i.e. without a higher level connection manager like NetworkManager).
>>
>>
>> --
>> Aleksander
>> https://aleksander.es
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/modemmanager-devel/attachments/20140320/1651e956/attachment.html>


More information about the ModemManager-devel mailing list