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