Jump to content
Mieze

IntelMausiEthernet.kext for Intel onboard LAN

972 posts in this topic

Recommended Posts

Working fine here on a matching pair of Intel DH87MC's for over a week now, each with i217V. No issues observed, wake not tested. Casual testing moving a 17 gig file in respect to hnak's 1000e shows over 25% performance improvement, i217v <-> i217v. Looks and works fine.

 

The highest speed I have seen copying large files is around 65.5 Mbytes per second, which I believe is a good number considering packet overhead etc. Thanks for the good work.

Share this post


Link to post
Share on other sites
Advertisement

Working fine here on a matching pair of Intel DH87MC's for over a week now, each with i217V. No issues observed, wake not tested. Casual testing moving a 17 gig file in respect to hnak's 1000e shows over 25% performance improvement, i217v <-> i217v. Looks and works fine.

 

The highest speed I have seen copying large files is around 65.5 Mbytes per second, which I believe is a good number considering packet overhead etc. Thanks for the good work.

I would check your settings again, i got 111 mb/s read and 109 mb/s write with blackmagic speedtest.

Share this post


Link to post
Share on other sites

I would check your settings again, i got 111 mb/s read and 109 mb/s write with blackmagic speedtest.

The numbers I quoted are sustained copy rates, using a Finder copy of 17 gig sparseimage documents. Burst rates may very well be far higher than the sustained rates I got, which include Finder overhead.

Share this post


Link to post
Share on other sites

With Blackmagic Disk Speed Test you get transfer rates near to the theoretical maximum thanks to caching effects, e. g. the test file won't be written/read from Disk anymore but will stay in the file system cache in RAM. In real world scenarios like copying a file in Finder the hard disk often is a limiting factor which reduces the  actual transfer rate significantly.

 

Mieze

Share this post


Link to post
Share on other sites

With Blackmagic Disk Speed Test you get transfer rates near to the theoretical maximum thanks to caching effects, e. g. the test file won't be written/read from Disk anymore but will stay in the file system cache in RAM. In real world scenarios like copying a file in Finder the hard disk often is a limiting factor which reduces the  actual transfer rate significantly.

 

Mieze

Agreed. The number I provided (65.5Mbytes) was obtained from SSD to SSD. HD to HD I was getting around 52Mbytes.

Share this post


Link to post
Share on other sites

With Blackmagic Disk Speed Test you get transfer rates near to the theoretical maximum thanks to caching effects, e. g. the test file won't be written/read from Disk anymore but will stay in the file system cache in RAM. In real world scenarios like copying a file in Finder the hard disk often is a limiting factor which reduces the  actual transfer rate significantly.

 

Mieze

In finder connected over afp on my nas i got beetween 92 - 114 mb/s read speed and 60 - 110 mb/s write speed, copying a  5 gb dmg file.

Share this post


Link to post
Share on other sites

Avoid the ambiguity entirely and use iperf. I have three network interfaces in my workstation and did a few 10-second tests over each and they all look similar to this:

[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.08 GBytes   927 Mbits/sec     # Yukon interface
[  5]  0.0-10.0 sec   706 MBytes   592 Mbits/sec     # AirPort Extreme interface
[  4]  0.0-10.0 sec  1.09 GBytes   934 Mbits/sec     # IntelMausi interface

So around 115-116MB/s. That Yukon card is a relic, but is very reliable. 

 

(Edit: the iperf server in my test is on the same physical network as the client and connected via gigabit ethernet to it's truly horrible RealTek interface on a FreeBSD system)

Share this post


Link to post
Share on other sites

Hi Mieze,

 

With d6 version, I have no more problem connecting to iMessages.
For Time Machine backupsthe transfer speed on my LAN is about 30 MB/s. Very fast.

My connection has been running at 1 Gigabit for several days but this morning at start after a few minutes of connection at 1-Gigabit, it fell down to 100-Megabit.

It's not a question of cable nor a Network configuration because I had no problem before connecting at 1-Gigabit.

I restarted my machine, but same problem.
 

See my attached log.

 

Thank you for all your work.

Jean-Claude

IntelMausi.txt

Share this post


Link to post
Share on other sites

Hi Mieze,

 

With d6 version, I have no more problem connecting to iMessages.

For Time Machine backupsthe transfer speed on my LAN is about 30 MB/s. Very fast.

My connection has been running at 1 Gigabit for several days but this morning at start after a few minutes of connection at 1-Gigabit, it fell down to 100-Megabit.

It's not a question of cable nor a Network configuration because I had no problem before connecting at 1-Gigabit.

I restarted my machine, but same problem.

 

There is no evidence for a driver related problem in your kernel log. If selecting the medium manually doesn't resolve the issue, it's most likely some kind of hardware related problem as it persists after the reboot:

  • Bad or inferior cable.
  • Dust on the RJ45 connector.
  • EMI
  • Failure of the switch.
  • etc.

Mieze

Share this post


Link to post
Share on other sites

Thank you for your very quick response.

You are right, it was a connector problem. 

Sorry for disturbing you, I should have solved this myself.

 

JCDS

Share this post


Link to post
Share on other sites

Followed install instructions in OP, but got intractable kernel panics on boot like those described by tarasis; applied the same fix mentioned there and deleted:

 

/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist

/Library/Preferences/SystemConfiguration/preferences.plist

 

Now the driver seems to work perfectly fine in my machine.

 

Can't really test full throughput yet as only getting a max 100baseTX connection to router (which has gigabit ports). Had this problem previously using AppleIntelE1000e.kext too, which likely suggests a wiring issue—probably involving the ~75ft of 8-y/o cat5e that runs from one end of the house to the other @ router. Guess I'm going to be having fun this wknd swapping that out for cat6… then I'll try posting some speed test results.

 

Anyway, thank you Mieze for making this.

 

Also, semi-related question: Does anyone know why there's an ~15s delay after a reboot before networking activates in OSX? I don't know if this is something specific to my hardware or not.

Share this post


Link to post
Share on other sites

Followed install instructions in OP, but got intractable kernel panics on boot like those described by tarasis; applied the same fix mentioned there and deleted:

 

 

/Library/Preferences/SystemConfiguration/NetworkInterfaces.plist

/Library/Preferences/SystemConfiguration/preferences.plist

 

 

Now the driver seems to work perfectly fine in my machine.

 

Can't really test full throughput yet as only getting a max 100baseTX connection to router (which has gigabit ports). Had this problem previously using AppleIntelE1000e.kext too, which likely suggests a wiring issue—probably involving the ~75ft of 8-y/o cat5e that runs from one end of the house to the other @ router. Guess I'm going to be having fun this wknd swapping that out for cat6… then I'll try posting some speed test results.

 

Anyway, thank you Mieze for making this.

 

Also, semi-related question: Does anyone know why there's an ~15s delay after a reboot before networking activates in OSX? I don't know if this is something specific to my hardware or not.

There is no delay on my machine after reboot, it´s working immediatly.

Maybe also a problem related to your cable?

Share this post


Link to post
Share on other sites

There is no delay on my machine after reboot, it´s working immediatly.

Maybe also a problem related to your cable?

Possible, but the WiFi also does the same thing. Which makes me think its something to do with the network stack initialization as a whole.

Share this post


Link to post
Share on other sites

Can't really test full throughput yet as only getting a max 100baseTX connection to router (which has gigabit ports). Had this problem previously using AppleIntelE1000e.kext too, which likely suggests a wiring issue—probably involving the ~75ft of 8-y/o cat5e that runs from one end of the house to the other @ router. Guess I'm going to be having fun this wknd swapping that out for cat6… then I'll try posting some speed test results.

 

First, try to clean the RJ-45 connectors/cables from dust. Gigabit ethernet needs all 8 wires to be working. I experienced this issue several times since I switched to gigabit ethernet 6 years ago and in more than 90% the cleaning resolved the issue.

Possible, but the WiFi also does the same thing. Which makes me think its something to do with the network stack initialization as a whole.

 

Sounds like a DHCP issue. Maybe you should take a look at the kernel logs and /or the DHCP server's logs.

 

Mieze

Share this post


Link to post
Share on other sites

I'm making progress with regard to the VMware issue. I created a version of the driver which uses Apple's private network driver interface introduced with 10.8. This new interface has an improved output queue handling and support for packet scheduling with QFQ. Performance and CPU usage seem to be comparable to the version with the traditional interface but it looks like VMware has stopped killing the network stack from time to time. At least I haven't had this issue since I switched over to the new interface. As it was introduced with Mountain Lion there is no way to make the new version work under anything below 10.8.

 

I will publish it during the weekend after running some more tests. Its version number will be 2.0.0d1.

 

Mieze

Share this post


Link to post
Share on other sites

d6 working wonderfully here on 2 installs (one yosemite, one mavericks).  Is jumbo frames still considered way too low a priority to make it into the v2 builds?

Share this post


Link to post
Share on other sites

D6 is working great. I am noticing copying large files to my NAS it doesnt take as long. Befre it used to copy extreamly slowly.

Share this post


Link to post
Share on other sites

First, try to clean the RJ-45 connectors/cables from dust. Gigabit ethernet needs all 8 wires to be working. I experienced this issue several times since I switched to gigabit ethernet 6 years ago and in more than 90% the cleaning resolved the issue.

Makes sense. Tried wiping down all the connectors, but I'm still topping out at 100baseTX.

 

Sounds like a DHCP issue. Maybe you should take a look at the kernel logs and /or the DHCP server's logs.

Does seem to be a DHCP issue—I set Ethernet to configure Manually using its usual DHCP allotted params in System Preferences:Networking, and now it works immediately upon startup. Thanks again.

Share this post


Link to post
Share on other sites

Is jumbo frames still considered way too low a priority to make it into the v2 builds?

 

It's not a question of priority but a question if it makes sense or not. After all jumbo frame support is more a marketing feature than a real benefit in most scenarios. Not to forget that jumbo frames are a troublemaker which will increase the number of support requests. That's why I'm reluctant to implement jumbo frame support.

 

Mieze  :cat:

Share this post


Link to post
Share on other sites

As already announced I just published version 2.0.0d1 a few moments ago. You can find it attached to post #1 of this thread.

 

Good luck!

 

Mieze  :cat:

Share this post


Link to post
Share on other sites

Hi 

I just gave the driver a try 'cause of those big-data-transfer-problems with hnak's intel1000e.

 

Good news first: it works well, transfer speed is very good - but i got a weird problem: safari always crashes!

I rechecked it with i1000e re-installed (checked kextstat that the correct driver is loaded) no safari crash  - checked again with mausi-driver: safari crashed. Any other browser (firefox, chrome) did work...

 

 

Just in case someone noticed my safari problems mentioned here: they're gone with version d6. No problems so far with VMWare Fusion .  :thumbsup_anim:

Transfer Speed via AFP (read) alternates randomly between 50 and 70Mb/s and I have lot of those messages in system.log

 

Mar 15 12:44:28 andromeda kernel[0]: Ethernet [intelMausi]: Not enough descriptors. Stalling.

Mar 15 12:44:28 andromeda kernel[0]: Ethernet [intelMausi]: Restart stalled queue!

 

 
One more change in my original setup is the recent security update 2 days ago.
 
Thanks for your work!
roh7

Share this post


Link to post
Share on other sites

As already announced I just published version 2.0.0d1 a few moments ago. You can find it attached to post #1 of this thread.

 

Good luck!

 

Mieze  :cat:

Note that "git log" shows "Version 2.0.0d1", but Info.plist is still 1.0.0d6. It is due to Module Version=1.0.0d6 in the project.

Share this post


Link to post
Share on other sites

Note that "git log" shows "Version 2.0.0d1", but Info.plist is still 1.0.0d6. It is due to Module Version=1.0.0d6 in the project.

 

You have to select the right target before you build the driver.

 

Mieze

Share this post


Link to post
Share on other sites

Just in order to be on the save side: is there anybody still experiencing random "Tx stalled" messages with the current versions (1.0.0d6/2.0.0d1) of the driver?

 

Mieze

Share this post


Link to post
Share on other sites

You have to select the right target before you build the driver.

 

Mieze

Is there some reason to have two separate targets?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

Announcements

  • Similar Content

    • By Del
      I installed Mojave on Lenovo G570 i5 Sandy HD3000 with resolution 1366x768 on LVDS display with series 6 chipset and getting stuck with gfx issue
      I was able to boot (without qeci) before using hd3000 patch 
       
      
       
      So I went back to High Sierra (HD3000 natively supported) and older os
      And the setup works on Mountain Lion but not Mavericks or newer.
       
      AppleIntelSNBGraphics doesnt load. Ive tried snbplatform id 0x00 0x00 0x01 0x00 
      Also edid injection.
        
      Nothing seems to work Stuck on it for almost 3 weeks
      This is very frustrating
      Any help is appreciated 

      Any suggestions?@Hervé
    • By autantpourmoi
      I'm an happy user of a x99 built hackintosch since 6/7 years using it mainly for photoshop and fcpx ... Using new camera with better resolution and video in ProResRaw , my built start to struggle a bit 
      I'm thinking of making a new built and seeking for advices for this new built that I want evolutive and last at least as long as my previous built 
      I'll use a SSD M2 forth Generation so I need at least 2 to 3 SSD M2 PCI x4 slots
      then which proc to use , I was thinking about the AMD Ryzen 9 3900xt or the Intel I9 10900k ( don't have the money for AMD threadripper ) if you have better idea I'm really open to it as long as you explain it to me 
      then which chipset should I use:
      for Intel  , should I go to Z490 or X299 or W480
      For AMD , I think I have only the choice of X570
      I always used Gigabyte motherboard so it will be naturally my first choice but again I'm open to any suggestion
      I need at least usb 3,1 Gen 2 and TB3 is not necessary but an option and can be add later on with a PCI Card I think
      So I'll be pleased o read your opinion and the choices that you'll do for the purpose of this built 
      thanks in advance 
       
       
    • By Mieze
      This project is dedicated to Lucy, my lovely little Tyrannofelis Rex. 
       

       
      LucyRTL8125Ethernet is an open source driver for the Realtek RTL8125 family of 2.5GBit Ethernet controllers.
       
      Key Features of the Driver
      Supports all versions of Realtek's RTL8125 2.5GBit Ethernet Controllers found on recent boards. Support for multisegment packets relieving the network stack of unnecessary copy operations when assembling packets for transmission. No-copy receive and transmit. Only small packets are copied on reception because creating a copy is more efficient than allocating a new buffer. TCP, UDP and IPv4 checksum offload (receive and transmit). TCP segmentation offload over IPv4 and IPv6. Support for TCP/IPv4, UDP/IPv4, TCP/IPv6 and UDP/IPv6 checksum offload. Supports jumbo frames up to 9000 bytes (strongly recommended for 2.5GBit operation). Fully optimized for Mojave and above. Note that older versions of macOS might not support 2.5GB Ethernet. Supports Wake on LAN (untested). Supports VLAN (untested). Support for Energy Efficient Ethernet (EEE) which can be disabled by setting enableEEE to NO in the drivers Info.plist without rebuild. The default is YES. The driver is published under GPLv2.  
      Current Status
      The driver has been tested successfully under Catalina (10.15.4 and above) and, according to first tests, is working stable. I haven't experienced any Kernel Panics during my tests and is working stable on my primary work machine. The driver has been designed to work with Catalina but might also work with Mojave, provided you build from source with Xcode 10.. Please keep in mind that support for 2.5GBit Ethernet was introduced in Mojave (or maybe High Sierra?) so that there is no way to make it work with Sierra or below.  
      Known Issues
      Using autoselect medium it seems to prefer negotiating a connection speed of 1Gbit with my switch so that I had to select 2.5GBit/s manually in order to achieve this speed but it might be different with other switches.   Installation
      You might want to install the driver to /L/E as usual but it's also ok to use Clover's injection function (installation in the EFI folder). Use your favorite kext installation tool for installation or perform the installation manually (for Clover injection). It's your call!  
      Help - I'm getting kernel panics!
      Well, before you start complaining about bugs after you upgraded macOS and ask me to publish a driver update, you should first try to resolve the issue on your own by cleaning the system caches.
      As the driver uses macOS's private network driver interface, which is supposed to be used by Apple provided drivers only, you might run into problems after an OS update because the linker may fail to recognize that IONetworking.kext has been updated and that the driver needs to be linked against the new version (Apple provided drivers avoid this problem because they are always updated together with IONetworking.kext). As a result, the linking process produces garbage and the driver may call arbitrary code when trying to call functions from IONetworking.kext. This usually results in unpredicted behavior or a kernel panic. In order to recover from such a situation, you should clean the System Caches forcing the linker to recreate it's caches:
      Delete all the files in /System/Library/Caches and it's subdirectories but leave the directories and the symbolic links intact. This is very important! Reboot. Recreate the kernel cache. Reboot again.  
      Troubleshooting
      Make sure you have followed the installation instructions especially when you have issues with certain domains while the others are working fine. Use the debug version to collect log data when trying to track down problems. The kernel log messages can be retrieved with "log show --predicate "processID == 0" --debug" in order to retrieve kernel logs. Include the log data when asking for support or giving feedback. I'm an engineer, not a clairvoyant. Don't copy and paste large amounts of log data to your post. Create an archive with the log data and attach it to your post. In case you don't want to make your log data publicly accessible, contact me via PM and I will provide you a mail address to send it directly to me.  Delete the following files: /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist /Library/Preferences/SystemConfiguration/preferences.plist In Terminal run netstat -s in order to display network statistics. Carefully examine the data for any unusual activity like a high number of packets with bad IP header checksums, etc. In case auto-configuration of the link layer connection doesn't work it might be necessary to select the medium manually in System Preferences under Network for the interface. Use Wireshark to create a packet dump in order to collect diagnostic information. Keep in mind that there are many manufacturers of network equipment. Although Ethernet is an IEEE standard, different implementations may show different behavior causing incompatibilities. In case you are having trouble try a different switch or a different cable.  
      Changelog
      Version 1.0.0 (2020-08-14) Changed version number to make this the first official release. Version 1.0.0d6 (2020-06-14) Fixed chip recognition. Version 1.0.0d3 (2020-04-20) First working development release.  
      Getting the driver
      Source code can be found on GitHub: https://github.com/Mieze/LucyRTL8125Ethernet You'll find the lastest prebuilt binary in the download section: https://www.insanelymac.com/forum/files/file/1004-lucyrtl8125ethernet/  
       
    • By MaLd0n
      -Donations with PayPal
      https://tinyurl.com/r2bvzm7
       
       
      --Original Topic--
      https://www.olarila.com/topic/6874-olarila-hackbook-lenovo-ideapad-s145-mojave-catalina-full-dsdt-patches/
       

       
      -Perfect HackBook, HDMI Audio/Video, Bluetooth, AirPlay, Sleep, Lid Sleep, Auto Sleep, Audio, etc!
      -Wifi card has been replaced with Dell DW1560!
      -I'm using a S145-15IWL Model with Intel Core i5 8265u / Intel UHD Graphics 620
      -Update bios/uefi to last version
       
      --Installation--
      https://www.olarila.com/topic/5794-guide-install-macos-with-olarila-image-step-by-step-install-and-post-install-windows-or-mac/
       
      --Clover Folder--
      https://tinyurl.com/rkqmpd9
       
      --OpenCore Folder--
      https://tinyurl.com/y75hqg7z
       
      Bluetooth Broadcom
      Bluetooth Broadcom.zip
       
      CPUFriend for i5-8265U
      CPUFriend i5-8265U.zip
       
      --Full DSDT Patches--
      -My DSDT
      DSDT Lenovo IdeaPad S145.zip
       
      This DSDT work on S145-14IWL, S145-15IWL, V14-IWL, V15-IWL models
      -Patches
      -FIX ERRORS AND WARNINGS -REMOVE UNUSED SCOPES / DEVICES -HIGH PRECISION EVENT TIMER -SATA SERIE 11 ID -DMAC -REMOVE LINES, PROBLEMATIC and UNUSED -SLPB -DARWIN / WINDOWS 2015 -XHCI -PLUGIN TYPE -HDAS to HDEF -HDEF -REAL TIME CLOCK -ARTC -IRQs -SBUS -BUS1 -MCHC -ALS0 -SHUTDOWN -FWHD -USBX -PMCR -PPMC -XSPI -GMM -IMEI -EC -PRWs -_DSMs -PNLF -BRIGHTNESS KEYS -I2C -NATIVE USB -ARPT -GFX0 -DTGP -kUSBCompanionIndex -io-device-location -FULL RENAMED DEVICES   --IGPU Patch--
      Video solution with HDMI Audio and Video
      <key>PciRoot(0x0)/Pci(0x2,0x0)</key> <dict> <key>AAPL,GfxYTile</key> <data> AQAAAA== </data> <key>AAPL,ig-platform-id</key> <data> CQClPg== </data> <key>device-id</key> <data> pT4AAA== </data> <key>enable-hdmi20</key> <data> AQAAAA== </data> <key>framebuffer-con0-alldata</key> <data> AAAIAAIAAACYAAAA </data> <key>framebuffer-con0-enable</key> <integer>1</integer> <key>framebuffer-con1-alldata</key> <data> AQEJAAAIAADHAQAA </data> <key>framebuffer-con1-enable</key> <integer>1</integer> <key>framebuffer-con2-alldata</key> <data> AgYKAAAEAADHAQAA </data> <key>framebuffer-con2-enable</key> <integer>1</integer> <key>framebuffer-fbmem</key> <data> AACQAA== </data> <key>framebuffer-patch-enable</key> <data> AQAAAA== </data> <key>framebuffer-stolenmem</key> <data> AAAwAQ== </data> <key>framebuffer-unifiedmem</key> <data> AAAAgA== </data> <key>hda-gfx</key> <string>onboard-1</string> <key>model</key> <string>Intel Corporation, Iris Plus Graphics 655</string> </dict>   --Native USB Fix for Notebooks - No Injector/Kext Required--
      https://www.olarila.com/topic/6878-guide-native-usb-fix-for-notebooks-no-injectorkext-required/
      https://www.olarila.com/topic/6181-guide-native-usb-fix-for-desktops-no-injectorkext-required-skylake/
       
       
      -ScreenShots

































      -Links
       
       
      Clover https://github.com/CloverHackyColor/CloverBootloader
      AirportBrcmFixup.kext https://github.com/acidanthera/AirportBrcmFixup
      AppleALC.kext https://github.com/acidanthera/AppleALC
      Brcm Bluetooth https://github.com/acidanthera/BrcmPatchRAM
      Lilu.kext https://github.com/acidanthera/Lilu
      SystemProfilerMemoryFixup.kext https://github.com/Goldfish64/SystemProfilerMemoryFixup
      VirtualSMC.kext https://github.com/acidanthera/VirtualSMC
      VoodooI2C.kext https://github.com/alexandred/VoodooI2C
      VoodooPS2Controller.kext https://github.com/acidanthera/VoodooPS2
      WhateverGreen.kext https://github.com/acidanthera/WhateverGreen
      MaciASL - https://github.com/acidanthera/MaciASL
      acpica - https://github.com/acpica/acpica
      AptioMemoryFix.efi https://github.com/acidanthera/AptioFixPkg
      ApfsDriverLoader.efi https://github.com/acidanthera/AppleSupportPkg
      HFSPlus.efi https://github.com/JrCs/CloverGrowerPro/blob/master/Files/HFSPlus/X64/HFSPlus.efi?raw=true
      Hackintool https://github.com/headkaze/Hackintool
       
      -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!
       
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad, Sampath007, onemanosx, erroruser, Jenny David, Olarila Facebook Community, Hackintosh Facebook Community and many others!
       
      We're all here to have fun and learn from each other!
    • By Mieze
      A New Driver for Realtek RTL8111
       
      Due to the lack of an OS X driver that makes use of the advanced features of the Realtek RTL81111/8168 series I started a new project with the aim to create a state of the art driver that gets the most out of those NICs which can be found on virtually any cheap board on the market today. Based on Realtek's Linux driver (version 8.035.0) I have written a driver that is optimized for performance while making efficient use of system resources and keeping the CPU usage down under heavy load.

      Key Features of the Driver
      Supports Realtek RTL8111/8168 B/C/D/E/F/G found on recent boards. Support for multisegment packets relieving the network stack of unnecessary copy operations when assembling packets for transmission. No-copy receive and transmit. Only small packets are copied on reception because creating a copy is more efficient than allocating a new buffer. TCP, UDP and IPv4 checksum offload (receive and transmit). TCP segmentation offload under IPv4. Support for TCP/IPv6 and UDP/IPv6 checksum offload. Fully optimized for Mountain Lion (64bit architecture) but should work with Lion too. As of now there is no support for Snow Leopard but it can be added if someone will create the necessary patches. Supports Wake on LAN. Support for Energy Efficient Ethernet (EEE) which can be disabled by setting enableEEE to NO in the drivers Info.plist without rebuild. The default is YES. The driver is published under GPLv2.  
      Limitations
      As checksum offload doesn't work with jumbo frames they are currently unsupported and will definitely never be. No support for 32bit kernels.  
      Installation
      Before you install the driver you have to remove any installed driver for RTL8111/8168.
      Goto /S/L/E and delete the old driver (Lnx2mac, AppleRealtekRTL8169, etc.). Recreate the kernel cache. Open System Preferences and delete the corresponding network interface, e. g. en0. If you forget this step you might experience strange problems with certain Apple domains, iTunes and iCloud later. Reboot. Install the new driver and recreate the kernel cache. I recommend to use Kext Wizard or a similar utility for the installation. Reboot Open System Preferences again, select Network and check if the new network interface has been created automatically or create it manually now. Configure the interface.  
      Help - I'm getting kernel panics!
      Well, before you start complaining about bugs after you upgraded macOS and ask me to publish a driver update, you should first try to resolve the issue on your own by cleaning the system caches.
      As the driver uses macOS's private network driver interface, which is supposed to be used by Apple provided drivers only, you might run into problems after an OS update because the linker may fail to recognize that IONetworking.kext has been updated and that the driver needs to be linked against the new version (Apple provided drivers avoid this problem because they are always updated together with IONetworking.kext). As a result, the linking process produces garbage and the driver may call arbitrary code when trying to call functions from IONetworking.kext. This usually results in unpredicted behavior or a kernel panic. In order to recover from such a situation, you should clean the System Caches forcing the linker to recreate it's caches:
      Delete all the files in /System/Library/Caches and it's subdirectories but leave the directories and the symbolic links intact. This is very important! Reboot. Recreate the kernel cache. Reboot again.  
      Troubleshooting
      Make sure you have followed the installation instructions especially when you have issues with certain domains while the others are working fine. Use the debug version to collect log data when trying to track down problems. The kernel log messages can be found in /var/log/system.log. For Sierra and above use "log show --predicate "processID == 0" --debug" in order to retrieve kernel logs. Include the log data when asking for support or giving feedback. I'm an engineer, not a clairvoyant. Check your BIOS settings. You might want to disable Network Boot and the UEFI Network Stack as these can interfere with the driver. Double check that you have removed any other Realtek kext from your system because they could prevent the driver from working properly. Verify your bootloader configuration, in particular the kernel flags. Avoid using npci=0x2000 or npci=0x3000.  In Terminal run netstat -s in order to display network statistics. Carefully examine the data for any unusual activity like a high number of packets with bad IP header checksums, etc. In case auto-configuration of the link layer connection doesn't work it might be necessary to select the medium manually in System Preferences under Network for the interface. Use Wireshark to create a packet dump in order to collect diagnostic information. Keep in mind that there are many manufacturers of network equipment. Although Ethernet is an IEEE standard different implementations may show different behavior causing incompatibilities. In case you are having trouble try a different switch or a different cable.  
      FAQ
      How can I retrieve the kernel logs? In Terminal type "grep kernel /var/log/system.log". I want to disable Energy Efficient Ethernet (EEE) but I don't know how? Take a look at the driver's Info.plist file. There you will find an option named <key>enableEEE</key>. Change its value from <true/> to <false/>. Don't forget to recreate the kernel cache after changing the value. WoL from S5 doesn't work with this driver but under Windows it's working. Is this a driver bug? No it isn't, the driver is working as it should because OS X doesn't support WoL from S5.  
      Current status
      The driver has been successfully tested under 10.8.x and 10.9 with the B, C, D, E, F and G versions of the RTL8111/8168 and is known to work stable on these devices.  
      Changelog
       
      Version 2.3.0 (2020-08-14) Reworked medium section and EEE support to resolve problems with connection establishment and stability. Added option to supply a fallback MAC. Updated Linux sources to 8.047.04 and added support for new family members Requires 10.14 or newer. Version 2.2.2 (2018-01-21) Force ASPM state to disabled/enabled according to the config parameter setting. Requires 10.12 or newer. Version 2.2.1 (2016-03-12): Updated underlying linux sources from Realtek to 8.041.00. Added support for RTL8111H. Implemented Apple’s polled receive driver model (RXPOLL). Requires 10.11 or newer. Support for older versions of OS X has been dropped. Version 2.0.0 (2015-06-21): Uses Apple's private driver interface introduced with 10.8. Supports packet scheduling with QFQ. Please note that 2.0.0 is identical to 2.0.0d2. Only the version number has changed. Version 1.2.3 (2014-08-23): Reworked TSO4 and added support for TSO6. Version 1.2.2 (2014-08-44): Added an option to disable Active State Power Management (ASPM, default disabled) as ASPM seems to result in unstable operation of some chipsets. Resolved a problem with Link Aggregation after reboot. Added a workaround for the multicast filter bug of chipset 17 (RTL8111F) which prevented Bonjour from working properly Version 1.2.0 (2014-04-24): Updated underlying linux sources from Realtek to 8.037.00. Improved interrupt mitigate to use a less aggressive value for 10/100 MBit connections. Version 1.1.3 (2013-11-29): Improved transmit queue handling made it possible to reduce CPU load during packet transmission. Improved deadlock detection logic in order to avoid false positives due to lost interrupts. Version 1.1.2 (2013-08-03): Improved SMB performance in certain configurations. Faster browsing of large shares. Version 1.1.0 (2013-06-08): Support for TCP/IPv6 and UDP/IPv6 checksum offload added (can be disabled in Info.plist). Maximum size of the scatter-gather-list has been increased from 24 to 40 segments to resolve performance issues with TSO4 when offloading large packets which are highly fragmented. TSO4 can be disabled in Info.plist without rebuild. Statistics gathering has been improved to deliver more detailed information (resource shortages, transmitter resets, transmitter interrupt count). The interrupt mitigate settings has been changed to improve performance with SMB and to reduce CPU load. Configuration option added to allow for user defined interrupt mitigate settings without rebuild. Version 1.0.4 (2013-05-04): Moved setLinkStatus(kIONetworkLinkValid) from start() to enable(). Cleaned up getDescCommand(). Version 1.0.3 (2013-04-25): The issue after a reboot from Windows has been eliminated. Version 1.0.2 (2013-04-22): Added support for rx checksum offload of TCP and UDP over IPv6. Version 1.0.1 (2013-03-31): Improved behavior when rx checksum offload isn't working properly. Adds the chipset's model name to IORegistry so that it will show up in System Profiler.  
      Known Issues
      There are still performance problems with regard to SMB in certain configurations. My tests indicate that Apple's Broadcom driver shows the same behavior with those configurations. Obviously it's a more general problem that is not limited to my driver. WoL does not work in certain configurations. Old systems with 3 and 4 series chipsets exhibit performance issues in recent versions of macOS because there is no optimized power management for these systems in macOS anymore as Apple dropped support for the underlying hardware a long time ago. In case you are affected, please upgrade your hardware or find an alternative solution because I have no plans for a workaround. Sorry, but I don't think that it's worth the effort.  
      Getting the driver
      The source code can be found here: https://github.com/M...driver_for_OS_X There is also a pre-build binary for Mavericks and above: https://www.insanelymac.com/forum/files/file/88-realtekrtl8111-binary/  
      Building from Source
      I'm always using the latest version of XCode for development. You can get a free copy of XCode after becoming a member of the Apple developer program. The free membership is sufficient in order to get access to development tools and documentation.
×