Keywords: Sierra MC8755, HSDPA, UMTS, 3G, Lenovo, European T61p, high speed, wireless WAN, WWAN, Ubuntu 8.04, Hardy Heron

Version: 1.00 (28 Jul 2008)

Introduction

This document gives a short description on how to get the Lenovo T61p wireless WAN card working on Ubuntu (8.0.4). To ensure that we're talking about the same device, ensure that the output of lsusb shows the following:

torh@t61p:~$ lsusb|grep -i sierra
Bus 006 Device 002: ID 1199:6813 Sierra Wireless, Inc.
The problem, the solution

The problem with this device is that the usbserial module claims the Sierra driver by default. This means that even though you have a swish dataplan with your mobile provider, the transfer speed will max out at roughly 500kbit/s (I do not profess to know the reason why this is).

The solution to the problem is to ensure that the option module claims the Sierra driver instead. By default (at least when this document was written, using kernel version 2.6.24-20-generic), the option driver does not recognise the Sierra Wireless device.

Luckily, this is simplicity itself to fix, especially with the help of Google and the hard labour of Other People's Work(tm), as summarised below.

The steps to success!

1) Ensure that you have installed the Linux source tree for your version of the kernel; you can do this any way you want, but the simplest way of doing this in Ubuntu or any other Debian derivative is probably:

torh@t61p:~$ sudo aptitude install linux-source
2) Patch /usr/src/linux-source-2.6.24/drivers/usb/serial/option.c and add the correct vendor (e.g. stick it under the #define for QUALCOMM_VENDOR_ID or something):

#define SIERRA_VENDOR_ID 0x1199
Next, add the correct identifier for the USB_DEVICE (look for the line that contains { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ or similar, and add the following entry:
{ USB_DEVICE(SIERRA_VENDOR_ID,0x6813)}, /* Sierra Wireless MC8755 */
Now you need to recompile the option module and replace the old one:
torh@t61p:~$ cd /usr/src/linux-source-2.6.24/drivers/usb/serial/
torh@t61p:~$ sudo make -C /lib/modules/`uname -r`/build M=`pwd`
torh@t61p:~$ sudo cp -f option.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/
torh@t61p:~$ depmod -a
To use the driver right away, you need to remove the usbserial module and Sierra driver (if your system says that usbserial is still in use after this, you may have other devices requiring usbserial, so you need to remove the drivers for these first):
torh@t61p:~$ sudo rmmod sierra
torh@t61p:~$ sudo rmmod usbserial
Now you should be ready to use the option driver:
torh@t61p:~$ modprobe option
Add the option module to the list of modules in /etc/modules, and the Sierra card should be recognised next time the system is booted.

Configure the ppp driver to use /dev/ttyUSB0 and away you go.