How do I get an iball 3.5G modem working on Ubuntu?

Solution 1:

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. Dongle is detected on SniffUSB GUI

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: Install/Enable Filter Options

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

Solution 2:

Option 1

Notice on your network connection when you plugged your usb modem. Just wait more seconds to see something like this:

enter image description here

click on CDMA and follow the configuration steps.

Opetion 2

Install Gnome-ppp

sudo apt-get install gnome-ppp

enter image description here

Click on setup and then detect.

enter image description here

If it's detects your stick, the dialog box will disappear. if not, it will give you an error message.

Good Luck!

Solution 3:

I had the same problem, but i solved it by borrowing my friends data card or dongle. To activate mobile (internet) broadband connection try inserting another data card to activate it first make those settings and once its activated try with the above mentioned settings. In case if the problem still not solved try inserting it and enable the connection option that does the trick. iball 3.75G-72 connect mobile broadband USB modem not detected in Ubuntu 12.04. how to detect that modem? "following is a step by step method Create a mobile broadband connection [choose connect automatically] Run the following command: sudo modprobe usbserial vendor=0x1c9e product=0x9605 Run dmesg to check the configuration of it, I don't know but it shows whether the above command was a success or not? Run lsusb to check the usb devices If its still not working then disable networking and enable it again. If you are getting confused with terminal things as I was, do this sudo lsusb -vvv> /tmp/usb_ info then, go to /tmp/usb_info that document will show you, your usb devices and its information."

Solution 4:

Step : 1

Find the vendor id and product id of USB modem using

lsusb

Step : 2 Add the details to /etc/modules like below

usbserial vendor=0x05c6 product=0x0016

Step : 3 Restart the computer and open disk utility and eject Data storage part of your USB modem.

In most of the case the modem will detected in the network manager soon.

if you are still not able to connect you can use sakis3g script to configure your USB modem.

http://dl.dropboxusercontent.com/u/21041454/sakis3g.gz

Download the gz file to Downloads folder and extract the script, then move it to /usr/bin using below command

sudo mv Download/sakis3g /usr/bin

Make this script as executable with below command;

sudo chmod a+x /usr/bin/sakis3g

Finally run the script as root

sudo /usr/bin/sakis3g

Tested on Ubuntu 14.04 64 bit with multiple computers.

See below website for step by step detailed instructions.

http://dailylifetipsandtricks.blogspot.com/2014/04/how-to-install-non-detecting-usb-modems-in-ubuntu.html