USB class 02: Communications (CDC)

Communications

Code02
NameCommunications (CDC)
Subclasses12
Class drivers (Linux)cdc_acm, cdc_eem, cdc_ether, cdc_mbim, cdc_ncm, cdc_wdm and rndis_host

Frequently asked questions

What is a USB device of class 02 (Communications (CDC))?

Class 02 stands for “Communications (CDC)”. It has 12 subclasses, for example Direct Line, Abstract (modem) and Telephone.

Which Linux drivers handle Communications (CDC)?

In Linux kernel 6.12 these drivers bind to devices by class, regardless of vendor: cdc_acm (02:02:00, 02:02:01, 02:02:02, 02:02:03 …), cdc_eem (02:0c:07), cdc_ether (02:06:00, 02:0a:00), cdc_mbim (02:0d:00, 02:0e:00), cdc_ncm (02:0d:00), cdc_wdm (02:09) and rndis_host (02:02:ff).

How do I find the class of a USB device?

On Linux, lsusb -v shows the bDeviceClass and bInterfaceClass fields. On Windows it appears in the compatible IDs as USB\Class_02&SubClass_XX.

Subclasses

CodeNameProtocolsClass drivers (Linux)
02:01Direct Line
02:02Abstract (modem)00 None
01 AT-commands (v.25ter)
02 AT-commands (PCCA101)
03 AT-commands (PCCA101 + wakeup)
04 AT-commands (GSM)
05 AT-commands (3G)
06 AT-commands (CDMA)
fe Defined by command set descriptor
ff Vendor Specific (MSFT RNDIS?)
cdc_acm, rndis_host
02:03Telephone
02:04Multi-Channel
02:05CAPI Control
02:06Ethernet Networkingcdc_ether
02:07ATM Networking
02:08Wireless Handset Control
02:09Device Managementcdc_wdm
02:0aMobile Direct Linecdc_ether
02:0bOBEX
02:0cEthernet Emulation07 Ethernet Emulation (EEM)cdc_eem

Nearby entries