Mieze Posted April 22, 2020 Share Posted April 22, 2020 (edited) 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 my tests, it 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. This problem has been resolved in version 1.1.0. Installation You might want to install the driver to /L/E as usual but it's also ok to use Clover's or OC's injection function (installation in the EFI folder). Use your favorite kext installation tool for installation or perform the installation manually (for Clover or OC 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.2.0 (2024-10-11) Changed version number to 1.1.0 to make it an official release. Version 1.2.0d5 (2024-03-28) Added support for AppleVTD. Limited jumbo frame support to ensure compatibility with AppleVTD (MTU 4076). Implemented an interrupt throttling algorithm to improve performance and limit CPU load. Version 1.1.0 (2021-04-29) Changed version number to 1.1.0 to make it an official release. Version 1.1.0d12 (2021-04-25) Updated Linux sources to 9.005.01. Fixed auto-negotiation for all speeds (including 2.5 Gigabit). Added support for adaptive poll interval in 2.5 Gigabit mode. 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/ Edited October 11 by Mieze Update to version 1.2.0 17 2 Link to comment Share on other sites More sharing options...
Mieze Posted April 22, 2020 Author Share Posted April 22, 2020 Attached you'll find a binary of version 1.0.0d3 of the driver which I'm currently using successfully on my primary machine. Good luck testing! Mieze LucyRTL8125Ethernet-V1.0.0d3.zip 5 1 Link to comment Share on other sites More sharing options...
iCanaro Posted April 23, 2020 Share Posted April 23, 2020 my ryzentosh MSI UNIFY 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 Link to comment Share on other sites More sharing options...
Mieze Posted April 23, 2020 Author Share Posted April 23, 2020 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. 1 Link to comment Share on other sites More sharing options...
iCanaro Posted April 23, 2020 Share Posted April 23, 2020 (edited) only catalina Edited April 23, 2020 by iCanaro 2 Link to comment Share on other sites More sharing options...
luckyducky8676 Posted April 26, 2020 Share Posted April 26, 2020 (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? Edited April 26, 2020 by luckyducky8676 Link to comment Share on other sites More sharing options...
Mieze Posted April 26, 2020 Author Share Posted April 26, 2020 @luckyducky8676 Try to select the medium manually because this helps most times you've got trouble getting a connection. Link to comment Share on other sites More sharing options...
luckyducky8676 Posted April 26, 2020 Share Posted April 26, 2020 (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 April 26, 2020 by luckyducky8676 Link to comment Share on other sites More sharing options...
Mieze Posted April 26, 2020 Author Share Posted April 26, 2020 @luckyducky8676 Goto System Preferences and choose the "Network" control panel. Please see the screenshots below and follow the instructions: 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 2 Link to comment Share on other sites More sharing options...
luckyducky8676 Posted April 27, 2020 Share Posted April 27, 2020 I have no way of getting to preferences from the base installer? Link to comment Share on other sites More sharing options...
luckyducky8676 Posted April 27, 2020 Share Posted April 27, 2020 (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 April 27, 2020 by luckyducky8676 1 1 Link to comment Share on other sites More sharing options...
Mieze Posted April 27, 2020 Author Share Posted April 27, 2020 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 LucyRTL8125Ethernet-V1.0.0d4zip.zip 2 Link to comment Share on other sites More sharing options...
iCanaro Posted April 28, 2020 Share Posted April 28, 2020 2 Link to comment Share on other sites More sharing options...
buki Posted April 28, 2020 Share Posted April 28, 2020 Perfect, thank you! 1 Link to comment Share on other sites More sharing options...
Alectardy98 Posted May 8, 2020 Share Posted May 8, 2020 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 Link to comment Share on other sites More sharing options...
Mieze Posted May 8, 2020 Author Share Posted May 8, 2020 @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. Link to comment Share on other sites More sharing options...
Alectardy98 Posted May 8, 2020 Share Posted May 8, 2020 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 Link to comment Share on other sites More sharing options...
Mieze Posted May 8, 2020 Author Share Posted May 8, 2020 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 Link to comment Share on other sites More sharing options...
Alectardy98 Posted May 11, 2020 Share Posted May 11, 2020 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! Link to comment Share on other sites More sharing options...
Alectardy98 Posted May 14, 2020 Share Posted May 14, 2020 (edited) I hope this information helps with future troubleshooting Hackintosh’s MacBook Pro.zip Edited May 14, 2020 by Alectardy98 Link to comment Share on other sites More sharing options...
fuzzylogic Posted May 16, 2020 Share Posted May 16, 2020 (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? 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 May 18, 2020 by osxone Link to comment Share on other sites More sharing options...
Alectardy98 Posted May 17, 2020 Share Posted May 17, 2020 (edited) I fixed it with this FakePCIID_3 I fixed it with this FakePCIID_3 Edited May 17, 2020 by Alectardy98 1 Link to comment Share on other sites More sharing options...
zedn Posted May 18, 2020 Share Posted May 18, 2020 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 1 Link to comment Share on other sites More sharing options...
zedn Posted May 19, 2020 Share Posted May 19, 2020 Hello Mieze, here are some screenshots... Mojave vs Catalina. Please can you validate this (if you find a bit time). Thanks a ton! Link to comment Share on other sites More sharing options...
Mieze Posted May 19, 2020 Author Share Posted May 19, 2020 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 Link to comment Share on other sites More sharing options...
Recommended Posts