HP5310m un2420 Wireless Gobi2000 Module in Ubuntu

QUICK POST TO BE CLEANED UP LATER 😛

If you have a Windows 7 installation (as it should be pre-installed) and with the Window’s Qualcomm driver’s loaded, find the driver log directory.

e.g. C:\ProgramData\QUALCOMM\QDLService2k

There should be two files, Options2kHP.txt and QDLService2kHP.txt.

Open Options2kHP.txt and you should see 3 lines similar to :-

C:\Program Files\Qualcomm\Images\HP\UMTS\AMSS.mbn
C:\Program Files\Qualcomm\Images\HP\UMTS\Apps.mbn
C:\Program Files\Qualcomm\Images\HP\0\UQCN.mbn

Copy these 3 files listed into

/lib/firmware/gobi

The other file is a log file of the firmware loading done by the Windows driver if you’re curious.

The device ID for the firmware loader on the HP 5310m, un2420 module is 0x241d.
The device ID for the modem is 0x251d.
If the firmware is not loaded, you should see the firmware loader device.
If the firmware is loaded correctly, you should only see the modem device.

Short Instructions (Request in comments if you need debugging/testing instructions).

Download, compile and install the updated qcserial driver.qcserial_5Jan10
Download, compile and install the modified gobi_loader.gb2kload_5Jan10
Reboot and pray that network manager now shows your modem 😉

*UDEV ISNT WORKING AT THE MOMENT … WILL FIX SOON … Run in manually like below…*

madox@madox-5310m:~$ lsusb -d 03f0:251d
Bus 001 Device 003: ID 03f0:251d Hewlett-Packard

Blah blah

Gobi Loader manually run and output

madox@madox-5310m:~/projects/gb2kload$ ./gobi_loader /dev/ttyUSB0 /lib/firmware/gobi
QDL protocol server request sent
01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64
20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00
00 04 04 30 03 0b
QDL protocol server response received
7e 0d 05 00 00 00 00 04 e4 7e
QDL protocol server request sent (Retry as gobi2000)
01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64
20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00
00 05 05 30 07 48
QDL protocol server response received (Retry as gobi2000)
7e 02 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65
64 20 70 72 6f 74 6f 63 6f 6c ff ff ff ff 24 00
17 5c 05 05 00 00 00 00 00 00 00 00 00 00 00 00
00 30 d6 8a 7e
QDL protocol server request sent
25 05 2c 50 a9 00 01 00 00 00 04 00 00 40 97
QDL protocol server response received
7e 26 00 00 01 00 00 00 04 52 65 7e
QDL protocol server request sent
27 00 00 00 00 00 00 2c 50 a9 00 db ae
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 610348 bytes of image
QDL protocol server response received
7e 28 00 00 00 00 00 00 00 00 14 39 7e
QDL protocol server request sent
25 06 2c 60 2f 00 01 00 00 00 04 00 00 81 0e
QDL protocol server response received
7e 26 00 00 01 00 00 00 04 52 65 7e
QDL protocol server request sent
27 00 00 00 00 00 00 2c 60 2f 00 69 f0
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1048576 bytes of image
QDL protocol server sent 1007660 bytes of image
QDL protocol server response received
7e 28 00 00 00 00 00 00 00 00 14 39 7e
QDL protocol server request sent
25 0d 44 24 00 00 01 00 00 00 04 00 00 50 90
QDL protocol server response received
7e 26 00 00 01 00 00 00 04 52 65 7e
QDL protocol server request sent
27 00 00 00 00 00 00 44 24 00 00 b9 49
QDL protocol server sent 9284 bytes of image
QDL protocol server response received
7e 28 00 00 00 00 00 00 00 00 14 39 7e
QDL protocol server request sent
29 bb 4c
Firmware Loading Complete

You might need to kill modem-manager if you’re doing this manually…

sudo pkill modem-manager

49 thoughts on “HP5310m un2420 Wireless Gobi2000 Module in Ubuntu”

  1. WTF… Came back home to see if I want to work on the udev problem and found the modem already working…
    Hmmm

    [ 4.225183] usbcore: registered new interface driver usbserial_generic
    [ 4.225186] usbserial: USB Serial Driver core
    [ 4.246188] USB Serial support registered for Qualcomm USB modem
    [ 4.246899] qcserial 1-2:1.1: Qualcomm USB modem converter detected
    [ 4.246979] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB0
    [ 4.246998] usbcore: registered new interface driver qcserial

    [ 17.472707] qcserial ttyUSB0: Qualcomm USB modem converter now disconnected from ttyUSB0
    [ 17.472717] qcserial 1-2:1.1: device disconnected
    [ 17.790062] usb 1-2: new high speed USB device using ehci_hcd and address 5
    [ 17.952594] usb 1-2: configuration #1 chosen from 1 choice
    [ 17.957058] qcserial 1-2:1.2: Qualcomm USB modem converter detected
    [ 17.957117] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB0

    1. First of all thanks for your great help, I could get a bit closer to make this piece of harware working.

      I have followed your trips using drivers from a windows XP pro install & your modified qcserial.c & gobi_loader but I am having troubles to get this one working eg :

      /var/log/messages :

      Jan 24 20:03:57 slimy kernel: usb 1-2: Qualcomm USB modem converter now attached to ttyUSB0
      Jan 24 20:03:57 slimy kernel: usbcore: registered new interface driver qcserial
      Jan 24 20:06:44 slimy kernel: usb 1-2: USB disconnect, address 3
      Jan 24 20:06:44 slimy kernel: qcserial ttyUSB0: Qualcomm USB modem converter now disconnected from ttyUSB0
      Jan 24 20:06:44 slimy kernel: qcserial 1-2:1.1: device disconnected
      Jan 24 20:06:44 slimy kernel: usb 1-2: new high speed USB device using ehci_hcd and address 5
      Jan 24 20:06:44 slimy kernel: usb 1-2: New USB device found, idVendor=03f0, idProduct=251d
      Jan 24 20:06:44 slimy kernel: usb 1-2: New USB device strings: Mfr=4, Product=3, SerialNumber=0
      Jan 24 20:06:44 slimy kernel: usb 1-2: Product: HP un2420 Mobile Broadband Module
      Jan 24 20:06:44 slimy kernel: usb 1-2: Manufacturer: Qualcomm Incorporated
      Jan 24 20:06:44 slimy kernel: usb 1-2: configuration #1 chosen from 1 choice
      Jan 24 20:06:44 slimy kernel: usb 1-2: unknown number of interfaces: 3
      Jan 24 20:06:44 slimy kernel: usb 1-2: unknown number of interfaces: 3
      Jan 24 20:06:44 slimy kernel: usb 1-2: unknown number of interfaces: 3

      [root@slimy ~]# lsusb -d 03f0:251d
      Bus 001 Device 005: ID 03f0:251d Hewlett-Packard

      [root@slimy ~]# ls /dev/ttyU*
      ls: cannot access /dev/ttyU*: No such file or directory

      Any idea on this one ? Have you already faced it ?

      By the way I am using fedora 12 but this should not matter to much..

      1. FYI :

        On my side applying this patch to the original qcserial.c finally made the device work :

        diff –git a/qcserial/qcserial.c b/qcserial/qcserial.c
        index 7528b8d..af26095 100644
        — a/qcserial/qcserial.c
        +++ b/qcserial/qcserial.c
        @@ -47,6 +47,39 @@ static struct usb_device_id id_table[] = {
        {USB_DEVICE(0x05c6, 0x9221)}, /* Generic Gobi QDL device */
        {USB_DEVICE(0x05c6, 0x9231)}, /* Generic Gobi QDL device */
        {USB_DEVICE(0x1f45, 0x0001)}, /* Unknown Gobi QDL device */
        + {USB_DEVICE(0x16d8, 0x8001)}, /* CMOTech Gobi 2000 QDL device */
        + {USB_DEVICE(0x16d8, 0x8002)}, /* CMOTech Gobi 2000 Modem Device */
        + {USB_DEVICE(0x05c6, 0x9274)}, /* iRex Gobi 2000 QDL device */
        + {USB_DEVICE(0x05c6, 0x9275)}, /* iRex Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9000)}, /* Sierra Gobi 2000 QDL device */
        + {USB_DEVICE(0x1199, 0x9001)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9002)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9003)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9004)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9005)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9006)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9007)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9008)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x9009)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x1199, 0x900a)}, /* Sierra Gobi 2000 Modem Device */
        + {USB_DEVICE(0x03f0, 0x241d)}, /* HP Gobi 2000 QDL device */
        + {USB_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem Device */
        + {USB_DEVICE(0x413c, 0x8185)}, /* Dell Gobi 2000 QDL device */
        + {USB_DEVICE(0x413c, 0x8186)}, /* Dell Gobi 2000 Modem Device */
        + {USB_DEVICE(0x05c6, 0x9204)}, /* Gobi 2000 QDL device */
        + {USB_DEVICE(0x05c6, 0x9205)}, /* Gobi 2000 Modem device */
        + {USB_DEVICE(0x05c6, 0x9214)}, /* Acer Gobi 2000 QDL device */
        + {USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem Device */
        + {USB_DEVICE(0x05c6, 0x9244)}, /* Samsung Gobi 2000 QDL device */
        + {USB_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem Device */
        + {USB_DEVICE(0x05c6, 0x9224)}, /* Sony Gobi 2000 QDL device */
        + {USB_DEVICE(0x05c6, 0x9225)}, /* Sony Gobi 2000 Modem Device */
        + {USB_DEVICE(0x05c6, 0x9234)}, /* Top Global Gobi 2000 QDL device */
        + {USB_DEVICE(0x05c6, 0x9235)}, /* Top Global Gobi 2000 Modem Device */
        + {USB_DEVICE(0x05c6, 0x9264)}, /* Asus Gobi 2000 QDL device */
        + {USB_DEVICE(0x05c6, 0x9265)}, /* Asus Gobi 2000 Modem Device */
        + {USB_DEVICE(0x413c, 0x8185)}, /* Dell Gobi 2000 QDL device */
        + {USB_DEVICE(0x413c, 0x8186)}, /* Dell Gobi 2000 Modem Device */
        { } /* Terminating entry */
        };
        MODULE_DEVICE_TABLE(usb, id_table);
        @@ -63,6 +96,7 @@ static struct usb_driver qcdriver = {

        static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
        {
        + struct usb_host_interface *intf = serial->interface->cur_altsetting;
        int retval = -ENODEV;
        __u8 nintf;
        __u8 ifnum;
        @@ -71,32 +105,38 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)

        nintf = serial->dev->actconfig->desc.bNumInterfaces;
        dbg(“Num Interfaces = %d”, nintf);
        – ifnum = serial->interface->cur_altsetting->desc.bInterfaceNumber;
        + ifnum = intf->desc.bInterfaceNumber;
        dbg(“This Interface = %d”, ifnum);

        switch (nintf) {
        case 1:
        /* QDL mode */
        – if (serial->interface->num_altsetting == 2) {
        – struct usb_host_interface *intf;

        + /* Gobi 2000 has a single altsetting, older ones have two */
        + if (serial->interface->num_altsetting == 2)
        intf = &serial->interface->altsetting[1];
        – if (intf->desc.bNumEndpoints == 2) {
        – if (usb_endpoint_is_bulk_in(&intf->endpoint[0].desc) &&
        – usb_endpoint_is_bulk_out(&intf->endpoint[1].desc)) {
        – dbg(“QDL port found”);
        – retval = usb_set_interface(serial->dev, ifnum, 1);
        – if (retval dev->dev,
        – “Could not set interface, error %d\n”,
        – retval);
        – retval = -ENODEV;
        – }
        – return retval;
        – }
        + else if (serial->interface->num_altsetting > 2)
        + break;
        +
        + if (intf->desc.bNumEndpoints == 2 &&
        + usb_endpoint_is_bulk_in(&intf->endpoint[0].desc) &&
        + usb_endpoint_is_bulk_out(&intf->endpoint[1].desc)) {
        + dbg(“QDL port found”);
        +
        + if (serial->interface->num_altsetting == 1)
        + return 0;
        +
        + retval = usb_set_interface(serial->dev, ifnum, 1);
        + if (retval dev->dev,
        + “Could not set interface, error %d\n”,
        + retval);
        + retval = -ENODEV;
        }
        + return retval;
        }
        break;
        +
        + case 3:

        case 4:
        /* Composite mode */
        @@ -115,7 +155,7 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)

        default:
        dev_err(&serial->dev->dev,
        – “unknown number of interfaces: %d\n”, nintf);
        + “unknown number of fucking interfaces: %d\n”, nintf);
        return -ENODEV;
        }

        Resolve link : http://mjg59.livejournal.com/120577.html?view=1576193#t1576193

        1. Hi

          I have same problem than you (unknown number of interfaces….).
          I tried to apply that patch that Yojoba posted to maddox qcserial.c and original (2.6.33) qcserial.c with no luck.. patch throws some errors both cases.. Can you or somebody else post/send me patched version of qcserial.c, or help me make this work?

          1. Hi, the patch was written by someone else.

            You can download my version from above. Actually I’ve just noticed you’re using 2.6.33, apparently there’s some problem there…

  2. great!

    after adding
    {USB_DEVICE(0x05c6, 0x9224)}, /* SONY VAIO VPC-X11 QDL device*/
    {USB_DEVICE(0x05c6, 0x9225)}, /* SONY VAIO VPC-X11 Modem device */

    the driver also works for my sony notebook

    thx a lot

  3. The udev rule actually works. If I take a while to sign in then its all ok, gobi_loader finishes loading the firmware in the background and all is good. However if I log in as soon as the login screen is presented then gobi_loader seems to hang for some reason.

    Can anyone confirm this on a 5310m with a HDD? I’ve got the SSD version…

  4. I just got my new 5310m and unfortunately Windows 7 was no match for me, so I installed Ubuntu 9.10 straight away without keeping Windows on my hard disk, but I was able to get the drivers from HP anyway.
    I did everything just like you did but it seems like there is some problem with the UQCN file. Does anyone have had the same problem and fixed this?
    Here is the output of gobi_loader

    QDL protocol server request sent
    01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64
    20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00
    00 04 04 30 03 0b
    QDL protocol server response received
    7e 0d 05 00 00 00 00 04 e4 7e
    QDL protocol server request sent (Retry as gobi2000)
    01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64
    20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00
    00 05 05 30 07 48
    QDL protocol server response received (Retry as gobi2000)
    7e 02 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65
    64 20 70 72 6f 74 6f 63 6f 6c ff ff ff ff 24 00
    17 5c 05 05 00 00 00 00 00 00 00 00 00 00 00 00
    00 30 d6 8a 7e
    QDL protocol server request sent
    25 05 2c 50 a9 00 01 00 00 00 04 00 00 40 97
    QDL protocol server response received
    7e 26 00 00 01 00 00 00 04 52 65 7e
    QDL protocol server request sent
    27 00 00 00 00 00 00 2c 50 a9 00 db ae
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 610348 bytes of image
    QDL protocol server response received
    7e 28 00 00 00 00 00 00 00 00 14 39 7e
    QDL protocol server request sent
    25 06 2c 60 2f 00 01 00 00 00 04 00 00 81 0e
    QDL protocol server response received
    7e 26 00 00 01 00 00 00 04 52 65 7e
    QDL protocol server request sent
    27 00 00 00 00 00 00 2c 60 2f 00 69 f0
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1007660 bytes of image
    QDL protocol server response received
    7e 28 00 00 00 00 00 00 00 00 14 39 7e
    UQCN Firmware not file, assuming not Gobi2000…QDL protocol server request sent
    25 0d 2c 60 2f 00 01 00 00 00 04 00 00 83 83
    QDL protocol server response received
    7e 26 00 00 01 00 00 00 04 52 65 7e
    QDL protocol server request sent
    27 00 00 00 00 00 00 2c 60 2f 00 69 f0
    QDL protocol server sent -1 bytes of image
    QDL protocol server response received
    7e 0d 19 00 00 00 00 74 27 7e
    QDL protocol server request sent
    29 bb 4c
    Firmware Loading Complete

    Fact is that the firmware loading is NOT complete as lsusb keeps listing the device at 03f0:241d.

    Regards

    1. Heheh grammar mistake, “UQCN firmware file not found” would have been better. Did you find the UQCN file from the windows drivers? Check the case, I think I look for UPPER case ‘UQCN’ because that is what it is on my drivers… i.e.

      madox@madox-5310m:/lib/firmware/gobi$ ls -l
      total 13888
      -rwxr-xr-x 1 root root 11096116 2009-12-11 21:10 amss.mbn
      -rwxr-xr-x 1 root root 3104812 2009-12-11 21:10 apps.mbn
      -rwxr-xr-x 1 root root 9284 2009-12-11 21:10 UQCN.mbn

  5. Thanks for the patched qcserial and the patched gobi_loader. I was able to make my Sony Vaio X use it’s WWAN modem finally. Only minor additions were needed, as the device ids are slightly different, then the ones HP is using. Thanks again for the great work.

    Cheers,
    Jakob

  6. I just bought a new Lenovo ThinkPad T510, which includes the Qualcomm Gobi 2000 chipset and a WWAN aerial.

    Will I be able to get it to work using the instructions above in Ubuntu 9.10, but changing the device ids if they are different?

    1. Hi Tom,

      Should work 🙂 Let me know how you go.

      I’ve lost access to Email these days, can someone get this (qcserial) back to linux-usb if it works on both Gobi2k and the old Gobi?

      1. Maddox,

        I have Lenovo x100e

        with Ubuntu running – 2.32.25

        “Linux alok-laptop 2.6.32-25-server #45-Ubuntu SMP Sat Oct 16 20:06:58 UTC 2010 x86_64 GNU/Linux”

        Have been struggling to get the Gobi running… read a lot of your posts. Not clear on the steps to follow.

        1. I have downloaded gobiloader 0.7
        2. I have the firmware files in the right directory
        3. I have put the rules in the right directory

        Manual loading of gobi_loader gives no output

        Strangely – sometimes – after switching boot from windows, I am able to see this device in the network manager

        Here is what I am getting in my dmesg
        ——- cut here —
        [ 484.512990] WARNING: at /build/buildd/linux-2.6.32/drivers/usb/serial/usb-serial.c:440 serial_unthrottle+0x8e/0x90 [usbserial]()
        [ 484.512998] Hardware name: 28764WA
        [ 484.513002] Modules linked in: michael_mic arc4 rfcomm ppdev sco bridge stp bnep l2cap vboxnetadp vboxnetflt vboxdrv joydev snd_hda
        _codec_conexant snd_hda_intel snd_seq_dummy snd_hda_codec snd_hwdep snd_seq_oss snd_pcm_oss snd_mixer_oss snd_seq_midi snd_rawmidi snd
        _seq_midi_event snd_pcm fbcon tileblit font bitblit softcursor fglrx(P) btusb vga16fb vgastate snd_seq uvcvideo snd_timer snd_seq_devi
        ce bluetooth qcserial usb_wwan videodev v4l1_compat v4l2_compat_ioctl32 snd r8192se_pci psmouse serio_raw k8temp edac_core edac_mce_am
        d snd_page_alloc video i2c_piix4 shpchp soundcore led_class nvram usbserial output lp parport usb_storage ahci r8169 mii
        [ 484.513102] Pid: 2074, comm: gobi_loader Tainted: P 2.6.32-25-server #45-Ubuntu
        [ 484.513109] Call Trace:
        —- snip—-
        [end trace]

        Can you pls advise, what is wrong here.

        I am not sure, how to apply the patch that is listed in the various links – I know, its not your job, but would greatly appreciate any help in sharing steps on how to apply the patches..

        Alok

        1. What do you mean manual loading of gobi_loader? Can you try my code instead? [Linked in post]

          What do you have as your ‘lsusb’ output?

          I’m not sure if Michael has fixed it, but his gobi_loader doesn’t do any retry attempts and on my HP 5310m I find that my PC boots faster than the firmware which kind of stalls (Michael’s) gobi_loader. Not sure if I fixed it in mine either, but my program has alot more verbose outputs.

          1. What do you mean manual loading of gobi_loader? Can you try my code instead? [Linked in post]

            I try ./gobi_loader /dev/ttyUSB0 /lib/firmware/gobi

            Where is the link ???

            What do you have as your ‘lsusb’ output?

            root@alok-laptop:/home/alok# lsusb | grep Qualcom
            Bus 001 Device 002: ID 05c6:9204 Qualcomm, Inc.

            I’m not sure if Michael has fixed it, but his gobi_loader doesn’t do any retry attempts and on my HP 5310m I find that my PC boots faster than the firmware which kind of stalls (Michael’s) gobi_loader. Not sure if I fixed it in mine either, but my program has alot more verbose outputs.

            Please provide the link. Also, if you have missed, I am trying on Lenovo x100e

            Alok

  7. I tested this on my new thinkpad t410, and firmware loads flawlessly.
    However, the modem does not seem to recognize a large number of at commands. Not even atdt or at+cpin.

    Is there any other setup necessary to bring the module into the correct state?

    1. Thank you Madox for the work.
      I managed to get it working on a T410s with Arch Linux.

      But same problem as urs, I can not even send AT+CPIN.

      Any suggestions?

      Thanks,
      Mark

  8. Hi all,

    the Qualcomm device works for me, too. Here are the details for ThinkPad Edge users.

    System information:
    root@ThinkPad-Edge:~/qual# uname -a
    Linux ThinkPad-Edge 2.6.31-20-generic #57-Ubuntu SMP Mon Feb 8 09:02:26 UTC 2010 x86_64 GNU/Linux

    Model: Lenovo ThinkPad Edge 13″, Type: 0196-2EG

    Download the sources and files for the qcserial kernel module, and add the two needed USB ids:
    Add these two IDs, first for initial device, second for making the ttyUSB again after successful firmware loading:

    static struct usb_device_id id_table[] = {
    {USB_DEVICE(0x05c6, 0x9204)}, /* Thinkpad Edge Gobi QDL device */
    {USB_DEVICE(0x05c6, 0x9205)}, /* Thinkpad Edge Gobi QDL device */

    Confirming the previously posted file information on the firmware files:
    root@ThinkPad-Edge:~/qual# ls -las /lib/firmware/gobi
    total 13904
    4 drwxr-xr-x 2 root root 4096 2010-03-10 16:35 .
    12 drwxr-xr-x 8 root root 12288 2010-03-10 16:34 ..
    10840 -rwxr-xr-x 1 root root 11096116 2010-03-10 16:34 amss.mbn
    3036 -rwxr-xr-x 1 root root 3104812 2010-03-10 16:34 apps.mbn
    12 -rwxr-xr-x 1 root root 9284 2010-03-10 16:35 UQCN.mbn

    Before firmware loader (gobi_loader)
    root@ThinkPad-Edge:~/qual# lsusb | grep Qualcomm
    Bus 001 Device 004: ID 05c6:9204 Qualcomm, Inc.

    Firmware loader log (gobi_loader):
    QDL protocol server request sent
    01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64
    20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00
    00 04 04 30 03 0b
    QDL protocol server response received
    7e 0d 05 00 00 00 00 04 e4 7e
    QDL protocol server request sent (Retry as gobi2000)
    01 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65 64
    20 70 72 6f 74 6f 63 6f 6c 20 68 73 74 00 00 00
    00 05 05 30 07 48
    QDL protocol server response received (Retry as gobi2000)
    7e 02 51 43 4f 4d 20 68 69 67 68 20 73 70 65 65
    64 20 70 72 6f 74 6f 63 6f 6c 00 00 00 00 24 00
    17 5c 05 05 00 00 00 00 00 00 00 00 00 00 00 00
    00 30 d8 f6 7e
    QDL protocol server request sent
    25 05 2c 50 a9 00 01 00 00 00 04 00 00 40 97
    QDL protocol server response received
    7e 26 00 00 01 00 00 00 04 52 65 7e
    QDL protocol server request sent
    27 00 00 00 00 00 00 2c 50 a9 00 db ae
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 610348 bytes of image
    QDL protocol server response received
    7e 28 00 00 00 00 00 00 00 00 14 39 7e
    QDL protocol server request sent
    25 06 2c 60 2f 00 01 00 00 00 04 00 00 81 0e
    QDL protocol server response received
    7e 26 00 00 01 00 00 00 04 52 65 7e
    QDL protocol server request sent
    27 00 00 00 00 00 00 2c 60 2f 00 69 f0
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1048576 bytes of image
    QDL protocol server sent 1007660 bytes of image
    QDL protocol server response received
    7e 28 00 00 00 00 00 00 00 00 14 39 7e
    QDL protocol server request sent
    25 0d 44 24 00 00 01 00 00 00 04 00 00 50 90
    QDL protocol server response received
    7e 26 00 00 01 00 00 00 04 52 65 7e
    QDL protocol server request sent
    27 00 00 00 00 00 00 44 24 00 00 b9 49
    QDL protocol server sent 9284 bytes of image
    QDL protocol server response received
    7e 28 00 00 00 00 00 00 00 00 14 39 7e
    QDL protocol server request sent
    29 bb 4c
    Firmware Loading Complete

    After firmware loader (gobi_loader)
    root@ThinkPad-Edge:~/qual# lsusb | grep Qualcomm
    Bus 001 Device 004: ID 05c6:9205 Qualcomm, Inc.

    Note on /etc/udev/rules.d/60-gobi.rules:
    Do not add your device here – did not work for me and prevented the firmware loader to work properly.

    snippet from /var/log/syslog after firmware loader:
    Mar 11 08:47:32 ThinkPad-Edge kernel: [ 99.911365] usb 1-5: USB disconnect, address 3
    Mar 11 08:47:32 ThinkPad-Edge kernel: [ 99.911606] qcserial ttyUSB0: Qualcomm USB modem converter now disconnected from ttyUSB0
    Mar 11 08:47:32 ThinkPad-Edge kernel: [ 99.911627] qcserial 1-5:1.1: device disconnected
    Mar 11 08:47:32 ThinkPad-Edge kernel: [ 100.230123] usb 1-5: new high speed USB device using ehci_hcd and address 4
    Mar 11 08:47:32 ThinkPad-Edge kernel: [ 100.391409] usb 1-5: configuration #1 chosen from 1 choice
    Mar 11 08:47:32 ThinkPad-Edge kernel: [ 100.402213] qcserial 1-5:1.2: Qualcomm USB modem converter detected
    Mar 11 08:47:32 ThinkPad-Edge kernel: [ 100.402312] usb 1-5: Qualcomm USB modem converter now attached to ttyUSB0

    Ubuntu’s network-manager refused to “recognize” the device when trying to add a mobile broadband connection (no device to be selected in the first dialogue), so use wvdial in the meantime:

    wvdial script example for Vodafone Germany (wvdial.conf):
    [Dialer Defaults]
    Modem = /dev/ttyUSB0
    Phone = *99***1#
    Username = YOUR_USERNAME
    Password = YOUR_PASSWORD
    Init1 = ATZ
    Init2 = AT+CGDCONT=1,”IP”,”web.vodafone.de”
    Ask Password = 0
    Dial Command = ATDT
    Auto DNS = 1
    Check Def Route = 1
    Baud = 230400
    Stupid Mode = 1
    New PPPD = yes
    Carrier check = no

    PPPD takes a while to get the IP, but it works.

    All the best, and thanks to the gobi_loader and qcserial contributors!
    Best Matthias.

    1. Hi Matthias,

      I usually do a sudo pkill modem-manager to get things rolling, no need to do wvdial 🙂

      The problem with the gobi-rules is that some machines boot too fast and the gobi_loader currently has no error checking…will fix when I get a moment…

  9. I’ve finally had the time to get the firmware from my Windows 7 hard drive.

    Would it be possible to have some brief instructions explaining how to compile and install qcserial and gobi_loader?

    That would be tremendously kind!

  10. Back again. Ubuntu has upgraded my kernel to 2.6.31-21 – I’ve re-built qcserial with the correct IDS, /dev/ttyUSB0 exists on cold-boot, lsusb shows:

    Bus 001 Device 002: ID 03f0:241d Hewlett-Packard

    /lib/udev/gobi_loader /dev/ttyUSB0 /lib/firmware/gobi

    Just hangs, no output. Any suggestions?

    Thanks

    Andrew

  11. Thank you so much for these instructions and code. I got it working. I noticed that it doesn’t automatically come back on line when you resume from a suspend or hibernate so I had to run a script manually to reload it.

    #!/bin/sh
    gksudo gobi_loader /dev/ttyUSB0 /lib/firmware/gobi/
    gksudo pkill modem-manager

  12. Great guide!

    However, I could not get qcserial working until i applied the patches found here: http://thread.gmane.org/gmane.linux.usb.general/29707

    But then it also worked on lucid lynx with 2.6.32 kernel! 🙂 Also, these patches seem to improve performance and allow great speeds (4mbps where I’m sitting now!) Big thanks to Matthew Garret!

    I’ve modified your qcserial to include these patches, will you host them? (contact me via mail, and i’ll send them to you)

    1. Hi Sjur Kvammen,

      I believe I have the same problem here with the 2.6.32 kernel.

      Would you mind sending me the patched version?
      (singyiu.pinc @ gmail.com)

      Thanks a lot.

      Sing

    2. Hello Mr. Sjur Kvammen,

      It seems from your post that you are an expert at understanding what needs to be done out of the instructions found on this page … http://www.codon.org.uk/~mjg59/gobi_loader/

      Also it seems you have succeeded in it too, i am unable to comprehend the instructions found at the Mathew Garette’s website. Can you please help me with a step-by-step guide on implementing the solution for my Gobi 2000 !

      I have the latest Ubuntu 10.10 so that carries the newest kernel.

      I installed the gobi_loader from the apps found in the ubuntu software repository. i created the gobi folder and copied the firmware images to that location.

      The issue has been that the Card firmware loads at its own will, it is not consistent.

      The biggest problem is that i am unable to unload the qcserial module from the terminal, an effort to do so results in a FATAL warning saying module is in ‘use’

      I am one of the few users who can’t attempt the soft boot(by first booting into windows and restarting into ubuntu) as i have not been able to successfully install the Gobi 2000 drivers on my Windows 7.

      Can you please help me with a way to fix this Gobi 2000 issue ?

      Or atleast help me to unload qcserial and reload ?

      thanks in advance
      Muzafsh.

  13. Update:
    Seems your (madox) gobi-loader does not work on 2.6.32 from cold boot. I tested first with 2.6.31 kernel, loaded firmware successfully, then rebooted, reloaded firmware, which then completed successfully and voilà, thought I had it made. But coming back to my machine after leaving it off, gobi_loader would hang in 2.6.32. There is light in the tunnel, however, it works with gobi_loader 0.5.1 from http://aur.archlinux.org/packages.php?ID=30943 (also udev-rules)

    info:
    machine: lenovo t410s
    skvammen@sk-t410s:~$ uname -r
    2.6.32-21-generic-pae

  14. Hi,
    @Sjur Kvammen i read about the patches too on the gobi_loader site http://www.codon.org.uk/~mjg59/gobi_loader/ but I’m not sure how I can apply them, could you post a little howto?

    @All Another thing, I installed the files added my Devices (for my Sony Vaio VPCS11C5E) and rebooted, after that i manually loaded gobi (sudo gobi_loader /dev/ttyUSB0 /lib/firmware/gobi) and it worked lsusb changed from 9224 to 9225 then i killed the modem-manager and the modem appeared in the networkmanager. After that i configured the connection (the parameters a definetly correct used them with my usb-umts-stick too) but as soon as i klick on connect it instantly tells me the connection was sepperated without even trying to connect.

    I’m using Ubuntu Lucid Lynx and a mainline 2.6.33 kernel.

    Hope some one can help me.

  15. Hey 🙂

    great to see you have the wwan module working. I’m going nuts here, would you mind shooting me an email with those firmware files. First thing i did was remove windows from the laptop, now im going nuts finding the right firmware files. The link you had to the hp site is dead unfortunately 🙁

    Kind Regards
    Rob

    1. I’m pretty sure the kernel will only install the qcserial, and you’ll still need the user mode gobi_loader to load the firmware.

  16. Ok the modem gets detected with 2.6.35rc1, only problem is, networkmanager thinks thats its a CDMA modem. Its supposed to be GSM. I’m at a loss. No 3G in .32, no 3G in .35rc1 🙁

    1. I think you’re loading the wrong firmware there should be one for CDMA and a different for GSM but a can’t tell you where to find it other than somewhere on the windows partition or in the Extracted Firmwarefiles.

  17. Hi,

    I have the same wwan chipset in HP mini 210. I have installed gobi-loader, have /dev/ttyUSB0, firmware files and they seem to be loaded correctly – network-manager detected HP un2420 modem. When I try to connect to GSM network I get network timeout. Here is syslog:

    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) starting connection ‘Orange Domyślne 1’
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: (ttyUSB0): device state change: 3 -> 4 (reason 0)
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) scheduled…
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) started…
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: (ttyUSB0): device state change: 4 -> 6 (reason 0)
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) complete.
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) scheduled…
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) started…
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: (ttyUSB0): device state change: 6 -> 4 (reason 0)
    Nov 26 14:31:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) Stage 1 of 5 (Device Prepare) complete.
    Nov 26 14:32:46 michal-HP-Mini-210-1000 NetworkManager[835]: GSM connection failed: (32) Network timeout
    Nov 26 14:32:46 michal-HP-Mini-210-1000 NetworkManager[835]: (ttyUSB0): device state change: 4 -> 9 (reason 1)
    Nov 26 14:32:46 michal-HP-Mini-210-1000 NetworkManager[835]: Marking connection ‘Orange Domyślne 1’ invalid.
    Nov 26 14:32:46 michal-HP-Mini-210-1000 NetworkManager[835]: Activation (ttyUSB0) failed.
    Nov 26 14:32:46 michal-HP-Mini-210-1000 NetworkManager[835]: (ttyUSB0): device state change: 9 -> 3 (reason 0)
    Nov 26 14:32:46 michal-HP-Mini-210-1000 NetworkManager[835]: (ttyUSB0): deactivating device (reason: 0).

    For me it seems like GSM radio is turned off. Do you have any idea how could I resolve my issue? I have Ubuntu 10.10 with latest kernel 2.6.32-23 and gobi_loader 0.7.
    lsusb outputs:

    Bus 001 Device 004: ID 03f0:251d Hewlett-Packard Gobi 2000 Wireless Modem

    Thanks in advance for any help.

  18. any idea how to fix this? im using the patches, and the drivers listed above, but this is what i get in my kern.log

    Dec 19 22:22:37 FIKS-MINI kernel: [ 18.928074] USB Serial support registered for Qualcomm USB modem
    Dec 19 22:22:37 FIKS-MINI kernel: [ 18.928982] qcserial 1-5:1.1: Qualcomm USB modem converter detected
    Dec 19 22:22:37 FIKS-MINI kernel: [ 18.929677] usb 1-5: Qualcomm USB modem converter now attached to ttyUSB0
    Dec 19 22:22:37 FIKS-MINI kernel: [ 18.930625] usbcore: registered new interface driver qcserial
    Dec 19 22:22:37 FIKS-MINI kernel: [ 18.937299] dell-laptop: Blacklisted hardware detected – not enabling rfkill

    i dont have any access to the modem….heres my lsusb results

    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 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 005: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
    Bus 001 Device 004: ID 8086:0188 Intel Corp. WiMAX Connection 2400m
    Bus 001 Device 003: ID 413c:8185 Dell Computer Corp. Gobi 2000 Wireless Modem (QDL mode)
    Bus 001 Device 002: ID 0c45:641d Microdia
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    as you can see its listed, but networkmanager doesnt pit it up, nor does wvdial

    help please? im locked into a sprint contract and theres no way im using windows7 on this thing.

    Thanks!

  19. Need help on Gobi 2000 !!!

    Anybody who can help me load the drivers on windows 7 and ubuntu 10.10 ???

    Hello Mr. Sjur Kvammen,

    It seems from your post that you are an expert at understanding what needs to be done out of the instructions found on this page … http://www.codon.org.uk/~mjg59/gobi_loader/

    Also it seems you have succeeded in it too, i am unable to comprehend the instructions found at the Mathew Garette’s website. Can you please help me with a step-by-step guide on implementing the solution for my Gobi 2000 !

    I have the latest Ubuntu 10.10 so that carries the newest kernel.

    I installed the gobi_loader from the apps found in the ubuntu software repository. i created the gobi folder and copied the firmware images to that location.

    The issue has been that the Card firmware loads at its own will, it is not consistent.

    The biggest problem is that i am unable to unload the qcserial module from the terminal, an effort to do so results in a FATAL warning saying module is in ‘use’

    I am one of the few users who can’t attempt the soft boot(by first booting into windows and restarting into ubuntu) as i have not been able to successfully install the Gobi 2000 drivers on my Windows 7.

    Can you please help me with a way to fix this Gobi 2000 issue ?

    Or atleast help me to unload qcserial and reload ?

    thanks in advance
    Muzafsh.

      1. [11924.525730] qcserial 1-2:1.1: Qualcomm USB modem converter detected
        [11924.526019] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB0
        [11924.526872] qcserial 1-2:1.2: Qualcomm USB modem converter detected
        [11924.527112] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB1
        [11924.529025] qcserial 1-2:1.3: Qualcomm USB modem converter detected
        [11924.529151] usb 1-2: Qualcomm USB modem converter now attached to ttyUSB2

        $GPGSA,A,3,12,18,21,25,30,,,,,,,,3.1,2.4,2.0*39
        $GPGSV,4,1,14,25,50,327,39,21,41,264,36,26,,,31,15,11,032,29*4C
        $GPGSV,4,2,14,30,11,219,28,18,13,331,28,12,18,008,28,31,02,262,24*71
        $GPGSV,4,3,14,24,,,,17,,,,16,,,,14,,,*79
        $GPGSV,4,4,14,13,,,,11,,,*7E
        $GPGGA,110027.7,3354.272809,S,15106.243427,E,1,05,2.4,4.6,M,23.0,M,,*43
        $PQXFI,110027.7,3354.272809,S,15106.243427,E,4.6,19.78,11.87,2.20*7A
        $GPVTG,nan,T,nan,M,0.0,N,0.0,K,A*23

        Ooo gobiloader still works hehe

  20. Thank you very much! I followed the first steps of your howto and I successfully enablem the qualcomm modem of my sony vaio on ubuntu 11.04.

    There was no need to recompile the qcserial module, the one shipped with 2.6.39-3 kernel is ok. And there was no need to build gobi_loader from source, it’s already on the repository.

    Just needed to copy the firmware files in /lib/firmware/gobi, apt-get install gobi-loader, reboot and enjoy! cool! 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *