NDIS(4)
๐ NDIS(4) ๐
okay bestie so this is the manual page for ndis from the Kernel Interfaces Manual โ yes we're in the kernel section, we're fancy now ๐ . Strap in, this one's a whole vibe.
โจ NAME โจ
ndis โ the NDIS miniport driver wrapper ๐ฆ
โจ SYNOPSIS โจ
options NDISAPI
device ndis
device wlan
like. that's it. that's the whole setup. so simple, so clean, we love a minimal config ๐
โจ DESCRIPTION โจ
okay so the ndis driver is a wrapper. its whole job? letting binary Windowsยฎ NDIS miniport network drivers run on FreeBSD. yes fr fr, Windowsยฎ drivers. on FreeBSD. iconic behavior honestly. ๐
here's the tea: ndis ships in source code form, and you have to combine it with the Windowsยฎ driver that came with your network adapter. it uses the ndisapi kernel subsystem to relocate and link that Windowsยฎ binary so it can hang out with native code. the ndisapi subsystem is basically the translator โ it provides an interface between the NDIS API and the FreeBSD networking infrastructure. the Windowsยฎ driver is essentially fooled into thinking it's running on Windowsยฎ. ๐
but bestie โ this means the ndis driver is only useful on x86 machines. no cap. that's the limit.
so how do you build a functional driver? you need a copy of the driver distribution media for your card. from that distribution you gotta extract two files:
- the
.SYSfile โ that's the driver binary code - its companion
.INFfile โ that's where the definitions live for driver-specific registry keys and other installation data like device identifiers
then you convert those two files into a kernel module file using the ndisgen(8) utility. that file contains a binary image of the driver plus registry key data. and when the ndis driver loads, it creates sysctl(3) nodes for each registry key it pulled out of the .INF file. slay. โจ
๐ซถ what it can actually talk to ๐ซถ
the ndis driver is designed to support mainly Ethernet and wireless network devices with PCI, PCMCIA and USB bus attachments. (Cardbus devices are also supported as a subset of PCI.) it can handle many different media types and speeds, she's versatile ๐
one limitation though โ and this is important, ngl โ there is no consistent way to learn if an Ethernet device is operating in full or half duplex mode. the NDIS API allows for a generic means for determining link state and speed, but not the duplex setting. ๐ญ
there may be driver-specific registry keys to control the media setting, which you can configure via the sysctl(8) command. so like, poke around, iykyk.
๐จ DEPRECATION NOTICE ๐จ
the PC Card attachment of this driver is scheduled for removal prior to the release of FreeBSD 13.0.
bestie if you're riding with PC Card... plan accordingly. this ship is sailing. ๐
๐ฅ DIAGNOSTICS ๐ฅ
ndis%d: watchdog timeoutโ a packet was queued for transmission and a transmit command was issued, however the device failed to acknowledge the transmission before a timeout expired. basically the device ghosted you mid-send. rude. ๐
๐ SEE ALSO ๐
altq(4)arp(4)netintro(4)ng_ether(4)ifconfig(8)ndis_events(8)ndiscvt(8)ndisgen(8)wpa_supplicant(8)
NDIS 5.1 specification, http://www.microsoft.com.
๐ธ HISTORY ๐ธ
the ndis device driver first appeared in FreeBSD 5.3. a whole era. โญ
๐ AUTHORS ๐
the ndis driver was written by Bill Paul <wpaul@windriver.com>. king behavior, we thank him for his service ๐ซถ
and that's the whole page bestie, you ate this ๐ โจ this cutie was brought to you from the Debian side of things, dated March 14, 2010 โ yeah she's vintage, and vintage is a vibe. 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) 2003 Bill Paul <wpaul@windriver.com>. All rights reserved
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms