Three month ago I bought a Sony Vaio X netbook. The Windows 7 which was preinstalled on the system was no option for me. I installed Ubuntu on it and got mostly all of the hardware working. Read my Ubuntu Installation experience article for more details. One piece of hardware did however refuse to work: The WWAN modem. Finally the offline times are over. The modem is now working like a charm.
The WWAN hardware
Sony integrated a WWAN modem called
Gobi 2000, which is produced by
Qualcomm. Even though Qualcomm claims the Gobi 2000 modem does have
Linux support, it seems that these drivers are only given to hardware
vendors ordering in higher quantities. No consumer drivers exist. At
least no official ones. Luckily some open-source guys wrote the
qcserial kernel module and the
gobi_loader. The first one provides
the necessary serial device interface to program and access the modem.
The second one uploads the needed firmware into the modem. The qcserial
module, which is distributed with the current Linux kernel does only
support the Gobi 1000, which is the direct predecessor of the Gobi 2000
chip. Fortunately patched versions of the kernel module as well as the
firmware loader have been created with the intent to use them with a
These patches can easily adapted to work with the Sony Vaio X as well.
Step by step
The efforts to allow Ubuntu to access the modem can be divided into four simple steps:
- Extract the needed firmware from the windows installation
- Compile and install the patched
- Autoload the kernel module during bootup
- Compile and install the patched
Before proceeding please make sure the SIM card of your mobile data provider is inserted into the modem correctly. The SIM slot can be reached by removing the battery.
The modem needs to be initialized with a certain country specific firmware each time it is powered up. This firmware is deployed with the preinstalled windows on the Vaio X. Unfortunately it can not be downloaded anywhere. For legal reasons I can not publish it either.
However it is quite easy to extract the needed files from the windows system.
The windows driver contains a lot of different firmware files. Three for each country supported by the modem. To identify the three files you need to make the modem work access the following file on your windows installation:
The files listed in here are the ones needed by your modem in your
country. Please copy them to the following directory on your Linux
/lib/firmware/gobi/. Most likely this directory does not exist
therefore it needs to be created first.
To allow communication with the modem a patched version of the
qcserial kernel module needs to be build.
Download the following archive and extract it to a directory of your choice:
The extraction is easily handled using tar from the commandline or your favorite gui utility:
tar xvzf qcserial_with_gobi2000_support.tar.gz
The kernel module needs to be compiled in order to be loaded into the kernel. The prerequisites that need to be installed for this are the kernel-headers of your current system kernel, as well as a current gcc version for compiling. Compiling and installing the module is easy. Simply issue the following commands inside a terminal:
cd qcserial make sudo make install
The module will be installed into the directory holding all of your
kernels modules automatically. Manually it can be loaded using the
modprobe command followed by the module name:
This can be done for testing purposes. However it is not needed, as the next section will describe how to make Ubuntu load the module automatically during system startup.
You need to recompile and reinstall this kernel module every time your system kernel has been updated. Otherwise it will stop working, as it is version specific.
Autoloading the qcserial kernel module
To make Ubuntu load the
qcserial module every time the system is
booted it needs to be added to the
modules file, which can be found in
/etc directory. Use the following commands to add the module for
sudo su echo "qcserial" >>/etc/modules
qcserial module has been loaded the Gobi 2000 needs to be
initialized with the firmware which has been extracted earlier. The
gobi_loader application takes care of this. As always the loader needs
to be downloaded compiled and installed.
Again choose your favorite tool to extract the archive or use the tar command instead:
tar xvzf gobi_loader_with_gobi2000_support.tar.gz
After that compiling and installing is quite simple:
cd gobi_loader make sudo make install
Makefile is configured to install the gobi_loader to
as well as register it's execution with udev as soon as the gobi modem
is detected. Therefore the firmware is automatically loaded every time
it is necessary. The modem initialization should be done magically in
the background during system startup from this point on.
A system restart is recommended to make sure everything is initialized in the right way. After the reboot the network manager can be used to setup the connection to your mobile data provider. Congratulations to your new freedom.
Most of the information presented in this article has been taken from the comments of my previous article about the Vaio X. One of the comment writers pointed out another blog article describing the wwan installation on a hp netbook, which shares the same modem. The author of the mentioned blog article published patched version of the qcserial kernel module, as well as the gobi_loader, which have been slightly modified by me and presented here for download. I want to thank the original author, as all this would not have been possible without him.