Last year, our company has purchased HP Elitebook 8560p laptops in order for them to replace our aging old desktop replacement laptops. Since we are running exclusively on Linux (and sometimes Solaris, even as a home computer operating system :)), company is faced with eternal inner battle – wether it should buy laptops with preinstalled Windows OS or FreeDOS. Since we don’t want to throw
good software away, we usually pick models with FreeDOS alternative available (HP seems not to sell linux-preloaded laptops in Croatia, if anywhere). So this model seemed like a perfect match for our needs – powerful hardware, very hip and up-to-date industrial design of its case more than slightly (but not enough for HP to get sued for that) resembling Macbook Pros, also delivers internal 3G modem interface so we can do our job on the road…
But, of course, there are problems.
As it usually goes with the most of the Hewlett Packard hardware, Linux is kind-of supported. Every modern linux distribution (not only those meant for hipsters and cool kids, but that list also includes enterprise-oriented Red Hat Enterprise Linux 6) will run on it.
Most of the hardware works out of the box. Hardware we didn’t cope with in attempts to make it work includes fingerprint reader (seems no standard Linux utils recognize it) and a built-in 56k dial-up modem (WTF?). The newer the OS is the better support for hardware is (for example, multitouch support for its touchpad).
But one useful piece of hardware didn’t work with none of the 3 up-to-date generations of Linux kernel/OS: RHEL6, Fedora 14/15/16, nor up-to-date ArchLinux. Hardware lacking out-of-the-box functionality is a built-in 3G broadband modem.
qcserial module (in general meant to provide virtual serial port functionality for Qualcomm mobile broadband chipsets) recognizes the modem in full since one of the kernel 3.1 updates when HP un2430 IDs entered the main tree. But when you attempt usual connection techniques and try to dial out connection sequence (or only issue ATZ command for that matter), nothing happens. Broadband modem does not react to your attempts to tease it.
With some research, we have discovered CodeAurora repository for Gobi API (one of the projects which it contains is GobiSerial). GobiSerial was just what we needed – with minimal patch effort (coming down to adding our broadband modem vendor and product ID to it), it has provided necessary virtual serial port support we’ve needed to connect to UMTS/3G/EDGE networks.
But, alas, nothing unmaintained lasts for long time in the everlasting world of opensource software. Due to the fact that USB support seems to be going through active rewrite in recent Linux kernels, versions 3.2, 3.4 and 3.5 respectively broke the GobiSerial which was last maintained on CodeAurora in July 2011.
But what kind of the opensource company would we be if we couldn’t follow those changes to support the hardware we need and regulary use? So, folks, we have decided to make a new fork of GobiSerial which we’ll try to keep up-to-date with current and future changes in kernel code on which it relies.
Git repository for the updated GobiSerial to work with kernels all the way to 3.5 (and hopefully above!) can be found at github. Please refer to the project’s wiki pages if you need help, or even this Arch linux forums thread (useful info starts from post #6 and below).
If you are not running on a computer with HP un2430 modem, you will probably need to add product and vendor IDs to the source code (as described in the Arch linux forum link). When you do it, feel free to contribute to the project. :)