NMDM(4)
π NMDM(4) π
okay bestie, gather round, because today we're talking about nmdm β the nullmodem terminal driver, straight out of the Kernel Interfaces Manual. yes it's a kernel driver, yes it's giving unbothered, and yes you're gonna understand it. periodt. π
β¨ NAME β¨
nmdm β nullmodem terminal driver π¦
β¨ SYNOPSIS β¨
so like, you wanna compile this driver into the kernel? iconic. drop this line into your kernel configuration file:
device nmdm
or, alternatively, if you're more of a "load it as a module at boot time" kind of girlie, put this in loader.conf(5) instead:
nmdm_load="YES"
pick your lane, both slay. π
β¨ DESCRIPTION β¨
okay so here's the whole vibe: the nmdm driver hands you two tty(4) devices, and it wires them together with a virtual βnull modemβ cable. that's it. that's the whole thing. a fake cable. no cap. π₯
now, the β¨interestingβ¨ part. if either of those two tty devices has the CDSR_OFLOW bit set in their line discipline β that's the βstty dsrflowβ thing btw, iykyk β then the nmdm device will emulate the speed that's configured in the termios(4) settings. speed match, but make it virtual. π«
and the way that this speed emulation works? it runs independently in the two directions, and it's controlled by the slower end's termios settings β specifically c_ispeed, c_ospeed, CS5 ... CS8, CSTOPB and PARENB. slowest one sets the tempo, fr fr. the way the slower end is literally the main character. π
β¨ FILES β¨
/dev/nmdmN[AB]β nullmodem device nodes. where theAnode has a matchingBnode π«Ά
also! the nmdm driver implements βon-demand device creationβ, which is exactly as cute as it sounds: you just access a given instance in /dev and boom, it creates it. no setup, no ceremony, it just shows up for you. β¨
β¨ DIAGNOSTICS β¨
None. π
like genuinely. nothing. no drama, no errors, no nothing. it's that chill.
β¨ SEE ALSO β¨
β¨ HISTORY β¨
the nmdm driver first appeared in FreeBSD 4.4. a legend from day one, honestly. π
and that's the whole page bestie!! this one came from the Debian side of things, dated January 23, 2018 β so like, a little vintage, but she still ate. π go forth and null-modem responsibly. mwah. π β¨π
π¦ 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) 2001 The FreeBSD Project
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms