Getting my GSM modem working under Ubuntu

Another “hack post”, to capture how I got mobile broadband working on my Sony laptop. Sony makes laptops with cutting-edge features (small, solid-state disk, full HD screen) and a stylish look, but doesn’t like to help you take full advantage of it unless you’re on Windows. Undocumented tweaks to the hardware, hard-to-find technical information, and so on.

I bought a Sony VPCZ1 (to be more precise: VPCZ13C5E) with a WWAN module installed, with the idea that I could be online anywhere, without any dongles sticking out, or having to connect by tethering it to my phone over Bluetooth or USB. I’ll pay the extra fee… provided it works.

I have installed Ubuntu 10.10 (which was an effort in itself), and went on an excursion to get mobile broadband running.

First, let’s find out what the hardware is: it’s not listed on Sony’s specs page, but according to the specs of a similar model, it’s a Qualcomm Gobi 2000 (PDF link). It apparently needs to be loaded with a firmware before it will operate. I had to install the Ubuntu package gobi-loader as a starting point.

apt-get install gobi-loader

However, that package does not provide the actual firmware. It expects the firmware in /lib/firmware/gobi, but that directory doesn’t even exist.

The discussion about a Qualcomm problem on Launchpad made me look at a way to get the firmware from the Microsoft-based Qualcomm Gobi2000 (WWAN) Driver 1.1.80 that Sony provides. After unzipping that file, we have a directory with a file GobiInstaller.msi… the firmware is somewhere in there.

After installing either p7zip-full or cabextract, we can extract the contents of the .msi file, to end up with a long list of crypticly named files.

Thanks to a post by Madox, and the discussion after it, I saw what to look for:

/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

As it happens, there is just one file with length 11096116, just one with length 3104812, and 18 with length 9284 bytes. The first two are easy, the UQCN.mbn file contains the specific setup for a region or provider.

When using a hex editor (like hte in the package ht) to inspect the various variants of 9284 byte files, there is a string at the end revealing a bit what it is intended for: umts_gen, umts_orange_nogps, umts_tmo_noxtra and so on. See below for a table of strings, file names, and md5 checksums in my setup.

After copying the appropriate three files with the right name into /lib/firmware/gobi, I flipped the “wireless” switch off, waited some 10 seconds, and switched on again. And was greeted with a pop-up to enter the PIN code for my SIM card: indicating that the modem had been detected, the firmware had been loaded, and my SIM card was working.

Under the Networking menu, I could add a new mobile broadband network, and connect after a few simple steps of selecting my country and provider.

Notes: various posts for earlier versions of Ubuntu mention hacking in qcserial, or compiling your own kernel modules. I didn’t have to do any of that.

string file name in .msi md5sum
umts_gen _61F1C9E9670341009A49DFBF7ED9308B e601a7bf3c55104badcdf21bcbb0bfa9
umts_gen_nogps _82F1F7B633254DD8943C3C66695180D4 633bed88c29244683635c261849d0e88
umts_gen_noxtra _B1755EF712704F6EA05AD29399FDAAD2 f1911bcefc4bd5bf8d8fd401082c1a5a
umts_orange _D086B5600A824F88A7B5B4DA9AEC7393 0044ef086b828c30689b899a3570dd56
umts_orange_nogps _EAA5B766B8FC42258CF0903EB29B3866 1dbb1ce26cb59f9d7b551e54c9f71c80
umts_orange_noxtra _97CDF82428924F739C17CEC7DB7642C5 668d1e8903f362b4fc5ec66145ab9b36
umts_telital _FF884A864DC04D3B9BE3B80CA0D6365D 6f575f681ffad81bf3159c7b2d7122a9
umts_telital_nogps _F5A8481D6D0141DDB5AC04E02C5D6B77 bf6b02a2e4ac42c40b028519ed5db487
umts_telital_noxtra _CE104EC699FA4012AF9BF053838EFEEA 6a1b2b342a9e3548dc02f882f156ec21
umts_tellfon _F85609A0A9B64C399F670AE6D78A9EDD b0edb9f5ee92204f9d0e455ff860ca84
umts_tellfon_nogps _AB685C9BC9BF406691ED3CC70C0EA2F8 345c4671242f94d31e3161ead89227db
umts_tellfon_noxtra _D9B76BE055B04137AB32632049501DF1 f064a0c0c7806d30dacd33b4672661cc
umts_tmo _FC981235AEDB429BA1F601941B97E11C 1061d15ca89d0d8f66919c99cb67cc45
umts_tmo_nogps _A6C51028090341929FAC167B2938F19C 6d7b94fed93f47ceafc9ba0c7889fc1f
umts_tmo_noxtra _9358B6316845471886EF8B592B400046 4132ebbea25e4014043d902d7e272f71
umts_vod _A51C11D307D344229DD775AD527BA6DA 4d1b58cb79817dbe111194dfc286e57a
umts_vod_nogps _890ED25310C543B483CA0E67C40B9C54 d06886a62c5c42e2076e0d2a055d1675
umts_vod_noxtra _A66130F57F1E4EFCAA571D5BFBF84CE4 39f0b2663f682b5c9d97cdaddaa72813
Posted in Technical and tagged , , , , , , , .

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.