MII(4)
π MII(4) β bestie edition π
okay so this is mii(4), from the Kernel Interfaces Manual (yes, the kernel interfaces girlies are eating today π), and it's literally the IEEE 802.3 Media Independent Interface network bus. buckle up bestie, we're going in πΈ
β¨ NAME β¨
mii β the IEEE 802.3 Media Independent Interface network bus. that's it, that's the whole vibe. no cap.
β¨ SYNOPSIS β¨
here's the group chat lineup of PHY drivers, all of them doing the exact same at mii? phy ? thing because they're all main characters in the same show π
acphy* at mii? phy ? # Altima AC101 10/100 PHY
amhphy* at mii? phy ? # AMD 79c901 PHY (10BASE-T part)
bmtphy* at mii? phy ? # Broadcom BCM5201/5202 PHYs
brgphy* at mii? phy ? # Broadcom BCM5400/5401 Gig-E PHYs
ciphy* at mii? phy ? # Cicada CS8201 Gig-E PHYs
dmphy* at mii? phy ? # Davicom DM9101 PHYs
exphy* at mii? phy ? # 3Com internal PHYs
gentbi* at mii? phy ? # Generic ten-bit 1000BASE-X PHYs
glxtphy* at mii? phy ? # Level One LXT-1000 Gig-E PHYs
gphyter* at mii? phy ? # NatSemi DP83861 Gig-E PHYs
icsphy* at mii? phy ? # Integrated Circuit Systems ICS1890 PHYs
ikphy* at mii? phy ? # Intel 82563 PHYs
inphy* at mii? phy ? # Intel 82555 PHYs
iophy* at mii? phy ? # Intel 82553 PHYs
ipgphy* at mii? phy ? # IC PLUS IP1000A/IP1001 PHYs
jmphy* at mii? phy ? # JMicron
lxtphy* at mii? phy ? # Level One LXT-970 PHYs
makphy* at mii? phy ? # Marvel 88E1000 Gig-E PHYs
micphy* at mii? phy ? # Micrel KSZ9021 Gig-E PHYs
nsphy* at mii? phy ? # NatSemi DP83840 PHYs
nsphyter* at mii? phy ? # NatSemi DP83843/DP83815 PHYs
pnaphy* at mii? phy ? # Generic HomePNA PHYs
qsphy* at mii? phy ? # Quality Semiconductor QS6612 PHYs
rgephy* at mii? phy ? # Realtek 8169S/8110S internal PHYs
rlphy* at mii? phy ? # Realtek 8139/8201L PHYs
smscphy* at mii? phy ? # SMSC LAN87xx PHYs
sqphy* at mii? phy ? # Seeq 80220/80221/80223/80225 PHYs
tlphy* at mii? phy ? # ThunderLAN internal PHYs
tqphy* at mii? phy ? # TSC Semiconductor 78Q2120 PHYs
ukphy* at mii? phy ? # Generic/unknown PHYs
urlphy* at mii? phy ? # Realtek RTL8150L internal PHYs
and then, one single glorious option:
options MIIVERBOSE
that's the whole synopsis. thirty-one PHY drivers and one (1) kernel option. iconic behavior honestly π
β¨ DESCRIPTION β¨
okay so picture this: Media Independent Interface is an IEEE standard serial bus, and its whole job is connecting MACs (that's network controllers) to PHYs (that's physical media interfaces). like a little matchmaker between your network card and your actual cable situation π₯
the mii layer is lowkey the bestie of network device drivers everywhere, because it lets them all share support code for all the different PHY models instead of everyone reinventing the wheel. and the glow-up? if your system has zero of a certain PHY, that support can just... not be in your kernel at all. lean. mean. efficient. we love to see it π¦
network device drivers that use the mii layer carry the βmiiβ autoconfiguration attribute β so your kernel config files can literally just list PHYs like in the synopsis above and be done with it. no fuss, no drama π
π the dmesg moment π
here's what it looks like when the kernel detects a network interface with a PHY attached β this is the example straight from the page, look at her go:
epic0 at pci0 dev 12 function 0: SMC EPIC/100 Fast Ethernet
epic0: interrupting at kn20aa irq 4
epic0: SMC9432TX, Ethernet address 00:e0:29:07:17:c4
qsphy0 at epic0 phy 3: QS6612 10/100 media interface, rev. 1
qsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
all PHY drivers display the media types the PHY supports when the kernel detects it β every single one, no skips. and those media types? they're valid media keywords you can use with the ifconfig(8) program. so like, you literally take those words and go use them. iykyk β¨
β¨ SEE ALSO β¨
the whole friend group, in order, because we don't do favorites here π«Ά
acphy(4), amhphy(4), bmtphy(4), brgphy(4), ciphy(4), dmphy(4), exphy(4), gentbi(4), glxtphy(4), gphyter(4), icsphy(4), ifmedia(4), ikphy(4), inphy(4), iophy(4), jmphy(4), lxtphy(4), makphy(4), micphy(4), nsphy(4), nsphyter(4), pnaphy(4), qsphy(4), rgephy(4), rlphy(4), smscphy(4), sqphy(4), tlphy(4), tqphy(4), ukphy(4), urlphy(4), ifconfig(8)
and if you're feeling extra and wanna go read about OUI assignments (yes, that's a real thing and yes it's giving spreadsheet energy but it's our spreadsheet), the list lives at:
http://standards.ieee.org/regauth/oui/index.shtml
ok real talk before you go β this page is from Debian, dated November 2, 2019. sΓ€ga hej dΓ₯ bestie, mwah π actually wait no, go plug in an ethernet cable first. then mwah. π
that's the whole manpage, you ate that, periodt β¨ππ¦πΈπ
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- Copyright (c) 1998, 2002 The NetBSD Foundation, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms