RTL812xLucy für die Realtek RTL812x-Familie

  • Nach 6 Wochen mit ca. 100 investierten Arbeitsstunden ist es nun soweit, dass ich die erste funktionsfähige Testversion meines neuen Treibers für die Realtek RTL812x-Netzwerkkarten veröffentlichen kann, welches AppleVTD unter Tahoe und dank des neuen Linux-Sourcecodes von Realtek auch neuere Chips unterstützt, welche mit LucyRTL8125Ethernet noch nicht kompatibel waren. Das Projekt ist noch nicht vollendet, aber der Treiber funktioniert bereits sehr zuverlässig, d. h. ich konnte bei meinen Tests weder Kernel Panics noch Verbindungsabrüche feststellen. Zur Zeit werden folgende Chips unterstützt:

    • RTL8125A
    • RTL8125B
    • RTL8125BP
    • RTL8125CP
    • RTL8125D
    • RTL8126A

    Ab Version 1.1.1 kommt RTL812xLucy jetzt mit einem integrierten IOUserClent, der dem Treiber die Kommunikation mit dem Utility rtl812xtool im Userland ermöglicht.


    In Version 1.1.0 vom 13.3.2026 wurde nun endlich auch die Unterstützung für TSO (TCP Segmentation Offload) hinzugefügt.


    Seit Version 1.0.3 vom 28.02.2026 (siehe Anhang) wird nun auch der RTL8126A unterstützt:

    • Unterstützung für 5Gbit/s mit dem RTL8126A.
    • Außerdem wurden ein paar kleine Bugs beseitigt.

    Version 1.0.2 vom 13.02.2026 bringt folgende Verbesserungen:

    • VLAN-Unterstützung wurde erfolgreich getestet und ist vollständig funktionsfähig.
    • Interrupt Throttling per Software wurde verbessert, um die CPU-Last beim Senden von Daten zu senken.

    Mit Version 1.0.1, die ich am 8.2.2026 veröffentlicht habe (siehe Anhang), wurde folgende Features hingefügt:

    • Dank neuer Firmware werden jetzt Jumboframes (bis MTU 9000) vollständig unterstützt.
    • WoL wurde erfolgreich getestet und funktioniert.


    Bekannte Probleme:

    • Keine!

    Da RTL812xLucy ist als Ersatz für LucyRTL8125Ethernet gedacht ist, muss dieser Treiber entfernt, bzw. in OC deaktiviert werden, bevor RTL812xLucy installiert wird. Erfolgreich getestet wurde RTL812xLucy bisher unter Tahoe, Sequoia und Monterey, sollte aber grundsätzlich mit Catalina und aufwärts funktionieren. Den Sourcecode habe ich bereits auf Github veröffentlicht. Falls ihr mein Projekt mit einem kleinen Beitrag unterstützen möchtet, findet ihr dort auch einen Link zum sponsern des Projektes.


    https://github.com/Mieze/RTL812xLucy/tree/main


    Hier noch der Eintrag für OpenCores config.plist, um RTL812xLucy zu installieren:



    Viel Spaß beim Testen!


    Mieze

  • Mieze

    auch wenn ich imho keinen dieser chips habe, ein großes dankeschön, das du mit den treibern am ball bleibst, dankesehr dafür :)


    lg :)

  • Hey Mieze


    Vielen Dank für deinen EInsatz! Wie sieht es mit dem RTL8125BG aus? Ich habe hier noch ein Mainboard mit diesem Chipsatz im Schrank (Bastelprojekt für/mit Sohnemann). Ich dachte eigentlich, Support wäre über LucyRTL8125Ethernet möglich, aber in deiner RTL812xLucy Liste taucht der Chipsatz nicht auf.


    Danke <3

  • jan2ooo Einen RTL8125BG kennt Realteks Linux Sourcecode nicht, aber vermutlich handelt es sich um einen gewöhnlichen RTL8125B, weil zur Zeit als Mainboards der 400er Serie aktuell waren nur jeweils 2 Varianten vom RTL8125A und RTL8125B existierten. Den Chip als RTL8125BG zu bezeichnen dürfte wohl lediglich eine kreative Namensgebung von Asrock sein. Ich halte es jedenfalls für äußerst unwahrscheinlich, dass da ein Chip existiert, der von Realteks eigenem Code nicht unterstützt wird, aber letztendlich hilft da nur ausprobieren. Ich bin jedenfalls sehr zuversichtlich, dass dein Board mit RTL812xLucy funktioniert.

    Einmal editiert, zuletzt von Mieze ()

  • Ich habe mit der neuen Version 1.0.1 (build 1.0.100) schon mal einen kleinen Test unter Tahoe 26.2 mit aktiviertem AppleVTD durchgeführt. Hier sind die Ergebnisse:

  • Ok, den Code für den RTL8126 habe ich jetzt eingefügt und theoretische sollte RTL812xLucy auch mit dem laufen, aber leider habe ich keine passende Karte mit diesem Chip zur Verfügung. Ich hatte zwar eine per Aliexpress bestellt, aber anstelle einer PCIe-Karte mit RTL8126 dieses nutzlose Teil erhalten, was natürlich umgehend zurückgegangen ist.


    Falls jemand von Euch so eine Karte in seinem Hackintosh haben sollte, dann würde ich mich freuen, wenn er für mich ein paar grundlegende Tests mit RTL812xLucy durchführen könnte, um wenigstens überprüfen zu können, ob es funktioniert. Ich habe inzwischen zwar eine neue Karte bestellt, aber die werde ich wohl wegen Karneval nicht vor dem nächsten Wochenende zur Verfügung haben und eine ganze Woche Verzögerung wäre schade. Bei Interesse bitte melden, am besten per PM, da die neue Version noch nicht soweit ist, um sie zu veröffentlichen.


  • Mieze i could try with an 8126A ethernet


    edit:

    I read better and i sent private message :)


  • Ich habe eine Rückmeldung von einem russischen User erhalten, der berichtet, dass auf seinem Rechner der RTL8125 und Windows nicht funktioniert, nachdem er ihn unter macOS mit RTL812xLucy betrieben hatte und einen Warmstart zu Windows durchgeführt hat. Erst nach einem Kaltstart zu Windows soll bei ihm der RTL8125 wieder unter Windows funktionieren. Da ich auf meinem Testrechner kein Windows habe und es daher nicht selbst verifizieren kann, wollte ich Euch fragen, ob Ihr dieses Problem bestätigen könnt, oder ob es bei Euch nicht auftritt?

  • So, ich habe heute meine RTL8126A bekommen und, nachdem ich einen PCIe-Slot für die freigeschaufelt hatte (in meinem Testsystem steckt in jedem Slot eine Netzwerkkarte), die Karte eingebaut, sowie erste Tests gefahren. Ich musste zwar noch eine Zeile Code korrigieren, bevor sie sich auch mit 5Gbit/s verbunden hat, aber grundsätzlich kann ich bestätigen, dass RTL812xLucy bereits mit der RTL8126A läuft. Was noch fehlt, ist ein bisschen Performance-Tuning. Das werde ich am Wochenende erledigen und dann die neue Version veröffentlichen.


  • Mieze was it working kexts i tester or it was kpiing also in your system as in mine?

    I cant test till 22 march but I am happy you did progress with your kext💪👍🙏


  • fabiosun No, there was no KP, it worked immediately on the first boot, but only in 2.5Gbit mode. In order to make it work with 5Gbit/s, I had to fix the advertised speeds. After that it also worked in 5Gbit mode.

  • Ich habe eine Rückmeldung von einem russischen User erhalten, der berichtet, dass auf seinem Rechner der RTL8125 und Windows nicht funktioniert, nachdem er ihn unter macOS mit RTL812xLucy betrieben hatte und einen Warmstart zu Windows durchgeführt hat. Erst nach einem Kaltstart zu Windows soll bei ihm der RTL8125 wieder unter Windows funktionieren. Da ich auf meinem Testrechner kein Windows habe und es daher nicht selbst verifizieren kann, wollte ich Euch fragen, ob Ihr dieses Problem bestätigen könnt, oder ob es bei Euch nicht auftritt?

    Ich hatte bei mir einen ähnlichen Effekt. Allerdings bisher nur 1x und nicht reproduzierbar: Nach einer Kernel Panic, auf die ich leider nicht geachtet hatte, bekam die Karte keine IP mehr vom DHCP. Link war da. Unter Windows das gleiche Verhalten. Erst Netzteil stromlos hat die Karte resettet. Normales Power-Off hat nicht geholfen.

  • Hier noch ein kurzer Geschwindigkeitstest mit Version 1.0.3 mit dem RTL8126A. Er wurde under Tahoe mit aktiviertem AppleVTD und MTU 9000 durchgeführt. Bitte beachtet, dass die Sendegeschwindigkeit von TCP/IPv6 durch die CPU-Leistung auf 3,94Gbit/s begrenzt wird. Ohne AppleVTD und unter Sequoia dürften dieser Wert besser sein. Mit MTU 1500 liegt die Sendegeschwindigkeit insgesamt niedriger, da die CPU zum limitierenden Faktor wird.

  • Hallo Mieze,

    ist es ein größerer Aufwand, den Realtek-Chipsatz RTL8156B in deinen Treiber-KEXT zu integrieren?

    Die Realtek-5-Reihe bezieht sich ab 2,5 GBit/s auf xx-Netzwerkarten.

    Zurzeit nutze ich den Realtek-Treiber gemäß meiner Anleitung:

    Dell WD22TP4 Dockingstation Realtek Treiber 8153 Sonoma/ Sequoia

    Betrieben an den Dockingstationen WD22TB4 und SD25TB4.

    Einfacher wäre es, wenn er direkt vom KEXT genutzt werden könnte – es ist halt weniger Installationsaufwand.

    Ist aber nicht so kritisch, kommt ja auch nur alle Jubeljahre vor nach einer Neuinstallation, halt nur eine Frage ...

    Danke dir für deine Unterstützung in allem!

  • ende4711 Da ist leider unmöglich. Der Realtek RTL8156B ist ein USB to Ethernet Adapter, welcher eine komplett andere Treiberarchitektur erfordert, da es sich im Grundsatz um einen Treiber für ein USB-Gerät handelt. RTL812xLucy und LucyRTL8125Ethernet hingegen sind Treiber für PCIe-Geräte. Meines Wissens laufen USB to Ethernet Adapter mit generischen Treibern von Apple oder mit von Realtek bereitgestellten Treibern.

  • Es gibt gute Nachrichten zu verkünden. Es ist mir gestern gelungen das Performance-Problem mit TSO (mit TSO lag der Tx-Durchsatz ca. 15%niedriger) zu lösen. Nachdem ich den ganzen Februar vergeblich versucht hatte, die Ursache zu finden, ohne Hardwaredokumentation ein ziemlich mühseliges und wenig aussichtsreiches Unterfangen, habe ich mich zu einem radikalen Neuanfang entschlossen.

    Ausgehend vom Sourcecode von LucyRTL8125Ethernet (damit funktioniert TSO bei voller Geschwindigkeit) habe ich begonnen, den Code von RTL812xLucy Stück für Stück in LucyRTL8125Ethernet einzuarbeiten. Im Endergebnis habe nun einen komplett überarbeiteten Treiber, der die Vorteile aus beiden Ansätzen vereint: Eine sauberere Architektur, volle TX-Geschwindigkeit mit geringer CPU-Last (auch ohne Jumbo Frames) und Unterstützung von neuer Hardware. Anbei ein Performance-Test, den ich gestern mit dem RTL8126A durchgeführt habe. Die Testanordnung entspricht der aus dem letzten Test (siehe oben). Bis zur Veröffentlich werde ich noch ein paar Tage für Tests brauchen, aber ich denke, dass ich am Wochenende die neue Version veröffentlichen kann. Hier erst mal die Ergebnisse des Tests:

  • Eigentlich bin ich 2 Tage zu früh, aber ich habe entschieden, dass es bei mir schon heute Ostereier gibt, denn ich habe gerade Version 1.1.1 veröffentlicht. Wesentliche Neuerungen sind:

    • Ein integrierter IOUserClient der RTL812xLucy.kext die Kommunikation mit dem Userland ermöglicht.
    • Ein kleines Tool names rtl812xtool, um im Terminal die Hardwarestatistik der Chips, sowie den integrierten Temperatursensor auszulesen, über den alle Chips der Serie außer dem RTL8125A verfügen.

    Da ich heute zu faul bin alles zweimal zu schreiben (auf Deutsch und auf Englisch), findet Ihr die Anleitung zu rtl812xtool im betreffenden Thread auf insanelymac.com.


    Viel Spaß, die Ostermieze!

    Einmal editiert, zuletzt von Mieze ()

  • Hallo


    wie sieht es mit dem RTL8127 aus?