Skip to content

Add CONFIG_USB_SERIAL_OPTION support for Quectel LTE modems #2594

Description

@lageev

OrbStack’s custom Linux kernel does not currently provide the option USB serial driver, which is required by many Quectel cellular modems, including the EC25.

The USB device can be successfully passed through to an Ubuntu machine and is visible in lsusb, but the proper serial ports are not created because option.ko is missing.

Environment

  • Linux distribution: Ubuntu
  • Kernel:

7.0.11-orbstack-00360-gc9bc4d96ac70

  • USB device:

Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem

Steps to reproduce

  1. Pass a Quectel EC25 USB modem through to an OrbStack Ubuntu machine.
  2. Confirm that the device is visible:

lsusb

Output:

Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem

  1. Try to load the standard Linux driver:

sudo modprobe option

Result:

modprobe: FATAL: Module option not found in directory /lib/modules/7.0.11-orbstack-00360-gc9bc4d96ac70

  1. Check the available USB serial modules:

find /lib/modules/$(uname -r)
( -iname 'option.ko*' -o -iname 'usbserial.ko*' )

Only the generic USB serial module is present:

/lib/modules/7.0.11-orbstack-00360-gc9bc4d96ac70/kernel/drivers/usb/serial/usbserial.ko

Actual behavior

The modem is detected as a USB device, but no serial ports are created using the proper Quectel-compatible driver.

I can force the generic USB serial driver to bind:

sudo modprobe usbserial vendor=0x2c7c product=0x0125

This creates:

/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
/dev/ttyUSB4

However, the kernel warns that the generic driver is intended only for testing and one-off prototypes:

The "generic" usb-serial driver is only for testing and one-off prototypes.
Tell linux-usb@vger.kernel.org to add your device to a proper driver.

Using the generic driver may also incorrectly bind interfaces intended for QMI, MBIM, diagnostics, GNSS, or other functions.

Expected behavior

OrbStack’s Linux kernel should include the standard USB serial driver used by Quectel cellular modems.

At minimum, please consider enabling:

CONFIG_USB_SERIAL=y or m
CONFIG_USB_SERIAL_OPTION=y or m
CONFIG_USB_SERIAL_WWAN=y or m

For complete cellular modem support, these options would also be useful:

CONFIG_USB_WDM=y or m
CONFIG_USB_NET_QMI_WWAN=y or m
CONFIG_USB_NET_CDC_MBIM=y or m

With CONFIG_USB_SERIAL_OPTION enabled, the EC25 should automatically bind to the appropriate interfaces and create the expected /dev/ttyUSB* devices without using the generic test driver.

Additional information

Relevant kernel log when the device is attached:

usb 1-1: new high-speed USB device number 2 using xhci-hcd
usb 1-1: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice=3.18
usb 1-1: Product: Baiwang
usb 1-1: Manufacturer: BAIWANG

The USB passthrough itself appears to work correctly. The missing kernel driver is the remaining issue.

Thank you for considering adding this driver to the OrbStack kernel configuration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions