It is possible – I’m writing this post via T-Mobile and my new webConnect Rocket.

Step 0: see if your webConnect Rocket is actually the same as mine.

mike@110psi:~$ lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 19d2:1201 ONDA Communication S.p.A.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

If you don’t have the “19d2:1201 ONDA Communication S.p.A.” line, then likely you have a different version of the webConnect Rocket than I do and this guide may or may not apply.

Step 1: usb_modeswitch. This is necessary because the webConnect, like many usb dongles these days, actually has its windows (and mac?) drivers loaded directly on it. When the dongle is first inserted into a windows machine, it appears as a hard drive with its driver on it. Windows installs the driver, then magically changes the device into a modem. We need to use usb_modeswitch to do that magic change ourselves.

sudo apt-get install usb-modeswitch

As of this writing, you need to manually add the file /etc/usb_modeswitch.d/19d2:1201 with text:

# t-mobile ZTE MF691  Rocket 2

DefaultVendor=  0x19d2
DefaultProduct= 0x1201

TargetVendor=   0x19d2
TargetProduct=  0x1203

MessageContent="5553424392020000000000000000061B000000020000000000000000000000"

For more details, see this forum post and this one. Hopefully this file will be included directly in the usb-modeswitch-data package soon, but for the meantime it looks like the maintainer is currently traveling.

Now, we need to configure udev to run usb_modeswitch automatically when it sees the webConnect hard drive. Add the following lines to the file /lib/udev/rules.d/40-usb_modeswitch.rules:

# t-mobile ZTE MF691  Rocket 2
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1201", RUN+="usb_modeswitch '%b/%k'"

(Before you add those lines check that they haven’t already been added by upstream since this writing. No need to have them in there twice.)

At this point I’d recommend a) restarting your machine and the b) inserting your webConnect Rocket. To test everything’s good so far, you should be able to use minicom to connect to both /dev/ttyACM0 and /dev/ttyACM1 and issue some basic AT commands.

Step 2: I haven’t been able to get network-manager to work correctly with the webConnect rocket. I get a lot of “modem-manager: Got failure code 100: Unknown error” in the logs. If you’ve got the time, the relevant source is here.

However, we can use wvdial and pppd to connect. If you haven’t already:

sudo apt-get install wvdial pppd

You can run ‘wvdailconf’ as root to generate a basic /etc/wvdial.conf. Then you want to edit it to look like mine:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
ISDN = 0
New PPPD = yes
Phone = *99***1#
Modem = /dev/ttyACM0
Username = user
Password = pass
Baud = 460800
Stupid Mode = 1

I suspect there may be other options that should be in here that would be helpful. But in any case, this is a working base case. If you find any additional helpful options, please let me know in the comments.

Step 3: Connect to T-Mobile! To connect, run

sudo wvdial

Wvdial will manage the connection process to T-Mobile, spawning an instance of pppd to maintain the connection. Once the connection is established, you can hit cntrl-c to kill the instance of wvdial while still leaving pppd alive and your connection to T-Mobile active.

To disconnect:

sudo pkill pppd

does the trick.

It’ll be nice once modem-manager (and hence network-manager) has functioning support for this device. I’ll update this post once it does. In the meantime… good luck!

19 Responses to “T-Mobile webConnect Rocket 2.0 on Debian/Ubuntu”

  1. Bob says:

    I’ve tried this and cannot get it to work i get /dev/ttyACM0 not found
    so i tried using tty and it just says connot find modem

  2. Mike Fogel says:

    hum that’s wierd the cdc_acm driver in the kernel should pick it up automatically, as I understand.

    Check your /var/log/syslog. Mine has the following in there:

    Oct 28 18:19:55 110psi kernel: [  433.027851] cdc_acm 2-2:1.1: ttyACM0: USB ACM device
    Oct 28 18:19:55 110psi kernel: [  433.028536] cdc_acm 2-2:1.3: ttyACM1: USB ACM device
    Oct 28 18:19:55 110psi kernel: [  433.029131] usbcore: registered new interface driver cdc_acm
    Oct 28 18:19:55 110psi kernel: [  433.029315] cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
    
  3. Mike Fogel says:

    hum, TODO: fix the formatting on blocks of code in comments….

  4. Bob says:

    Got it to work after some updates thank you for the help

  5. johnh says:

    Thanks a bunch for the guide.
    I too had to get updates – I initially could not find the pppd package.
    I found that if you:
    sudo bash
    wvdial

    killing the job disconnects.

    johnh…

  6. [...] Step 0: Get your mobile broadband connection working, possibly with T-Mobile. [...]

  7. Tony says:

    Hi! I am having trouble installing the tmobile rocket 2.0 on windows xp. I get a 1719 error message saying that windows installer could not install it. I’ve updated my driver and everything else on my laptop and I still get the same results. Anyone got a solution?

  8. mark says:

    Thank you. These are the first instructions that allowed me to finally get the T-mobile Rocket 2 working on Ubuntu. I couldn’t get NetworkManager to work but wvdial is working great and allows me to connect at h+ speeds.

  9. David says:

    I’ve been using a very similar method to get online via a samsung u900, it can act as a modem using the cdc_acm driver. Lately I’ve noticed that t-mobile seems to re-compressing all JPEGs and adding javascript which on hover says “Shift-R improves the quality of this image…”. I think they’re doing it with a transparent proxy and it’s quite annoying. Wondered if you’re also getting this with the Rocket?

  10. David says:

    Also with my setup the cdc_acm driver doesn’t resume from sleep, I have to unplug and replug the phone to get it back to life, anyone else having the same issue? or know a solution?

  11. andrew says:

    I was able make it working so far, but it seems I am close.
    Here is the output. It seems that some sort of connection was established,
    however I was not able to open any webpage.
    Your help is greatly appreciated.

    –> WvDial: Internet dialer version 1.60
    –> Cannot get information for serial port.
    –> Initializing modem.
    –> Sending: ATZ
    ATZ
    OK
    –> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    OK
    –> Modem initialized.
    –> Sending: ATDT*99***1#
    –> Waiting for carrier.
    ATDT*99***1#
    CONNECT 21096000
    –> Carrier detected. Starting PPP immediately.
    –> Starting pppd at Mon Jan 17 14:04:01 2011
    –> Pid of pppd: 2478
    –> Using interface ppp0
    –> local IP address 26.16.11.135
    –> remote IP address 10.0.0.1
    –> primary DNS address 10.177.0.34
    –> secondary DNS address 10.176.83.140
    ^CCaught signal 2: Attempting to exit gracefully…
    –> Terminating on signal 15
    –> Connect time 0.6 minutes.
    –> Disconnecting at Mon Jan 17 14:04:36 2011

  12. Mike Fogel says:

    @andrew – that all looks good. It’s probably that your routing table is in a bad state. Make the connection with wvdial, then in another terminal, run ‘netstat -nr’ and take a look at what you get… ‘man route’ to learn more.

  13. andrew says:

    Thank you for the hints. I read man pages for route, wvdial and wvdialconf.
    I tried to change the routing table. No luck so far. Here is more info.

    After starting wvdial, this is the output from “netstat -r”

    # netstat -r
    Kernel IP routing table
    Destination Gateway Genmask Flags MSS Window irtt Iface
    1.0.0.10.in-add * 255.255.255.255 UH 0 0 0 ppp0
    default * 0.0.0.0 U 0 0 0 ppp0

    This did not work. I tried to change “default”. I did

    # sudo route delete default
    # sudo route add default netmask 0.0.0.0 gw 10.0.0.1 dev ppp0
    # netstat -r
    Kernel IP routing table
    Destination Gateway Genmask Flags MSS Window irtt Iface
    1.0.0.10.in-add * 255.255.255.255 UH 0 0 0 ppp0
    default 1.0.0.10.in-add 0.0.0.0 UG 0 0 0 ppp0

    This did not work either. Please help. I am a novice in configuring routing tables.

    BTW, Although gateway is specified as 10.0.0.1 it shows up as 1.0.0.10,
    is this normal? why?

    Thanks a lot.

  14. Mike Fogel says:

    @andrew Your routing table looks reasonable… can you ping the outside world over your connection? Try ‘ping 4.2.2.1′ and ‘ping google.com’

  15. andrew says:

    Yes I was able to “ping 4.2.2.1″, “ping google.com”, and primary DNS address,
    but I was not bale to ping 10.0.0.1 which is the remote IP address (according to the output from wvdial). Thank you for your help.

  16. andrew says:

    It is still not working. No ideas? Then I am sending it back to t-mobile.

  17. MAK says:

    No matter what I do, it DOES NOT WORK.

    How about Ubuntu actually doing its job and getting the appropriate files into the system & network manager so that it works? When was the last time Ubuntu was updated to handle T-Mobile’s new plans and devices?

    Don’t bother talking to T-Mobile – once you get someone you can understand, you quickly find out that they don’t know anything and “don’t support Linux”.

  18. Brian says:

    This is still not added in to the application yet ? I can’t do all of this listed above….

  19. [...] matter of following some directions and making modifications to them to match the device model we purchased.  Our BT5 install on the [...]

Leave a Reply