Friday 8 February 2013

How to use an Apple USB Ethernet Adapter to replace a broken ethernet port on a Mac

The iMac at my work has a problem with it's ethernet port - the cable will not stay plugged in and it can lead to the connection being lost. The ethernet port seems a common 'weak link' with Apple hardware.

We bought a Apple USB Ethernet Adapter (MC704ZM/A), to replace it.

Setting this up was not straightforward, for starters they do not bundle the driver on Mountain Lion for the iMac!

Luckily I've got a Mac Mini at home, so I could copy the driver from there.

The steps you should take are:

  • Find/Download AppleUSBEthernet.kext file (will be within IONetworkingFamily.kext - full path to this is below)
  • In Finder open System > Library > Extensions
  • (To open a .kext file, right click > Show Package Contents)
  • Open /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/
  • Copy AppleUSBEthernet.kext into the folder IONetworkingFamily.kext/Contents/PlugIns/
  • You will be prompted for your administrator password.
  • Open Applications > Utilities > Disk Utility. Then "Repair file permissions"
  • Open Applications > Utilities > Terminal. Run the following command
sudo kextload /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleUSBEthernet.kext



  • You will be prompted for your administrator password.
  • Open Applications > System Preferences > Network. You should now have 'USB Ethernet' as a connection on the left hand side. If not you can add it with the + at the bottom of the left pane.
  • You may find as I did that once plugged in your USB Ethernet will show as connected, but you won't be able to use the internet. If this happens, use the Assist Me > Assistant within Network and it should fix it for you.
All being well, you should have replaced your temperamental physical Ethernet port with a USB one.

(Update) This solution does not work after you have restarted your mac.
You need to run


sudo kextload /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleUSBEthernet.kext

again to load the driver.

I have set up a Unix executable which runs this command on startup. System Preferences > Users and Groups > Login Items. This is far from ideal, as the user is prompted for their password to run this.

Luckily we don't restart the Mac very often, but I will search for a more elegant solution.

Any Mac experts out there who know how to load this driver on startup in a more elegant way, please let me know!