KUE(4)

πŸ“¦
version 15.1 Β· 3 versions
, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’– KUE(4) β€” the Kawasaki LSI KL5KUSB101B USB Ethernet driver page, bestie edition πŸ¦‹

okay so this is the manual page for kue, which is a Kernel Interfaces Manual situation β€” that's the manual name, we're in section 4, and yes we're doing this. sit down, hydrate, let's get into it ✨


🌸 NAME 🌸

kue β€” the Kawasaki LSI KL5KUSB101B USB Ethernet driver. that's it, that's the whole vibe. it's a driver. for USB ethernet. from Kawasaki LSI. slay πŸ’…


✨ SYNOPSIS ✨

so there are two whole ways to get this driver living in your life, and the first one is baking it right into the kernel πŸŽ€

to compile this driver into the kernel, put these exact lines in your kernel configuration file:

device uhci
device ohci
device usb
device miibus
device uether
device kue

look at all those device lines. iconic. don't skip any of them, fr fr πŸ™ˆ

alternatively β€” and this is the lowkey easier route β€” you can load the driver as a module at boot time by dropping this line into loader.conf(5):

if_kue_load="YES"

yes the quotes are part of it, yes it's giving very much "just copy it" energy. you got this πŸ’–


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so kue provides support for USB Ethernet adapters that are based on the Kawasaki LSI KL5KLUSB101B chipset. that's the whole main character of this page πŸ”₯

the KL5KLUSB101B supports a 128-entry multicast filter, single perfect filter entry for the station address, and promiscuous mode. so it can do multicast (128 entries worth!), it's got exactly one perfect filter slot for the station address, and yes it can go promiscuous. go off πŸ‘‘

packets are received and transmitted over separate USB bulk transfer endpoints. separate! endpoints! for rx and tx! we love a clean separation ✨

now the slightly sad part 😭 β€” the Kawasaki chipset supports only 10Mbps half-duplex mode, and hence there are no ifmedia() modes to select. that's just the way it is. 10Mbps. half-duplex. no media modes. periodt πŸ’€

for more info on configuring this device, see ifconfig(8) β€” she'll walk you through it 🫢


🌈 HARDWARE 🌈

the kue driver supports USB Ethernet adapters based on the Kawasaki LSI KL5KLUSB101B, including β€” and here's the whole list, we do not abbreviate on this page, bestie:

  • 3Com 3c19250
  • 3Com 3c460 HomeConnect Ethernet USB Adapter
  • ADS Technologies USB-10BT
  • AOX USB101
  • ATen UC10T
  • Abocom URE 450
  • Corega USB-T
  • D-Link DSB-650C
  • Entrega NET-USB-E45, NET-HUB-3U1E
  • I/O Data USB ETT
  • Kawasaki DU-H3E
  • LinkSys USB10T
  • Netgear EA101
  • Peracom USB Ethernet Adapter
  • Psion Gold Port USB Ethernet adapter
  • SMC 2102USB, 2104USB

that's sixteen entries and every single one of them ate πŸ’… if your adapter's on here, you're so good. if it's not… well, we don't make the rules πŸŽ€


πŸ’œ DIAGNOSTICS πŸ’œ

these are the messages the driver can throw at you, and what they actually mean:

  • kue%d: watchdog timeout β€” a packet was queued for transmission and a transmit command was issued, but the device failed to acknowledge the transmission before a timeout expired. so like, the driver did its part, the packet got queued, the command went out, and then the device just… didn't respond in time 😭 rude, honestly.
  • kue%d: no memory for rx list β€” the driver failed to allocate an mbuf for the receiver ring. it ran out of memory for rx. lowkey tragic πŸ™ˆ
ngl if you're seeing these repeatedly, something's up. the manpage doesn't tell you what to do about it, and I'm not gonna invent advice, so like… that's between you and the hardware πŸ’€

πŸ”₯ SEE ALSO πŸ”₯

go read these, they're all connected to this whole situation:

(and remember loader.conf(5) and ifmedia() got shoutouts up above, iykyk ✨)


πŸŽ€ HISTORY πŸŽ€

the kue device driver first appeared in FreeBSD 4.0. vintage! a classic! we stan a legacy icon πŸ¦‹


⭐ AUTHORS ⭐

the kue driver was written by Bill Paul <wpaul@ee.columbia.edu>. thank you Bill, you absolute legend πŸ‘‘πŸ’–


πŸ’€ BUGS πŸ’€

okay so here's the one bug note, and it's honestly so specific:

the kue driver does not accumulate Ethernet collisions statistics, because the Kawasaki firmware does not appear to maintain any internal statistics. translation: there are no collision stats to collect, because the firmware isn't keeping any. so if you were looking for collision counts… they're not there, bestie. not the driver's fault, the firmware just isn't doing it 😭


and that's the page! πŸ’– this was Debian's rendering, dated July 24, 2019, closing out with the KUE(4) footer β€” so that's your source, your version, your date, all accounted for. mwah, go plug in your 10Mbps half-duplex little guy 🫢🌸

πŸ“¦ where this page comes from