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
Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
Steps to reproduce
- Pass a Quectel EC25 USB modem through to an OrbStack Ubuntu machine.
- Confirm that the device is visible:
lsusb
Output:
Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
- 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
- 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.
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
7.0.11-orbstack-00360-gc9bc4d96ac70
Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
Steps to reproduce
lsusb
Output:
Bus 001 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
sudo modprobe option
Result:
modprobe: FATAL: Module option not found in directory /lib/modules/7.0.11-orbstack-00360-gc9bc4d96ac70
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.