Tuesday, May 5, 2009

gnokii and Nokia 3110c

Ever wondered how to use your phone with GNU/Linux as you use it with Nokia Mobile Suite in Windows ? Ever wanted to backup contact books, appoinments, sms and all other personal things the easy way in a GNU/Linux environment ?

If you do wonder, friend, you are foreign to gnokii.
gnokii provides tools and a user space driver for use with mobile phones under various operating systems operating systems. It allows you to communicate with the phone over a serial cable, usb, IR or even bluetooth. gnokii also provides the functionality to manipulate the phone over this connection.

Why did I chose Nokia 3110c ?
The primary reason is that it is the phone that I own. Another reason is that this particular phone uses a DKU-2 cable. DKU-2 is nothing other than a fancy name for the common USB to mini-USB cable ! I was interested in USB devices working with GNU/Linux, I guess.

Hoping that you are competant enough to install gnokii either from source or from your distro's custom repositories, let us proceed to the juicy part. As with all good things free, the first thing that you will need on a fresh installation of gnokii is a good configuration file, aptly named .gnokiirc

Fire up your favorite text editor (mine is Vim) and type in the configuration details.
Here's how my config file looks like

port = /dev/ttyACM0
model = 3110c
initlength = default
connection = dku2libusb
use_locking = yes
serial_baudrate = 19200
smsc_timeout = 10
bindir = /usr/local/sbin/

The port determines which port the PC uses for connecting with the phone. On connecting the phone with the PC and selecting "Nokia Mode" a new node is created by the system in /dev. You can use the output of dmesg command to determine the port.
On issuing the dmesg command on a terminal, you will see an output similar to

[ 1671.313624] cdc_acm 3-1:1.1: ttyACM0: USB ACM device

Use the port value obtained thus. But normally, as I have seen in a number of systems, the default port will be /dev/ttyACM0.

Next up is the model name which is 3110c in this case.

initlength controls the number of characters sent to the phone during initialisation. Either "default" or a positive integer value is allowed. If it seems like the connection takes a long time, you can retry, entering a smaller positive value for initlength. But in most cases the value "default" will suffice.

connection determines the type of connection. With DKU-2 cable and the libusb driver, use a value of dku2libusb. It will work fine.

Leave the other options as they are seen. The serial_baudrate determines the speed at which serial communication takes place. The use_locking allows a type of flagging facility, disabling other operations while one is taking place. The smsc_timeout option determines the time to wait before a SMS send via the PC is acknowledged by the phone. The bindir is the path to various gnokiid libraries. For a default installation, the libraries are found at /usr/local/sbin. Change the value if you chose to install the libraries elsewhere.

With gnokii installed and .gnokiirc setup, connect the phone to the PC. When asked to choose the mode in the phone, choose "Nokia Mode".

How do you verify whether your phone is properly detected ? Open up a terminal and issue the following command

gnokii --identify
You will see the list of messages being sent back and forth between the PC and the phone

Received model RM-237
Manufacturer : Nokia
Found model "RM-237"
Model : 3110c
Product name : RM-237
Revision : V 07.21
Serial device: closing device

This communication gives you the phone model, your IMEI number and the firmaware version you are using. If they are showing up correctly, you have successfully connected your phone with gnokii.

There are a lot of manipulations possible with gnokii. You can send sms, make voice calls etc. With some clever scripts and imagination, you can turn your phone into a remote management center !

Labels: , ,


Post a Comment

Subscribe to Post Comments [Atom]

<< Home