Built-in ethernet vanished

I've been using built-in ethernet since forever, including the last 2-3 weeks clean installed El Capitan without problems. Today, inexplicably while working all of a sudden I'm not connected to the Internet. Network panel says the cable isn't connected, and the usual troubleshooting ensues. I've deleted all connections in Network panel, and network items from /Library/Preferences and rebooted multiple times and now in Network there isn't even an ethernet interface. System Information > Network only shows: Bluetooth PAN, FireWire, Thunderbolt Bridge, and Wi-Fi. No ethernet.


OK so I boot a live image of Fedora Linux, it sees and uses the ethernet connection just fine. So the hardware is clearly OK, it looks like the OS has somehow face planted.

MacBook Pro (15-inch Early 2011), OS X El Capitan (10.11.3)

Posted on Feb 26, 2016 6:29 PM

Reply
45 replies

Feb 26, 2016 8:40 PM in response to Christopher Murphy

I *just* hit this after rebooting.


So apparently the version of the kernel extension for the built-in ethernet driver (AppleBCM5701Ethernet.ext) in OS X 10.11.3 has been added to the blacklist by Apple (AppleKextExcludeList.kext). Specifically versions lower than 10.2.0 have been blacklisted and version 10.1.12 is the one included in OS X 10.11.3.


The blacklist is dynamically pulled by OS X (it's not part of a system update) and I'm not sure what the trigger is exactly. The mod date on the bad AppleKextExcludeList.kext for me was Feb 24. The "good" one is from Nov 12.


I fixed this (probably temporarily) by doing the following:


  1. Get the old AppleKextExcludeList.kext from Time Machine Backup and put it somewhere on your hard drive. OS X won't allow you to overwrite it when booted normally.
  2. Boot into Recovery mode and overwrite the new /Volumes/<your boot volume>/System/Library/Extensions/AppleKextExcludeList.kext with the old.
  3. Purge your kext cache. (kextcache -invalidate /Volumes/<your boot volume>)
  4. Reboot back into normal OS X.


If and when OS X pulls the newer AppleKextExcludeList.kext, we'll be back to square one. Hopefully Apple will realize the mistake here soon.

Feb 27, 2016 8:30 AM in response to Marc Manel

Here's more direct instructions...


  1. Download the old exclude list kext from https://www.dropbox.com/s/a9ttv4fy7zl2vtf/AppleKextExcludeList.kext.tgz?dl=0
  2. Remember where you put it! Also note the name of your boot volume, the one that defaults to "Macintosh HD".
  3. Boot into Recovery mode. Do this by rebooting and holding Command+R until the Apple logo appears.
  4. Go to the Utilities dropdown in the menu bar, open Terminal.
  5. Do this, replace <boot volume> with your boot volume name from step 2, the quotes are important if there's a space in it (also remember you can list files in your present directory by using ls -a:

    cd "/Volumes/<boot volume>"

    Example: cd "/Volumes/Macintosh HD"
  6. Overwrite the newer broken kext with the one you downloaded.

    tar -xvzf "<location of AppleKextExcludeList.kext.tgz>"

    Example: tar -xvzf "Users/matt/Downloads/AppleKextExcludeList.kext.tgz" A couple of things to note here: if you put it in a folder off of your home directory, by default Downloads, you'll need to prepend Users/<username> to it. Notice there's no leading slash, that's because you're working with a location relative to the directory you changed (cd) to earlier. Again, quotes are required if there's a space in any of the path name.
  7. Reboot into normal mode (just typing: reboot) and your ethernet should work again.

Final note, while I definitely don't recommend downloading random kexts off the Internet, kexts are now signed and only authentic ones are loaded by default by OS X during a normal boot so the risks are minimal.

Feb 28, 2016 3:44 AM in response to Ellen H

My WiFi is working so followed the instructions three times and still no ethernet.


When I enter this command in Terminal sudo softwareupdate --background


and then try to QUIT Terminal I get this message


User uploaded file

But there is no way to enter my password. Where do I enter it? Trying to type my password where the key symbol is produces no type.


So I try to QUIT Terminal thinking I'll be given the typical password dialog and get this message:


User uploaded file


I hit CLOSE and restart the Mac and still no ethernet.


I'm not a Terminal expert, obviously. What am I doing wrong?

Feb 28, 2016 4:32 AM in response to voxkenny

voxkenny -- following your lead I typed in my password (with no type appearing) and got this message in Terminal:


User uploaded file

That suggests something was happening -- a "scan" for software updates?


And I made sure these boxes are checked in the App Store preference pane to allow updates:


User uploaded file


I quite Terminal and restarted and still no ethernet.

Does anyone know how long it takes the computer to "scan" for updates and download the needed 3.28.2 extension?

Feb 26, 2016 7:08 PM in response to Christopher Murphy

Booting with command-R and Safari in the recovery environment works fine over built-in ethernet. Reboot back to the installed system, and it's still not found. The only clue in system log is this:

Feb 26 19:55:46 MacBook-Pro kernel[0]: Kext com.apple.iokit.AppleBCM5701Ethernet is in exclude list, not loadable

Feb 26 19:55:46 MacBook-Pro kernel[0]: Can't load kext com.apple.iokit.AppleBCM5701Ethernet - not found.

Feb 26 19:55:46 MacBook-Pro kernel[0]: Kext load request buffer from user space still retained by a kext; probable memory leak.

Feb 26 19:55:46 MacBook-Pro com.apple.kextd[44]: Failed to load /System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleBCM570 1Ethernet.kext - (libkern/common) general/unspecified error.

Feb 26 19:55:46 MacBook-Pro com.apple.kextd[44]: Load com.apple.iokit.AppleBCM5701Ethernet failed; removing personalities from kernel.

Feb 26, 2016 8:55 PM in response to Matt Kulka

I want to add that the problem manifests itself in a very weird way. The interface says it's "Unplugged" in System Preferences, but you still get a link light on your switch. That's all most people will probably see. If you dig deeper, you notice that ifconfig says en0 doesn't exist and in the Console messages you'll eventually find that the kernel extension is in the exclude blacklist as noted in the second post in this thread. Most people would never find that.

Feb 26, 2016 9:49 PM in response to Matt Kulka

I don't have a Time Machine backup, so I'm grabbing the kext from the BaseImage.dmg file inside the InstallESD.dmg on the dmg I made of the El Capitan downloaded app. Even after using chown and trying to set the xattr to that file, it will not copy to Extensions. But I was able to remove the new one, and even though kextcache -invalidate complains about missing AppleKextExcludeList.kext, it updates the cache and upon reboot I have ethernet again. I'm not sure what the consequences are of running without this kext at all. And it's kinda annoying Apple is sending a kernel extension to blacklist things like this. Especially on El Capitan the limits of root now make troubleshooting a PITA.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Built-in ethernet vanished

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.