RUE(4)

πŸ’– RUE πŸ’–

okay bestie, gather round, because we're talking about the rue driver β€” aka the RealTek RTL8150 USB to Fast Ethernet controller driver πŸ¦‹. yes it's a whole mouthful, no you don't have to say it out loud at parties.


✨ SYNOPSIS ✨

so like, you got two ways to get this baby running, and you will pick one, okay?

πŸŽ€ Option A: bake it into the kernel

drop these lines into your kernel configuration file, all of them, in this order, no skipping:

device uhci
device ohci
device usb
device miibus
device uether
device rue

🧚 Option B: module girlie

orrrr, if you'd rather load it as a module at boot time, just put this one line in loader.conf(5) and you're so set:

if_rue_load="YES"

🌸 DESCRIPTION 🌸

so the rue driver is the whole support system for USB Ethernet adapters built on the RealTek RTL8150 USB to Fast Ethernet controller chip. that's the assignment, that's what it does, periodt πŸ’…

here's the tea on the chip: the RTL8150 has an integrated Fast Ethernet MAC inside it, and it supports both 10 and 100Mbps speeds, in either full or half duplex. iconic range, honestly.

but bestie. listen. 😭 the chip was designed to interface with a 100Mbps peripheral, except the existing USB standard caps maximum transfer speed at 12Mbps. so do not expect to actually hit 100Mbps speeds with this device. i'm so serious. don't @ me when your speedtest is giving 12.

media types it supports 🫢

  • autoselect β€” turns on auto selection of the media type and options. and if you're feeling opinionated, you can manually override the auto-selected mode by adding media options to the /etc/rc.conf file. main character move, lowkey.
  • 10baseT/UTP β€” sets 10Mbps operation. the mediaopt option can also be used here to select either full-duplex or half-duplex modes.
  • 100baseTX</~~purple~~ β€” wait no, 100baseTX β€” sets 100Mbps (Fast Ethernet) operation. the mediaopt option can also be used to select either full-duplex or half-duplex modes.

media options it supports πŸ’…

  • full-duplex β€” force full duplex operation. no negotiating, no games.
  • half-duplex β€” force half duplex operation. also no games.

for more info on configuring this device, go see ifconfig(8). it's giving ✨reference material✨.


πŸ”₯ HARDWARE πŸ”₯

the rue driver supports RealTek RTL8150 based USB Ethernet adapters, and the roster is:

  • Buffalo (Melco Inc.) LUA-KTX
  • Green House GH-USB100B
  • LinkSys USB100M
  • Billionton 10/100 FastEthernet USBKR2

that's the whole friend group, we love them all equally πŸ₯°


πŸ’€ DIAGNOSTICS πŸ’€

when things go wrong, this is what it yells at you, and what it means:

  • rue%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. so it ghosted you. rude.
  • rue%d: rx list init failed β€” the driver failed to allocate an mbuf for the transmitter ring.
  • rue%d: no memory for rx list β€” the driver failed to allocate an mbuf for the receiver ring.

πŸ‘‘ SEE ALSO πŸ‘‘

also, the RealTek RTL8150 data sheet, which lives right here and is a whole read:

http://pdf.seekdatasheet.com/2008714/200807142333305235.pdf

🌈 HISTORY 🌈

the rue device driver first appeared in FreeBSD 5.1. a lil legend. a pioneer. we stan a vintage queen ⭐


πŸ’œ AUTHORS πŸ’œ

the rue driver was written by Shunsuke Akiyama <akiyama@FreeBSD.org>. thank you for your service, king 🫢


and that's the whole page, bestie!! this one's courtesy of Debian, dated November 24, 2015 β€” so yeah, it's a classic. go forth and Ethernet over USB responsibly, and remember: 12Mbps is the vibe, not 100. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from