Tether your Sonim XP3 phone with Linux

08-02-2011 | Remy van Elst

Table of Contents

This guide works for the Sonim XP3.20 Quest (Pro).
I also have an Android Phone which had an option to share the Internet Connection via USB and/or Wifi.
This was one of the features I missed on the Sonim. The phone itself is awesome, but that is not in the scope of this guide.
It is also tested with the newer Sonim XP1300 Core. (Yes, I have three Sonim phones). Please note that some providers not allow you to tether your phones internet connection, and this may cost you a lot of money if you go over your monthly bundle. Also you need to have internet setup on your phone already. This guide was written and tested on Arch Linux with Kernel 2.6.36-ARCH, but I think it will be usable on more distributions.
First install wvdial:

pacman -S wvdial

Then plugin you Sonim and see on which tty it is detected:

dmesg | grep tty 

You need to see something like this:

cdc_acm 5-1:1.1: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
scsi 8:0:0:0: Direct-Access     Philips  Dev. 0 LUN 0     1.0  PQ: 0 ANSI: 0 

Now we have the tty (/dev/ttyACM0). This is all we need for the wvdial.conf file:

sudo nano /etc/wvdial.conf 

Paste this in there:

[Dialer Defaults]
Modem = /dev/ttyACM0
Modem Type = Analog Modem
ISDN = 0
Baud = 115200
Username = tmobile
Password = tmobile
Init1 = ATZ
Init2 = AT&&F E1 V1 X1 &&D2 &&C1 S0=0
Dial Attempts = 1

[Dialer internet]
Phone = *99***1#
Stupid Mode = 1
Init3 = AT+CGDCONT=1,"IP","internet" 

My provider is T-Mobile NL, and their APN is "internet", with login "tmobile" and password: "tmobile".

Change any of these values to your needs, look for them on your providers website. Now save with CTRL+O and quit with CTRL+X, and see if it works:

sudo wvdial internet 


[remy@solaris3 ~]$ sudo wvdial internet
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
--> Sending: AT&&F E1 V1 X1 &&D2 &&C1 S0=0
AT&&F E1 V1 X1 &&D2 &&C1 S0=0
--> Sending: AT+CGDCONT=1,"IP","internet"
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
~[7f]}#@!}!}!} }2}"}&&} }*} } }#}$@#}'}"}(}"U[03]~
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Thu Jan 13 23:20:32 2012
--> Pid of pppd: 14319
--> Using interface ppp0
--> local  IP address
--> remote IP address
--> primary   DNS address
--> secondary DNS address 

Bazinga! You can now surf via your Sonim phone via your 3g / 2g / egde or GSM connection. (Check via /sbin/ifconfig).

Tags: arch-linux, modem, ppp, sonim, sonim-xp3, tether, wvdial,