CDCEEM(4)
π CDCEEM(4) π
okay bestie, welcome to the manual page for cdceem, aka the USB Communication Device Class Ethernet Emulation Model (CDC EEM) driver π
this one lives in section 4 of the Kernel Interfaces Manual and it's genuinely so cool, let's get into it π¦
β¨ NAME β¨
cdceem β USB Communication Device Class Ethernet Emulation Model (CDC EEM) driver πΈ
β¨ SYNOPSIS β¨
so like, if you wanna bake this driver straight into the kernel π drop these lines in your kernel configuration file:
device uhci
device ohci
device usb
device miibus
device uether
device cdceem
or β and this is the lowkey easier route β load it as a module at boot time by putting this line in loader.conf(5):
if_cdceem_load="YES"
pick one, bestie, you don't need both π
β¨ DESCRIPTION β¨
the cdceem driver is what gives you support for USB devices that are built on the USB Communication Device Class Ethernet Emulation Model (CDC EEM) specification π₯
it works on both the host side and the device side, no cap β peep usb_template(4) for the details π
the USB device shows up as a totally regular network interface on both sides, just carrying Ethernet frames back and forth like it's nothing π
for the whole rundown on configuring this device, go look at ifconfig(8) β¨
and like, one thing to know: the cdceem driver does not support different media types or options. it's giving minimalism, and honestly? we respect it π
β¨ SYSCTL VARIABLES β¨
these variables are available both as sysctl(8) variables and as loader(8) tunables π
hw.usb.cdceem.debug
verbosity level for log messages coming out of the cdceem driver π’ set it to 0 to turn logging off entirely, or 1 to get warned about potential problems. bigger values = more debugging output. defaults to 1 β
hw.usb.cdceem.send_echoes
if you set this to 1, the driver sends an Echo EEM packet whenever the interface gets brought up π¦ now here's the tea: responding to Echo is mandatory, but some devices literally cannot handle it π so only use this for debugging. defaults to 0 π
hw.usb.cdceem.send_fake_crc
if you set this to 1, the driver uses 0xdeadbeef as the CRC value for outgoing Data EEM packets π only use for debugging. defaults to 0 π
β¨ SEE ALSO β¨
also the actual spec if you're feeling academic π: Universal Serial Bus Communications Class Subclass Specification for Ethernet Emulation Model Devices, https://usb.org/sites/default/files/CDC_EEM10.pdf
β¨ HISTORY β¨
the cdceem device driver first appeared in FreeBSD 13.0 π iconic debut, fr fr
β¨ AUTHORS β¨
the cdceem driver was written by Edward Tomasz Napierala <trasz@FreeBSD.org> under sponsorship from Hewlett Packard Enterprise π absolute legend behaviour
and that's the whole page bestie!! πΈ this one's from the Debian build of the manpage, dated August 7, 2019, and you were reading CDCEEM(4) β slay, go configure ur network interface, you've got this π β¨π«Ά
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2019 Edward Tomasz Napierala <trasz@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms