Well some things do not last long. I had to give my Huawei C2900i to the service center as something was wrong with the headphones socket. I decided to get the Huawei C5320 (white, I could not get the black) and give the C2900i to someone else. While the C5320 is more than twice the price of the C2900i and comes with a microSD slot, a 1.3mp camera and a basic mp3/mp4 player, I actually preferred the C2900i. This is because firstly I do not need a 1.3mp camera, and I actually prefer using my Fuji Finepix S5200 for any photography. Secondly I do not need an mp3 player since I already have one. And thirdly I do not need an mp4 player since I have a laptop. The C5320 misses one feature from the low-end C2900i; it does not allow voice recording of conversations. But I needed a phone which I could backup my sms' and phone numbers, and yes customize ringtones (though this is optional). Anyway, I plugged it onto my laptop hoping that like my C2900i it would be automatically recognised on Linux. A lsusb -v lists the device as Huawei Technologies C300 USB modem with device id : 0x12d1:0x3197.
By installing the device on Windows, I had discovered that it adhers to the USB CDC-ACM. So tried getting it the cdc-acm module on linux to load. But my attempts to get it to work were futile. The phone supports three modes of operation, an USB disk mode for accessing the microSD card, a Phone Sync mode to sync data between the mobile and system, including phonebook and sms's, and a third mode the data sync mode which enables the data modem. Strangely the cdc-acm driver would get loaded in Phone Sync mode, but display that it is not a modem.
The kernel modules typically loaded for the C2900i are option.ko and usbserial.ko. The option module is required since the usbserial.ko does not work well with GSM modems. So I decided to try my luck with these modules.
A "sudo modprobe usbserial vendor=0x12d1 product=0x3197" worked. I finally got a /dev/ttyUSB0 device. Connecting to the internet worked, but was a bit slow.