Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Realtek RTL8153 macOS Legacy ECM Workaround

Platform Adapter License

A documented workaround for Realtek RTL8153 USB Ethernet adapters that enumerate on macOS but never become a usable network interface.

The short version: macOS sees the adapter, Apple's Realtek patcher runs, but DriverKit AppleUserECM fails before creating a BSD Ethernet interface. This workaround disables that DriverKit ECM path with a boot arg so macOS falls back to the legacy AppleUSBECM kext path.

On the tested Mac, that turned a dead USB-C hub Ethernet port into a working 1000baseT <full-duplex> interface with DHCP and internet access.

Contents

Status

Tested successfully on one Apple Silicon Mac.

Result after applying the workaround:

Hardware Port: USB 10/100/1000 LAN
Device: en5
media: autoselect (1000baseT <full-duplex>)
status: active
inet 192.168.2.75

Connectivity checks passed:

  • default route via the USB Ethernet adapter
  • LAN gateway ping with 0% packet loss
  • public IP ping with 0% packet loss
  • HTTPS request over the adapter returned HTTP/2 200

Warning

This changes Apple Silicon boot/security policy.

You should only do this if:

  • you own the Mac,
  • you are comfortable using Recovery,
  • you can tolerate recovering from a bad boot/security setting,
  • and you understand that restoring full security may disable the workaround.

Known caveat: the legacy ECM path may report the adapter MAC address as 00:00:00:00:00:00. Some routers accept this. Some networks may reject it.

When This May Apply

This workaround may apply if:

  • your adapter is Realtek RTL8153 or compatible,
  • macOS shows USB 10/100/1000 LAN in the USB tree,
  • the adapter VID:PID is 0x0bda:0x8153,
  • Network Settings never shows a usable USB Ethernet service,
  • AppleUSBRealtek8153Patcher is loaded,
  • logs show AppleUserECM or AppleUserECMData failures.

It probably does not apply if the USB device does not enumerate at all.

Quick Diagnosis

Clone the repo and run:

./scripts/check-realtek-ethernet.sh

Things to look for:

  • USB 10/100/1000 LAN in the Realtek USB section.
  • com.apple.driver.usb.realtek8153patcher in loaded kexts.
  • AppleUserECM...::start(...) fail in recent logs.
  • No real USB 10/100/1000 LAN network service before the workaround.

Do not assume en3 or en4 are the dongle. On the tested Apple Silicon Mac, those were hidden Apple USB Device NCM interfaces, not the external adapter.

Enable The Workaround

First boot into Recovery:

  1. Shut down the Mac.
  2. Hold the power button until startup options appear.
  3. Choose Options > Continue.
  4. Open Utilities > Terminal.
  5. Run:
bputil -a
csrutil enable --without nvram

Reboot normally.

Then in macOS, from this repo:

sudo sh scripts/enable-legacy-apple-usb-ecm.sh

Reboot again, unplug/replug the USB-C adapter or hub, then run:

./scripts/check-realtek-ethernet.sh

If it worked, you should see a hardware port like:

Hardware Port: USB 10/100/1000 LAN
Device: en5

Verify Connectivity

Find the adapter IP:

ifconfig en5

Then replace the source IP and gateway below with your own values:

route -n get default
ping -c 3 -S 192.168.2.75 192.168.2.1
ping -c 3 -S 192.168.2.75 1.1.1.1
curl --interface en5 -I https://www.apple.com

Undo

In normal macOS:

sudo sh scripts/disable-legacy-apple-usb-ecm.sh

Then boot into Recovery and restore normal security:

bputil -f
csrutil enable

Reboot normally.

What Happened

On the tested machine:

  1. Apple's AppleUSBRealtek8153Patcher kext was already loaded.
  2. The RTL8153 adapter was in USB configuration 2, CDC ECM mode.
  3. DriverKit AppleUserECM launched for the control interface and failed.
  4. DriverKit AppleUserECMData did not produce a usable network interface.
  5. Setting AppleUserECM-debug=0x1 made the DriverKit ECM path fail early.
  6. The legacy AppleUSBECM kext path then attached and created a BSD Ethernet interface.

See docs/investigation.md for the detailed trace.

Tested Environment

  • MacBookPro17,1
  • Apple Silicon
  • macOS 26.5 build 25F71
  • Realtek RTL8153 USB Ethernet adapter, 0x0bda:0x8153
  • Adapter inside a USB-C hub behind a GenesysLogic USB 3.1 hub

Docs

Contributing

Reports from other macOS versions, adapters, hubs, and routers are welcome. Please include sanitized check-realtek-ethernet.sh output when opening an issue.

License

MIT. Use at your own risk.

About

Workaround for Realtek RTL8153 USB Ethernet on macOS by forcing legacy Apple USB ECM

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages