Nokia E-63 on Linux

Recently I bought a Nokia E-63 Symbian Series 60 3rd edition smartphone. It looks similar to the Blackberry smartphones. It has got QWERTY keypad, WiFi, 2MP Camera, 3G and Bluetooth. I have been using Nokia 6300 for a long time; and a month ago it fell down and the panel got broken. After the fall it had a poor voice clarity and I was thinking of taking a new phone. Finally I decided to take a QWERTY handset for the sole purpose of Social Networking and ended up with Nokia E-63 which is the cheapest QWERTY handset with WiFi.
The biggest challenge of moving from Nokia 6300 to E-63 was to transfer all the contacts. As I had more than 300 entries in my phonebook, copying it to the SIM wasn’t a good idea. So I installed Gnokii on Ubuntu and backed up all the contacts from 6300 into a vcf file issuing the following command

gnokii --getphonebook ME 1 end --vcard > myphonebook.vcf

Then I copied myphonebook.vcf to E-63 memory card’s Other/Contacts directory using the USB data cable shipped with the handset. The “Copy from Memory Card” option in the Handsets wasn’t woking for the above vCard file which is containing all the contacts. As I opened that file in File Manager, it was showing only the first contact. That means it reads only one contact entry from a single vcf file. So I wrote a Python script to split myphonebook.vcf into single contact vcf files.

#! /usr/bin/env python
"""
File: split_vcf.py
A Python Script to split vcf files generated by gnokii into multiple
contacts so that most of the Nokia mobiles can restore it.
"""
 
import sys
import os
 
def split():
    if len(sys.argv) < 2:
        print 'Specify vcf file'
        sys.exit()
 
    gnokii_vcf = os.path.abspath(sys.argv[1])
    if not os.path.exists(os.path.join(
                            os.path.dirname(gnokii_vcf), 'contacts')):
        os.mkdir(os.path.join(os.path.dirname(gnokii_vcf), 'contacts'))
 
    vcf = []
    number = 0
    for line in open(gnokii_vcf, 'r').readlines():
        if line.startswith('\n') or line.startswith('\r\n'):
            continue
        elif line.startswith('END'):
            vcf.append(line)
            print 'Writing contact number', number
            contact = open(os.path.join(os.path.dirname(gnokii_vcf),
                            'contacts', str(number) + '.vcf'), 'w')
            contact.writelines(vcf)
            contact.close()
            number += 1
            vcf = []
        else:
            vcf.append(line)
 
def copy():
    gnokii_vcf = os.path.abspath(sys.argv[1])
    for contact in os.listdir(os.path.dirname(gnokii_vcf)):
        print 'Copying %s to Phone' % contact
        os.system('gnokii --writephonebook --vcard <%s' %contact)
 
if __name__ == '__main__':
    split()

Run it and you will get a directory named contacts flooded with vcf files.

python split_vcf.py myphonebook.vcf

Copy them to Other/Contacts directory of Phone’s Memory Card and use the “Copy from Memory Card” option in Contacts to restore your Phonebook. Enjoy your Nokia-E63 !!!

Posted in Applications, Hardware, Linux, Personal, Python, Scripts, Tips, Ubuntu | Tagged , , , , | 7 Comments

Reliance NetConnect on Ubuntu 9.04

Today one of my friend came to me asking for help in connecting to internet with his Reliance Netconnect USB Modem. As I had done this before for BSNL EVDO connections, I knew the steps to follow. But when I tried to load the usbserial module on Ubuntu using modprobe command, I got this

sree@jaunty$ sudo modprobe usbserial vendor=0xXXXX product=0xXXXX
FATAL: Module usbserial not found

As this method was working fine with previous Ubuntu versions, I became curious to know why this error has occured. A quick google search gave me the cause. The current versions of Linux kernel has integrated usbserial within the kernel itself. So the loading/unloading technique like above doesn’t work with the new kernel.

So isn’t it possible to use USB Modems in Linux having a new kernel ? Don’t worry, it is possible. All you have to do is, apart from loading the usbserial module using modprobe command you have to edit the kernel boot arguments. To do this first you find the device and vendor id’s of the USB modem. You can find this by using the lsusb command. Make a note of it. Then edit /boot/grub/menu.lst and find the boot line that starts with ‘kernel’. Append the following arguments to the end of that line.

usbserial.vendor=0xXXXX usbserial.product=0xXXXX

Now reboot your system and use wvdial to connect to internet. For that type

sudo wvdialconf create
sudo gedit /etc/wvdial.conf

then change your username and password and save the file. Then use the following command to connect to Internet.

sudo wvdial

Probably you need to add extra information like the following to the wvdial.conf if you experience problems connecting to Internet.

Stupid Mode = yes
Carrier Check = no

Carrier Check:
wvdial checks your modem during the connection process to ensure that it is actually online. If you have a weird modem that insists its carrier line is always down, you can disable the carrier check by setting this option to “no”.

Stupid Mode:
When wvdial is in Stupid Mode, it does not attempt to interpret any prompts from the terminal server. It starts pppd immediately after the modem connects. Apparently there are ISP’s that actually give you a login prompt, but work only if you start PPP, rather than logging in. Go figure. Stupid Mode is (naturally) disabled by default.

You can find information on using BSNL EVDO from this post.

Posted in Configuration, Grub, Hardware, Linux, Networking, Scripts, Ubuntu | Tagged , , , , | 4 Comments

Software Freedom Day 2009

Today we celebrate Software Freedom Day….

Software Freedom Day 2009

HAPPY HACKING ….

Posted in FOSS, News | Tagged | Leave a comment

Twitter on Pidgin

There you go… Now there is a Pidgin plugin available for Twitter updates. For Ubuntu Linux users its very easy to install it. They only need to add Ubuntu PPA repository and install the plugin using apt.

deb http://ppa.launchpad.net/sugree/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/sugree/ppa/ubuntu jaunty main

Import PPA keys using the following command

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0CF459B8DF37ED8B
sudo apt-get update

Then install the plugin

sudo apt-get install pidgin-microblog

Configure your Twitter account with Pidgin and you’ll get tweets in panel’s notification area. Cool … :)

Posted in Applications, Configuration, Linux, Networking, Tips, Ubuntu | Tagged , | Leave a comment