Christopher Murphy

Q: 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

Close

Q: Built-in ethernet vanished

  • All replies
  • Helpful answers

Page 1 of 4 last Next
  • by Christopher Murphy,

    Christopher Murphy Christopher Murphy Feb 26, 2016 7:08 PM in response to Christopher Murphy
    Level 3 (555 points)
    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.

  • by Christopher Murphy,

    Christopher Murphy Christopher Murphy Feb 26, 2016 7:12 PM in response to Christopher Murphy
    Level 3 (555 points)
    Feb 26, 2016 7:12 PM in response to Christopher Murphy

    sh-3.2# find . -name *5701*

    find: ./dev/fd/3: Not a directory

    find: ./dev/fd/4: Not a directory

    ./System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleBCM570 1Ethernet.kext

    ./System/Library/Extensions/IONetworkingFamily.kext/Contents/PlugIns/AppleBCM570 1Ethernet.kext/Contents/MacOS/AppleBCM5701Ethernet

  • by FPINHS,

    FPINHS FPINHS Feb 26, 2016 8:16 PM in response to Christopher Murphy
    Level 1 (0 points)
    Feb 26, 2016 8:16 PM in response to Christopher Murphy

    I have the exact same issue after updating to 10.11.3. Can't even add ethernet back in?

  • by Matt Kulka,Solvedanswer

    Matt Kulka Matt Kulka Feb 26, 2016 8:40 PM in response to Christopher Murphy
    Level 1 (110 points)
    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.

  • by Matt Kulka,

    Matt Kulka Matt Kulka Feb 26, 2016 8:55 PM in response to Matt Kulka
    Level 1 (110 points)
    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.

  • by gargrave,

    gargrave gargrave Feb 26, 2016 9:41 PM in response to Matt Kulka
    Level 1 (0 points)
    Feb 26, 2016 9:41 PM in response to Matt Kulka

    @Matt Kulka: Thank you so much for this. I would have never in 1,000 years figured this out on my own, but it did fix the issue for me. I am eternally grateful!

     

    Now hopefully Apple will fix this so future updates don't repeat this debacle. Thanks again, and take care!

  • by Christopher Murphy,

    Christopher Murphy Christopher Murphy Feb 26, 2016 9:49 PM in response to Matt Kulka
    Level 3 (555 points)
    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.

  • by fauxhomo,

    fauxhomo fauxhomo Feb 26, 2016 10:30 PM in response to Matt Kulka
    Level 1 (0 points)
    Feb 26, 2016 10:30 PM in response to Matt Kulka

    I saved an older version of the AppleKextExcludeList from time machine onto my desktop but I don't understand how to fix the problem in Recovery mode. I've never had to use Recovery Mode and I understand if you can't or don't want to explain to someone unfamiliar with it.  Thanks for your time and consideration.

  • by Marc Manel,

    Marc Manel Marc Manel Feb 27, 2016 4:35 AM in response to Christopher Murphy
    Level 1 (0 points)
    Feb 27, 2016 4:35 AM in response to Christopher Murphy

    Hi!

     

    Thanks for the solution Matt. I don't have a Time Machine backup neither the ability maybe to repair, so when will Apple solve this? Is there been before this kind of issues? I mean I can connect to the Internet through the wifi, but moving bigger files to a NAS it's going to be quite slow.

     

    Thanks for your time,

     

    Marc

  • by Marc Manel,

    Marc Manel Marc Manel Feb 27, 2016 6:33 AM in response to Marc Manel
    Level 1 (0 points)
    Feb 27, 2016 6:33 AM in response to Marc Manel

    I found some more info: https://www.reddit.com/r/apple/comments/47tfos/warning_software_update_03151913_ breaks_ethernet/

     

    Looks like a secret update, hopefully they will push a new one with the correction soon.

  • by Matt Kulka,Helpful

    Matt Kulka Matt Kulka Feb 27, 2016 8:30 AM in response to Marc Manel
    Level 1 (110 points)
    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.

  • by bpran,

    bpran bpran Feb 27, 2016 8:52 AM in response to Matt Kulka
    Level 1 (10 points)
    Feb 27, 2016 8:52 AM in response to Matt Kulka

    Hi Matt,

    please check this post, http://forums.macrumors.com/threads/software-update-031-51913-will-break-your-et hernet-driver.1958521/#post-22615494

    do you have any idea what should I do with this?

     

    Thanks

  • by Matt Kulka,

    Matt Kulka Matt Kulka Feb 27, 2016 8:58 AM in response to bpran
    Level 1 (110 points)
    Feb 27, 2016 8:58 AM in response to bpran

    Oh neat, somebody found the package for the old kext. Yeah, best bet is to just download that and install it.

     

    http://swcdn.apple.com/content/downloads/60/61/031-44426/436eok9yeg31dav6ro4h1zf y5lkrw3v1oe/AppleKextExcludeList_10_11.pkg

     

    Then just double click it and install it to your boot volume like you would any other installer and reboot.

  • by bpran,

    bpran bpran Feb 27, 2016 9:06 AM in response to Matt Kulka
    Level 1 (10 points)
    Feb 27, 2016 9:06 AM in response to Matt Kulka

    Hi Matt,

    'boot volume' as in 'Macintosh HD' ?

    have you tried it yet?

     

    Sorry for all the newbies questions, I am only good at photoshopping

     

    Thanks Matt. Please update us after you try it.

     

     

     

    Edit:

    oops, someone tried it and still no success

    http://forums.macrumors.com/threads/software-update-031-51913-will-break-your-et hernet-driver.1958521/#post-22615556

    error message : "This computer does not appear to have any PCI Ethernet cards installed"

Page 1 of 4 last Next