[HELP][ASRock X670E Pro RS] RTL8125 NIC Not Working

h3x4n1um

New member
AMD OS X Member
Apr 18, 2025
3
0
1
CPU:
Ryzen 7 7700
Hi everyone,

Recently I just installed a hackintosh on my rig with the following hardware:
  • Mobo: ASRock X670E Pro RS
  • CPU: Ryzen 7 7700
  • GPU: RX 6900 XT
As my NIC is not recognized by LucyRTL8125Ethernet kext, I had to use https://github.com/corpnewt/UnPlugged script to proceed with the Sequoia installation.

With the power of open-sourced, I managed to pull source code of LucyRTL8125Ethernet kext and compile myself a debug build of it with additional logging for diagnostic on why it failed to recognized my RTL8125 NIC.

I found out that during the initialization phase of LucyRTL8125Ethernet kext, it will attempt to map RTL8125 hardware MMIO region #2 with:
C++:
baseMap = provider->mapDeviceMemoryWithRegister(kIOPCIConfigBaseAddress2, kIOMapInhibitCache);
Source: https://github.com/Mieze/LucyRTL812...cyRTL8125Ethernet/LucyRTL8125Hardware.cpp#L77

Equivalent Linux code:
C:
ioaddr = ioremap(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2));
Source: https://github.com/notpeelz/r8125/blob/80c1b2504dd08ea7fb0e0685510ba26cffec3d56/src/r8125_n.c#L15770


But somehow on my hackintosh machine, the kext was not able to obtain TxConfig register from the NIC MMIO region with:
C++:
val32 = ReadReg32(TxConfig);
Source: https://github.com/Mieze/LucyRTL812...yRTL8125Ethernet/LucyRTL8125Hardware.cpp#L149


Equivalent Linux code:
C:
val32 = RTL_R32(tp, TxConfig);
Source: https://github.com/notpeelz/r8125/blob/80c1b2504dd08ea7fb0e0685510ba26cffec3d56/src/r8125_n.c#L7530
Untitled.png


And it caused the kext to fail the initialization phase.
 

Attachments

The reason your RealTek 8125 Ethernet port doesn’t work is because your motherboard uses the newer ‘Dragon RTL8125BG’ LAN controller, which isn’t compatible with LucyRTL8125Ethernet.kext.

It has a different Device ID compared to the older RealTek 8125B Ethernet controller.

You could try adding the Device ID for your Dragon RTL8125BG to the kext to see if that helps.
 
From what I have read the device ID for your Ethernet card is 0x3962, while the device id for the 8125B card is 0x8125.

If you right click on the LucyRTL812TEthernet.kext,
select show package Contents,
open the contents folder,
then open the info.plist you should be able to see which device id’s are present and if required add the device ID for your card.
 
The reason your RealTek 8125 Ethernet port doesn’t work is because your motherboard uses the newer ‘Dragon RTL8125BG’ LAN controller, which isn’t compatible with LucyRTL8125Ethernet.kext.

It has a different Device ID compared to the older RealTek 8125B Ethernet controller.

You could try adding the Device ID for your Dragon RTL8125BG to the kext to see if that helps.
Hi @Edhawk, thank you for your support,

But according to AIDA64 result of my machine, it showed me that my RTL8125BG had device ID of 0x8125 which I assumed it should be supported by LucyRTL8125Ethernet kext?

1745114766997.png

I'll try to obtain the IOReg dump from my hackintosh and upload it here in case it can helps (if any) to diagnose my issue with this NIC.
 
Have a look at the Hackintool > PCIe tab, see what it shows for the 2.5G Ethernet controller.
 
Your 2.5G Ethernet controller should work with LucyRTL8125Ethernet.kext given the in the Hackintool screenshot. That is how my 2.5G built-in ports and PCIe adapter cards all appeared.

Have you tried adding an Ethernet connection via the System Settings > Network preferences tab, I.e. by using the ‘Add Service’ option?
 
  AdBlock Detected
Sure, ad-blocking software does a great job at blocking ads, but it also blocks some useful and important features of our website. For the best possible site experience please take a moment to disable your AdBlocker.