Option Modems Driver


Compile USB Serial Modem Using option.c (Ubuntu on Beagleboard xM)

Windows XP (Updated 26-Apr-03). Windows XP & Modems: Windows XP comes with a variety of 'generic' modem drivers - including modems based upon all the popular chipsets. In many cases, adding, changing, or removing a modem is simple: plug and play. Option / USBSERIALOPTION - USB driver for GSM and CDMA modems with built-in OHCI-USB adapter (Option, Huawei, Audiovox, Novatel, Anydata) sierranet / USBSIERRANET - USB-to-WWAN driver for Sierra Wireless modems. Let’s take a quick look at what a modem driver is. A modem works by gathering data from your system and transmitting the data over telephone lines, fiber optic cables, or cable lines in order to deliver the data to another modem. The driver itself is a piece of code that tells the data transfer to happen. Theoretical max speeds based on 5G mmwave technology and eight channel carrier aggregation (8cc). Actual speeds vary based on many factors including network configuration, signal strength, network congestion, physical obstructions, and weather. 5G network coverage (available in certain areas in 2020, expanding after that).

Option Modems Drivers

In ARM Linux, General Linux, Ubuntu on 9 January 2012 with 2 comments 3959 views

Option Modems Driver

Despite possibility to use (1)


or (2) usb-modeswitch, (3) Matthias Urlichs initially wrote option.c driver as a way to insert USB modem as kernel module.

This driver exists because the “normal” serial driver doesn’t work too well
with GSM modems. Issues:
- data loss — one single Receive URB is not nearly enough
- nonstandard flow (Option devices) control
- controlling the baud rate doesn’t make sense

Most modems will be successfully attached with this driver, appearing in one of the typical /dev/ttyUSB0 to /dev/ttyUSB2. The product ID 0x0015 for GSM modem compiled here is a Qualcomm (vendor ID 0x05c6) OEM modem I received from Embest DevKit8500D order. There are more than one form factor when searching for its images on Google. Closest one we have in Indonesia is ADVAN DT8-HT bundled in Telkomsel Flash.

Qualcomm 05c6:0015 from Indonesian operator

Option modems drivers license

I’m compiling it for the Beagleboard xM Rev C running Ubuntu Oneiric (installed in this post). A quick look gives:

The above 0x0015 product ID doesn’t exist inside option.c of linux kernel 3.0.0-12 source. Adding this to series of existing Qualcomm modems gives:

Option Modems Drivers License

The include also needs usb-wwan.h from that kernel source. Copy them both under /usr/src/linux-headers-3.0.6-x3/drivers/usb/serial/. For other include files, install:

and create this link as root

After removing the old one (pointed to build -> /build/buildd/linux-3.0), create a link inside /lib/modules/3.0.6-x3 named build pointing to:

Modify the original Makefile to contain only rule for option.o

and then build the driver

Copy the build and deploy


Now syslog will show the following lines if the modem is inserted: