Paul's Internet Landfill/ 2012/ Getting a Rogers Compaq CQ10-150CA Netbook Cellular Modem Working in Ubuntu

Getting a Rogers Compaq CQ10-150CA Netbook Cellular Modem Working in Ubuntu

Recently, I was helping somebody get his netbook working on the Rogers cellular network. We discovered some information that is not readily available elsewhere on the Internet, so here it is.

The netbook in question is a Compaq CQ10-150CA netbook. Rogers has a package where they sell you a netbook with a cellular modem built in, and you use their data plan to access the Rogers cellular network for your web surfing. This netbook comes preinstalled with Windows 7 Starter Edition (natch) but the person I was working with wanted to run Ubuntu. It turned out to be very helpful to dual-boot the system with Windows rather than wiping out Windows entirely, because the Windows partition had firmware files we needed.

Once you figure out how to get Ubuntu installed on the machine (booting off a USB key helps) then most things work except for the cellular modem.

In this case the modem is manufactured by Qualcomm, and shows up as a USB device. The lsusb command reveals:

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

Note the USB identifier 03f0:241d.

Even though you can see the modem you can't use it without firmware files and the gobi-loader program. Unfortunately, gobi-loader does not work with Ubuntu 10.04's default kernels, which means you either have to compile some patches in, or you have to use a later kernel. (In particular, it does not work with kernels 2.6.32 and 2.6.33, as documented here The person I was working with opted to install the "bleeding edge" Ubuntu 11.10 instead of trying to make kernel tricks work.

Once Ubuntu 11.10 is installed, you need to install the gobi-loader package:

sudo apt-get install gobi-loader

The next step is to install the firmware files, which go into /lib/firmware/gobi

sudo mkdir -p /lib/firmware/gobi 

Now comes the hard part. The firmware files live on the Windows partition. We found them in the folder c:\Program Files\QUALCOMM\Images\HP\ . Unfortunately there are 11 subfolders there, many of which contain identically-named firmware files! It turns out that different network providers configure the firmware differently, as documented on this ThinkWiki page. Unfortunately, none of the providers listed were Rogers.

The clue for us lie in some log files generated in Windows. The drivers we needed were listed in the file c:\ProgramData\QUALCOMM\QDLService2k\QDLOptions2kHP.txt and there were log files in c:\ProgramData\QUALCOMM\QDLService2k\QDLService2kHP.txt :

12/15/2011 01:14:43.905 [03572] PDA() - Attempting to start download thread, [COM12\QDLService, vid_03f0&pid_241d#5&186fd676&1&6]
12/15/2011 01:14:43.952 [03572] AMSS Path = C:\Program Files\Qualcomm\Images\HP\UMTS\AMSS.mbn
12/15/2011 01:14:43.952 [03572] Apps Path = C:\Program Files\Qualcomm\Images\HP\UMTS\Apps.mbn
12/15/2011 01:14:43.952 [03572] UQCN Path = C:\Program Files\Qualcomm\Images\HP\0\UQCN.mbn
12/15/2011 01:14:43.952 [03572] PDA() - Started download thread 412 (3608), [COM12\QDLService, vid_03f0&pid_241d#5&186fd676&1&6]

This told us that we needed AMSS.mbn and Apps.mbn from the UTMS folder, and UQCN.mbn from the 0 folder.

We copied these files from the Windows partition into /lib/firmware/gobi, and then ran the following commands:

sudo modprobe -r qcserial
sudo modprobe qcserial 

This gave us the following output in dmesg:

[  637.153306] usbcore: deregistering interface driver usbserial
[  643.486432] usbcore: registered new interface driver usbserial
[  643.486490] USB Serial support registered for generic
[  643.533629] usbcore: registered new interface driver usbserial_generic
[  643.533648] usbserial: USB Serial Driver core
[  643.546831] USB Serial support registered for Qualcomm USB modem
[  643.548693] qcserial 1-6:1.1: Qualcomm USB modem converter detected
[  643.549035] usb 1-6: Qualcomm USB modem converter now attached to ttyUSB0
[  643.551390] qcserial 1-6:1.2: Qualcomm USB modem converter detected
[  643.551752] usb 1-6: Qualcomm USB modem converter now attached to ttyUSB1
[  643.551848] usbcore: registered new interface driver qcserial
[  697.823830] PPP BSD Compression module registered
[  697.832888] PPP Deflate Compression module registered

The key is to look for both the ttyUSB0 and ttyUSB1 devices.

If you run lsusb at this point you should see the entry for the Gobi modem has a different identifier:

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

The ID changes from 03f0:241d to 03f0:251d .

At this point we were almost done. In Network Manager we made a new "Broadband Connection" with the following settings:

In "IPv4 Settings" I think we needed to set DNS entries too, but I can't remember whether this was absolutely necessary:

We may have needed a reboot (or just running the modprobe commands again) and we were in business. We could use ping, nslookup, and surf the Internet under whatever hideous conditions Rogers puts on its data plans.

Overall I strongly recommend against using Rogers as a service provider, but if you are stuck with them and you want to use Ubuntu on one of their netbooks, maybe this is of help.