It may be a bit late now, yet I was unable to connect using iBall 3.5g v2.0 on my Ubuntu 12.04. All the guides available online were not useful.
Edit: First the BashScript I'm using to connect my iBall3.5G
#!/bin/bash
set -x
usb_modeswitch -W -n -I -v 05c6 -p f000 -V 05c6 -P 0016 -M 55534243e0793c88000000000000061b000000020000000000000000000000 > /dev/null 2>&1
modprobe usb_wwan
modprobe option
echo 05C6 0016 > /sys/bus/usb-serial/drivers/option1/new_id
It takes 5 to 15 seconds to enable USB WireLess Dongle for connection.
Now debugging the problem:
Use Case
iBall 3.5G v2.0 is working on WinXP(SP3) and not in Ubuntu 12.04
NOTE: It may not suit your issue as many online solutions I read didn't work for me. Read through the steps for matching scenario.
You need administrators/root privileges to perform below steps
Step 1:
Plug Dongle(USB Data Card) into a USB port with Ubuntu running.
Step 2:
tail /var/log/kern.log to see how it was detected
root@SiRi-Inspiron-3521:~# tailf /var/log/kern.log
kernel: [12607.331240] usb 3-2: new high-speed USB device number 12 using xhci_hcd
kernel: [12607.348772] usb 3-2: config 1 has an invalid interface number: 5 but max is 0
kernel: [12607.348788] usb 3-2: config 1 has no interface number 0
kernel: [12607.352291] scsi21 : usb-storage 3-2:1.5
kernel: [12608.352700] scsi 21:0:0:0: CD-ROM 3G Modem Mass Storage 2.31 PQ: 0 ANSI: 2
kernel: [12608.357251] sr1: scsi-1 drive
kernel: [12608.357554] sr 21:0:0:0: Attached scsi CD-ROM sr1
kernel: [12608.357754] sr 21:0:0:0: Attached scsi generic sg3 type 5
Note: an interface were identified as invalid. Apparently this was the cause of all problems.
Step 3:
Finding out the default Vendor & Product IDs
On Ubuntu use command lsusb. Typical output for the device, I've removed others from output for clarity
root@SiRi-Inspiron-3521:~# lsusb
Bus 003 Device 012: ID 05c6:f000 Qualcomm, Inc.
you can run lsusb -v -d 05c6:f000 for verbose output
Notice idVendor, idProduct; these are default IDs as detected by Ubuntu.
typical output:
root@SiRi-Inspiron-3521:~# lsusb -v -d 05c6:f000
Bus 003 Device 012: ID 05c6:f000 Qualcomm, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x05c6 Qualcomm, Inc.
idProduct 0xf000
bcdDevice 0.00
iManufacturer 3
iProduct 2 iBall 3.5G Wireless Modem
iSerial 4 1234567890ABCDEF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 1 iBall 3.5G Wireless Modem
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 5
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0001
Self Powered
For an experienced eye this is an incomplete listing.
Step 4:
Finding out working VendorID & ProductID. As iBall3.5G is working on WinXP(SP3)
we can extract IDs from the log generated by iBall Connection manager.
When you connect using iBall connection manager on WinXP(SP3), USB message exchanged are logged. Filename may be different: Note
Matching hardware ID: usb\vid_05c6&pid_0016&mi_04
File: C:\WINDOWS\ModemLog_3GUSB Modem.txt
02-09-2014 03:47:19.390 - Modem type: 3GUSB Modem
02-09-2014 03:47:19.390 - Modem inf path: oem119.inf
02-09-2014 03:47:19.390 - Modem inf section: Modem2
02-09-2014 03:47:19.390 - Matching hardware ID: usb\vid_05c6&pid_0016&mi_04
02-09-2014 03:47:19.390 - 115200,8,N,1, ctsfl=0, rtsctl=1
02-09-2014 03:47:19.406 - Initializing modem.
02-09-2014 03:47:19.406 - CD is high while initializing modem.
02-09-2014 03:47:19.406 - Send: AT<cr>
If iBall connection Manager was not installed then it's alright, we'll install later.
Step 5:
Finding out how default (Vendor, Product) IDs were switched to working (Vendor, Product) IDs on WinXP(SP3) => Switch Event
We need SniffUSB_v2.0 for capturing messages exchanged between Dongle(USB MoDem) & OS during driver installation.
NOTE: I'm not aware of other options that are already existing on WinXP(sp3) to facilitate to capture required packets.
Download page for SniffUSB for WinXP(SP3)
UsbSnoop for WinXP from pcausa.com
As of this writing SniffUSB-x86-2.0.0006.zip was available.
Step 6:
If you've installed iBall Connection Manger & Drivers then uninstall both of them. We need to capture the switch event, remember?
Step 7:
Run SniffUSB.exe - remember with administrator rights.
Plug in dongle, you'll see something like below.

You can see Default(Vendor, Product) IDs listed.
Select the one which came after dongle plug in & click install filter. It's hidden behind that password prompt, something like this:

Step 8:
Remove the dongle & plugin again.
Now that we enabled(installed) a filter specific to our iBall3.5G, SniffUSB should dump packets exchanged.
Go ahead & install iBall connection manager & Drivers as usual.
Step 9:
By the time installation is finished size of UsbSnoop.log bloats to ~40 MB. We are only interested in last few messages that causes Switch Event
I was told the switch happened from the below message:
[255643 ms] >>> URB 1351 going down >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
PipeHandle = 88470914 [endpoint 0x00000001]
TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
TransferBufferLength = 0000001f
TransferBuffer = 892ee758
TransferBufferMDL = 00000000
00000000: 55 53 42 43 e0 79 3c 88 00 00 00 00 00 00 06 1b
00000010: 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00
UrbLink = 00000000
[255644 ms] UsbSnoop - MyInternalIOCTLCompletion(9e06f126) : fido=883eab50, Irp=883c79e0, Context=88424980, IRQL=2
[255644 ms] <<< URB 1351 coming back <<<
I'm still trying to understand how to identify the switch from capture log:
iBall 3.5G Connect v2.0 setup on Ubuntu 12.04 issues
The message 55534243e0793c88000000000000061b000000020000000000000000000000 will help us in manually switching IDs(Vendor, Product) on Ubuntu.
Step 10:
On Ubuntu, plug in dongle then run below command(as root):
root@SiRi-Inspiron-3521:~# usb_modeswitch -W -n -I -v 05c6 -p f000 -V 05c6 -P 0016 -M 55534243e0793c88000000000000061b000000020000000000000000000000
- by default Ubuntu(12.04) comes with
usb_modeswitch (v1.2.3) bundle.
Notice the switch of IDs(Vendor, Product):
root@SiRi-Inspiron-3521:~# lsusb
Bus 003 Device 012: ID 05c6:0016 Qualcomm, Inc.
Step 11:
Getting working device files in /dev/
I was told 05c6:0016 USB ID is not directly supported by the option.ko serial driver (as of yet)
Run below commands to get required /dev/ files viz. [ttyUSB0 .. ttyUSB2]
root@SiRi-Inspiron-3521:~# modprobe usb_wwan
root@SiRi-Inspiron-3521:~# modprobe option
root@SiRi-Inspiron-3521:~# echo "05C6 0016" > /sys/bus/usb-serial/drivers/option1/new_id
You'll see most desired ttyUSB0, ttyUSB1 & ttyUSB2 listed under /dev/ directory.
Within 5 to 15 seconds a network should be automatically listed under 'Mobile Broadband' for connection.
Step 12:
Now the device is identified and ready for working, connecting to Internet is a child's play.
Fun-Fact:
All this circus is for just finding out the right message(55534243e0793c88000000000000061b000000020000000000000000000000) and working (Vendor,Product) IDs pair to cause switch event.
PS:
iBall3.5G comes with scripts for Linux, viz.
install, uninstall, wcdma, w-connect-chat, & dialup