Skip to content

Char major 180 (usbmisc) missing from device allowlist — /dev/cdc-wdm* unopenable, QMI/MBIM modems limited to AT #2635

Description

@PnutCN

v2.2.2 shipped the modem kernel modules from #2594, and that part works. With an EC20/EC25 (2c7c:0125) attached, option, qmi_wwan, cdc_mbim and cdc-wdm all load, /dev/ttyUSB0-3 show up, and wwan0 is created:

option 1-1:1.0: GSM modem (1-port) converter now attached to ttyUSB0
qmi_wwan 1-1:1.4: cdc-wdm0: USB WDM device
qmi_wwan 1-1:1.4 wwan0: register 'qmi_wwan' at usb-4000c000.usb-1, WWAN/QMI device

But /dev/cdc-wdm0 never appears. The kernel side is fine — /sys/class/usbmisc/cdc-wdm0/dev reads 180:176 and major 180 is in /proc/devices. Creating the node by hand and opening it gives EPERM.

Repro (no modem needed):

docker run --rm --privileged alpine sh -c \
  'mknod /dev/w c 180 176 2>/dev/null; (exec 3<>/dev/w) && echo OK || echo EPERM'

2.2.2 (2020200, kernel 7.0.14) → EPERM

Not the driver rejecting it. Opening a major-180 minor with no device behind it also returns EPERM rather than ENODEV, so it's denied before reaching the driver:

major:minor result
180:176 (cdc-wdm0, real device) EPERM
180:0 (same major, no device) EPERM
108:0 (ppp, fixed in #2524) OK
188:0 (ttyUSB) OK
10:200 (net/tun) OK

Same shape as major 108 in #2524 / #2528 — looks like the device allowlist is missing 180.

Impact: cdc-wdm is the control channel libqmi and ModemManager actually use. Without it a cellular modem is limited to the AT serial ports — SMS and USSD still work, but there's no way to bring up a data connection, so wwan0 never gets an IP. qmi_wwan has already bound the interface; only the node is missing.

Environment: OrbStack 2.2.2 (2020200), kernel 7.0.14-orbstack-00374-gbbca68e8d741, macOS 26.5.2 (Apple Silicon), Quectel EC20F (2c7c:0125).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions