Jump to content
Mieze

LucyRTL8125Ethernet.kext for Realtek RTL8125

57 posts in this topic

Recommended Posts

Posted (edited)

This project is dedicated to Lucy, my lovely little Tyrannofelis Rex. :lol:

 

IMG_0581.jpeg.5d6e2d081b5c38b197428b62667ee4ae.jpeg

 

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 Catalina (doesn't work with Mojave and below). 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!

 

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.0d6 (2020-06-14)
    • Fixed chip recognition.
  • Version 1.0.0d3 (2020-04-20)
    • First working development release.

 

Getting the driver

 

 

Edited by Mieze
Update to version 1.0.0d6.

Share this post


Link to post
Share on other sites
Advertisement

my ryzentosh

MSI UNIFY

976223990_Schermata2020-04-23alle12_31_4

1056288087_Schermata2020-04-23alle12_33_

 

816721204_Schermata2020-04-23alle18_07_04.png.bb37e5198a08f33df203a6cfa7aa5358.png

 

 

with catalina it is present in the list, but it does not activate. With high sierra and mojave it is not made available on the net

msi unify.txt.zip

Share this post


Link to post
Share on other sites

In case there is a problem, please send me kernel logs. By the way, if the NIC doesn't get a link, try to select the medium manually as this seems to help.

Share this post


Link to post
Share on other sites
Posted (edited)

Thank you...

Also on MSI Unify x570


Having trouble using the kext in OpenCore. Have loaded it to EFI/OC/Kexts and have it in config.plist, but when i load up the installer, the computer still doesn't connect to the internet and I’m unable to install the MacOS. Network Utility shows the RTL8125

 

how do I show you the kernel log?

9343D331-0F94-4BAD-BBFF-F21DB4552C14.jpeg

Edited by luckyducky8676

Share this post


Link to post
Share on other sites
Posted (edited)

Sorry, what does that mean? How can I access Network Settings and select a medium if I don't have MacOS installed?  I can't get the installer disk to install because I need an internet connection on the hackintosh.

Edited by luckyducky8676

Share this post


Link to post
Share on other sites

@luckyducky8676 Goto System Preferences and choose the "Network" control panel. Please see the screenshots below and follow the instructions:

617537288_Bildschirmfoto2020-04-26um23_05_06.thumb.png.25bd2e6946c469e65b188dc1fd34ccb6.png

1774650180_Bildschirmfoto2020-04-26um23_05_20.thumb.png.64401d5dce6167c0d0b3dc9bab42d824.png

After clicking "OK" you also have to click "Apply" on the main screen of the "Network" control panel in order to activate the changes you made.

 

Mieze :cat:

Share this post


Link to post
Share on other sites
Posted (edited)

Ok I just used a usb-c hub that I had for Ethernet to install, and I got the rtl8125 to work afterwards following your instructions :) 

 

thank you!

Edited by luckyducky8676

Share this post


Link to post
Share on other sites

I checked the code for auto-negotiation of the medium and found a stupid mistake which is now fixed in version 1.0.0d4. On my test machine, auto-negotiation works fine now. Attached to this post you'll find a prebuilt binary. Good luck testing!

 

Mieze :cat:

LucyRTL8125Ethernet-V1.0.0d4zip.zip

Share this post


Link to post
Share on other sites

I have a killer E3000 and I was able to use your kext to get my ethernet device to find under system preferences, but It say that there is no device even when its plugged in.

 

I tried to include everything you stated above. Thank you so much for making this kext, I hope we can figure out how to make it work!

 

Let me know if there is anything more that I need to add

 

Killer E3000.zip

Share this post


Link to post
Share on other sites

@Alectardy98 There is a simple solution: the driver isn't installed properly! By the way, there are a lot of ACPI errors in your logs which might result in hardware not working as expected.

Share this post


Link to post
Share on other sites

Ive tried putting the kext in both EFI/CLOVER/kext/other and installing it to L/E with kext beast

 

No luck. If I'm installing it wrong then how would you install it correctly?

 

It is running when I check kext stat?

 

kextstat

Share this post


Link to post
Share on other sites

As your kernel logs show lots of ACPI errors, it's most likely an ACPI related error preventing the driver from being matched with the hardware. You should fix that first!

 

Mieze

Share this post


Link to post
Share on other sites

The kext is being recognized with the hardware, I think the current version is just not compatible with my Killer E3000. I will just keep waiting for an updated version.

 

Thank your for what you are doing for the community!

Screen Shot 2020-05-11 at 10.54.34 PM.png

Share this post


Link to post
Share on other sites
Posted (edited)

I am not sure how to send debug information, kernel seems to install and is present but disabled, I have tried to set to Manual with no progress. I would like to know how to compile from your download?

Screenshot 2020-05-16 at 23.56.12.png

Screenshot 2020-05-16 at 22.40.37.png

Screenshot 2020-05-17 at 01.01.44.png

 

Did you compile your version from the linux  

2.5G Ethernet LINUX driver r8125 for kernel up to 4.15 9.003.04 2020/03/11

 

and was this in linux os?

Edited by osxone

Share this post


Link to post
Share on other sites

Hello Mieze,

 

big thanks for this Kext... it´s flawless working here with MSI X299 Pro (https://de.msi.com/Motherboard/X299-PRO). 

But only with Catalina... is it possible to get it work under Mojave? In 10.14.6 the RTL8125 Port under "Ethernet Cards" or "Network" is non-existent, with Cat it´s there (like the other Mieze-driven Intel I219V ;-)). 

 

Thank you very much,

Zig

Share this post


Link to post
Share on other sites

Hello Mieze,

 

here are some screenshots... Mojave vs Catalina. 

Please can you validate this (if you find a bit time). 

 

Thanks a ton! 

Catalina_PCI.png

Catalina_Ethernet Cards.png

Mojave_PCI.png

Mojave_Ethernet Cards.png

Share this post


Link to post
Share on other sites

Please stop flooding me with useless screenshots. In case the driver doesn't work under Mojave, try to load it manually in Terminal with the command:

sudo kextutil -v 5 LucyRTL8125Ethernet.kext

and take a look at the messages. I assume that's a link error because I built the driver for Catalina.

 

Mieze :cat:

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 Yosa Tristian
      Can someone help me?
      When I turn on the USB Wireless Adapter (Wifi Dongle), my mouse is lagging (like quick ejecting & rejecting).
      When I turn off the Wifi Dongle, my mouse runs smooth again.
       
      Mouse: Fantech G13 Rhasta II
      Wifi Dongle: TPLink TL-WN725N
      Wifi Dongle Driver : https://github.com/chris1111/Wireless-USB-Adapter
       
      And if you don't mind, can you check my hackintosh configuration? maybe something isn't right yet
      Send me Yosas-MacBook-Pro.zip
    • By Mieze
      Key Features of the Driver
      Supports Qualcomm Atheros AR816x, AR817x, Killer E220x, Killer E2400 and Killer E2500. 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). Support for TCP/IPv6 and UDP/IPv6 checksum offload. Makes use of the chip's TCP Segmentation Offload (TSO) feature with IPv4 and IPv6 in order to reduce CPU load while sending large amounts of data. Fully optimized for Mountain Lion, Mavericks and Yosemite (64bit architecture) but should work with Lion (only 64bit) too, provided you build from source with the 10.7 SDK. Wake on LAN support. VLAN support used to be broken in older versions but is working since version 2.3.2. The driver is published under GPLv2.
    • By Hervé
      Recompiled v2.3.6 sources in fat-binary mode (Xcode 3.2.6, SDK 10.6, Target OS X 10.6). Fully supported in 32bit and/or 64bit mode under all OS X/macOS versions from Mac OS X Snow Leopard 10.6 to macOS Catalina 10.15.
       
      Tested on Dell Latitude D630 and D830, both fitted with Broadcom BCM5755M Gigabit Ethernet cards (14e4:1673).
       
      Edits:
      Nov 16th, 2018: updated description to confirm support up to macOS Mojave 10.14 Jan 11th, 2019: updated description to confirm support up to macOS Catalina 10.15  
    • By Mieze
      This project is dedicated to the memory of Mausi, the cat I loved more than anybody else.
       

       
      A few days before Christmas I started my latest project, a new driver for recent Intel onboard LAN controllers. My intention was not to replace hnak's AppleIntelE1000e.kext completely but to deliver best performance and stability on recent hardware. That's why I dropped support for a number of older NICs. Currently the driver supports:
       
      5 Series
      82578LM 82578LC 82578DM 82578DC 6 and 7 Series
      82579LM 82579V 8 and 9 Series
      I217LM I217V I218LM I218V I218LM2 I218V2 I218LM3 100 Series (since V2.1.0d0)
      I219LM I219V 200 Series (since V2.3.0d0)
      I219LM I219V 300 Series (since V2.4.0d0)
      I219LM I219V 400 Series (since V2.5.1d1)
      I219LM I219V  
      Key Features of the Driver
      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). Support for TCP/IPv6 and UDP/IPv6 checksum offload. Makes use of the chip's TCP Segmentation Offload (TSO) feature with IPv4 and IPv6 in order to reduce CPU load while sending large amounts of data (disabled due to hardware bugs). Fully optimized for Sierra (64bit architecture) but should work with older 64bit versions of macOS too, provided you build from source with the appropriate SDK for the target OS. Support for Energy Efficient Ethernet (EEE). VLAN support is implemented but untested as I have no need for it. The driver is published under GPLv2.  
      Current Status
      The driver has been tested successfully with I217V, I218V, I219V and 82579V under 10.9.5 and above. The attached archive includes source code as well as a prebuilt binary (debug version) for Mavericks and newer versions of macOS.   Known Issues
      There seem to be problems while using VMware with version 1.x.x of the driver. In case you are affected use version 2.0.0 or newer.  
      FAQ
      Could you add support of for...? Well, you are probably asking me to add support for one of the older NICs like the 82571/2/3/4L or 82583 and the answer will be no as I dropped support for these chips intentionally. They are broken and I lost more than 2 weeks trying to make it work on the 82574L without success. I was asked to add support for I210, I211 and I350 but as these chips have a completely different architecture, which isn't supported by the underlying Linux driver, this is impossible, sorry. Does it work with Snow Leopard or 32 bit kernels? No and I have no plans to make a version for 32 bit kernels or anything older than Lion. 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.  
      Installation
      Goto /S/L/E and delete AppleIntelE1000e.kext. Recreate the kernel cache. Open System Preferences and delete the corresponding network interface, e. g. en0. 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 retrieved with "grep kernel /var/log/system.log" in Terminal. Starting from Sierra 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. 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.  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 AppleIntelE1000e.kext from your system because it could prevent the driver from working properly. Delete the following files: /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist /Library/Preferences/SystemConfiguration/preferences.plist 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. Changelog
      Version 2.5.0 (2019-10-15) Reworked interrupt throttling code and added new configuration parameters. Version 2.4.0 (2018-04-14) Added support for 300 series versions of I219LM and I219V. Updated underlying Linux source code. Version 2.3.0 (2017-06-20) Added support for 200 series versions of I219LM and I219V. Version 2.2.0 (2016-09-23) Disabled TSO to work around a hardware bug. Version 2.1.0 (2016-05-24) Added support for I219LM and I219V Version 2.0.0 (2015-04-22) First official release which is identical to 2.0.0d2 (only the version number has been changed). Version 2.0.0d2 (2015-04-04) Changed the tx descriptor write back policy for 82579, I217 and I218 to prevent random tx deadlocks. Version 2.0.0d1 (2015-03-14) Uses Apple's private driver interface introduced with 10.8. Supports packet scheduling with QFQ Solves the VMware issue. Version 1.0.0d6 (2015-03-04) Reworked TSO6 support to avoid problems with VMware. Wake-on-LAN now working. Version 1.0.0d5 (2015-02-27) Reworked TSO4 support to eliminate the bug of 1.0.0d4. Added some debug code in order to collect information about the VMware related issue. Version 1.0.0d4 (2015-02-25) Set total length field of the IP-header to zero for TSO4 operations. Report EEE activation state in kernel log message when the link has been established. Version 1.0.0d3 (2015-02-11) Reworked media selection and EEE support (EEE is now activated when both link partners support it. It can be disabled selecting the medium manually). Duplex setting for 10/100 MBit connections is now reported correctly. The number of tx descriptors has been reduced from 2048 to 1024. The code has been cleaned up and obsolete files have been removed. Version 1.0.0d2 (2015-01-31) First development release. Getting the Driver
      The source code can be found on GitHub: https://github.com/Mieze/IntelMausiEthernet There is also a prebuilt binary for 10.11 and above in the download section: http://www.insanelymac.com/forum/files/file/396-intelmausiethernet/ Build from Source for 10.8
      Register as a developer on Apple's developer website. A free membership is sufficient. Download a copy of Xcode 5.1.1 and install it on your machine. In the project select 10.8 as the "Base SDK" and the "Deployment Target". Call "Archive" from the menu "Product" and save the built driver. Credits
      Thanks to RehabMan and Yung Raj for running tests and pointing me in the right direction while I was trying to fix TSO. Special thanks to Yung Raj for motivating me when I was about to give up.
    • By Alex009988
      The driver with fix and works under  intense traffic
      It work with for all system from Snow Leopard to Catalina.
      { DEVICEID_BCM5722, "BCM5722 NetXtreme Server Gigabit Ethernet" },{ DEVICEID_BCM5754, "BCM5754 NetXtreme Gigabit Ethernet" },{ DEVICEID_BCM5754M, "BCM5754M NetXtreme Gigabit Ethernet" },{ DEVICEID_BCM5755, "BCM5755 NetXtreme Gigabit Ethernet" },{ DEVICEID_BCM5755M, "BCM5755M NetXtreme Gigabit Ethernet" },{ DEVICEID_BCM5787, "BCM5787 NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM5787M, "BCM5787M NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM5906, "BCM5906 NetLink (TM) Fast Ethernet" },{ DEVICEID_BCM5906M, "BCM5906M NetLink (TM) Fast Ethernet" },{ DEVICEID_BCM57788, "BCM57788 NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM5784, "BCM5784 NetLink Gigabit Ethernet" },{ DEVICEID_BCM57785, "BCM57785 NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM57781, "BCM57781 NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM57780, "BCM57780 NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM5752, "BCM5752 NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM5761, "BCM5761 NetLink (TM) Gigabit Ethernet" },{ DEVICEID_BCM5761E, "BCM5761E NetLink (TM) Gigabit Ethernet" },   #define DEVICEID_BCM5722 0x165A#define DEVICEID_BCM5754 0x167A#define DEVICEID_BCM5754M 0x1672#define DEVICEID_BCM5755 0x167B#define DEVICEID_BCM5755M 0x1673#define DEVICEID_BCM5787 0x169B#define DEVICEID_BCM5787M 0x1693#define DEVICEID_BCM5906 0x1712#define DEVICEID_BCM5906M 0x1713#define DEVICEID_BCM57788 0x1691#define DEVICEID_BCM5784 0x1698#define DEVICEID_BCM57785 0x16b5#define DEVICEID_BCM57781 0x16b1#define DEVICEID_BCM57780 0x1692#define DEVICEID_BCM5752 0x1600#define DEVICEID_BCM5761 0x1681#define DEVICEID_BCM5761E 0x1680   If you find extra issues, please tell about it here
      http://www.insanelym...river-3264-bit/
      Cosmetic of DSDT and posible problems with "Built IN"
      http://www.insanelym...00#entry1918594
×