Jump to content
Mieze

New Driver for Realtek RTL8111

1,330 posts in this topic

Recommended Posts

Advertisement

I've installed it in my hack (RTL8111E) and it loaded fine and detected the disconnected cable (I'm not using the LAN right now, just wifi). Recently I've been testing Slice's new kext but had some issues with the latest version so I'll try yours a couple of days and report here.

 

kernel[0]: Ethernet [RealtekRTL8111]: EEE support enabled
kernel[0]: Ethernet [RealtekRTL8111]: RTL8168E-VL/8111E-VL: (Chipset 16) at 0xffffff80f08e5000, xx:xx:xx:xx:xx:xx
kernel[0]: RTL8111: Ethernet address xx:xx:xx:xx:xx:xx

Share this post


Link to post
Share on other sites

Is it possible to add support for the 8105E? Could you include it in your driver?

Unfortunately it isn't because there is no documentation for the Realtek gigabit NICs publicly available so that I had to take the hardware initialization routines from their linux driver and this driver doesn't support the 8105E.

 

Mieze

Share this post


Link to post
Share on other sites

Thanks, Mieze, for the answer!

 

In fact, there is a Linux driver that includes support for the 8105, and Slice even included it in the sources for his driver. I even tried to do something with it, since i'm familiar to C programming, but i lack the necessary knowledge of how to port it to OSX, so i got stuck.

 

All the best!

 

P.S.: the 8105, btw, isn't exactly gigabit ethernet: it's a 10/100 mbs card which usually comes bundled with some cheaper motherboards.

Share this post


Link to post
Share on other sites

In fact, there is a Linux driver that includes support for the 8105, and Slice even included it in the sources for his driver. I even tried to do something with it, since i'm familiar to C programming, but i lack the necessary knowledge of how to port it to OSX, so i got stuck.

My driver has a clear cut separation between the OS X code and the linux code. There are only a few interconnections, mainly when the driver calls hardware initialization routines. Assuming that Realtek's linux driver for their Fast Ethernet NICs has a similar architecture it shouldn't be a big deal for you to take my OS X code as a starting point for your development. You would only have to rewrite the hardware dependent parts, like the outputPacket() function and the interrupt handling routines. Maybe you'll also find a leaked datasheet of the 8105E at www.realtek.cz helping you to implement the transmit and receive routines.

 

Mieze

Share this post


Link to post
Share on other sites

Hey Mieze!

 

Just checking in on the thread with a post so I can receive email updates. :wink2:

 

Keep up the great as always!

 

Mrengles (Robert)

Share this post


Link to post
Share on other sites

i would like to take part to this driver development and i think many users want.

As a proposal: could you please put you driver source code on GITHUB or other online versioning portal to be able to track changes between version more easily

Share this post


Link to post
Share on other sites

i would like to take part to this driver development and i think many users want.

As a proposal: could you please put you driver source code on GITHUB or other online versioning portal to be able to track changes between version more easily

I already thought about that but at the moment I'm very busy with an iOS project so that there is not much time left for the driver. But this is not a high priority because the project folder contains a git repository that you can use to track changes.

 

Mieze

Share this post


Link to post
Share on other sites

I already thought about that but at the moment I'm very busy with an iOS project so that there is not much time left for the driver. But this is not a high priority because the project folder contains a git repository that you can use to track changes.

 

I'd also like to get involved, having a central repro would be most helpful. That said, what needs to be done still for the 8111F chipset?

Share this post


Link to post
Share on other sites

I'd also like to get involved, having a central repro would be most helpful. That said, what needs to be done still for the 8111F chipset?

As far as I know nothing. Only the 8111B still has a long way to go.

 

Mieze

Share this post


Link to post
Share on other sites

Finally I can use WOL !!

My system have RTL8111E (GA X58A-UD3R motherboard) chip, it works perfectly now.

First time when I try this kext follow your guide in post #1.

It shows connected in system profiler and System Preference, but when I try to use internet it's not connect to internet.

One of my friend informed me to shutdown the system instead of restart after install this kext.

I shutdown system couple minutes after install new kext and boot again, now it works perfectly.

New kext makes my system use WOL. I couldn't use WOL when I use old kext.

Thanks, Mieze !!

Share this post


Link to post
Share on other sites

I own a EP45-extreme (two 8111C) , my question is , if i boot chameleon with kernel patcher plugin (to use /E/E) , does the network work with the driver placed in the Extra/Extensions ? the lynx2mac does not work , only if i place it in the S/L/E folder.

Share this post


Link to post
Share on other sites

I own a EP45-extreme (two 8111C) , my question is , if i boot chameleon with kernel patcher plugin (to use /E/E) , does the network work with the driver placed in the Extra/Extensions ? the lynx2mac does not work , only if i place it in the S/L/E folder.

This could be a problem with the kernel cache, because /Extra/Extensions is usually not taken into account when the kernel cache is recreated by Apple provided tools. Better install it in /S/L/E to avoid trouble!

 

Mieze

 

One of my friend informed me to shutdown the system instead of restart after install this kext.

I shutdown system couple minutes after install new kext and boot again, now it works perfectly.

Thanks for posting this. I just added the information to the troubleshooting section.

 

Mieze

Share this post


Link to post
Share on other sites

Would it be possible to add support for RTL8188XX (e.g RTL8188CE)?

No, because these are wireless NICs. They are completely different.

 

Mieze

Share this post


Link to post
Share on other sites

I've installed your driver to both hacks to see how it goes. Had problem installing it at first: driver was loaded and connected to device, but net was not working, said that cable is not connected. Somehow got resolved by few shutdowns/restarts/reinstalls/deleting and adding ethernet - not sure what helped. But works very nice now.

 

Thank you for your work!

Share this post


Link to post
Share on other sites

This could be a problem with the kernel cache, because /Extra/Extensions is usually not taken into account when the kernel cache is recreated by Apple provided tools. Better install it in /S/L/E to avoid trouble!

 

Mieze

 

 

Thanks for posting this. I just added the information to the troubleshooting section.

 

Mieze

 

On my installer USB, i have the kexts in /extra , with the kernel patcher module.

My problem is that on the first boot, osx uses the audio kext, fakesmc, sata (all inside /extra) only realtek kexts does not load, only after i copy it to s/l/e. My wish was to have the internet on first boot, to configure osx from the initial wizard.

 

I've tried your driver, the download is perfect, but i have around 20kb/s upload if i try to put a file on a server or on my network, something is wrong with the upload.

Share this post


Link to post
Share on other sites

On my installer USB, i have the kexts in /extra , with the kernel patcher module.

My problem is that on the first boot, osx uses the audio kext, fakesmc, sata (all inside /extra) only realtek kexts does not load, only after i copy it to s/l/e. My wish was to have the internet on first boot, to configure osx from the initial wizard.

To copy the driver anywhere is not enough. You'll have to repair it's permissions or it will never be used.

I've tried your driver, the download is perfect, but i have around 20kb/s upload if i try to put a file on a server or on my network, something is wrong with the upload.

Please follow the instructions in the troubleshooting section. If the problem persists report back with debug data from /var/log/system.log (all driver related messages), netstat -s output and your OS X version, CPU and mainboard.

 

Mieze

Share this post


Link to post
Share on other sites

Thanks for your work. I have replaced the Lnx2 Realtek driver i have been using with yours. I have had rare problems with the Lnx2 driver where out of the blue the whole network was just gone. The transition went smooth (just followed your instructions). Using a 8111F on a P8H77-I. Will see how it performs long term! So far - all looking good.

Thanks! :)

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   1 member

  • Similar Content

    • By ITzTravelInTime
      KX AUDIO DRIVER MOD
       
      Hi guys i am a small developer, i really like to use my sound blaster cards on my machines and i love also coding, so when i find the source code for the kx audio driver on git hub and then Eugene, the creator of kx audio driver decided to no longer maintain the project, i decided to start working on a mod of this driver. 
       
      With my mod, created starting from the sources of the last version of kx audio driver, and also by using apple developer documentation for pci and audio drivers as reference, i am working to achieve 2 things mainly: get all the cards supported by the driver to work with all the recent versions os macOS and add support for other cards that are not officially supported by the driver that works or could, but needs to be more properly supported.
       
      This driver is made to support cards based on the E-mu 10k1, 10k2 and similars (like what is used by audigy rx and audigy 4 cards).
       
      Supported cards are:
       
       - most of the sound blaster live!, live! 5.1 and live! 5.1 digital series
       - sound blaster 512
       - sound blaster 256
       - other creative and e-mu sound cards based on the 10k1 chip (cards with the ES1370/ES1371/ES1372/ES1373 chips are not supported)
       - sound blaster Audigy series (1 st gen)
       - sound blaster Audigy 2  and audigy 2 zs series
       - E-MU cards based on the 10k2 sound chip
       - Some Audigy 4 cards (SB0610 only) and the audigy 4 pro
       - Sound blaster Audigy RX (sb0155)
       - other creative and e-mu cards based on the (10k2, 10k2,5 and CA10300 based cards)
       
      NOT supported cards:
       
       - Any ISA Sound card
       - ES1370/ES1371/ES1372/ES1373 based sound cards
       - CMI8738/CMI8788 based cards
       - Any CA0106 based card and cards with similar architectures (like sound blaster live! 24 bit, sound blaster audigy SE SB0570, audigy LS and similars, but audigy SA is supported)
       - Any sound blaster x-fi (some of them works on macOS using a modified version of voodoo hda)
       - Any sound blaster recon3D
       - Any sound blaster Z/ZS/ZX and similar series
       - Any sound blaster AE5 series
       
      In the time being the things i have modded or added with this mod are:
       
      - increased the simple buffer frames number with different values for emu10k1 based cards and emu10k2 based cards (including recent audigy 4 and rx) to reduce and all the audio cracking issues and possibly fixing all of them on a lot of cards
       
      - added a more proper support for the pci express sound blaster audigy rx (which basically is an audigy 4 with a pcie bridge chip) 
       
      - added more fancy names for the cards in the settings and other menus (so the name will be, for example, SB live! 5.1 SB0060 instead of kx SB0060 [e880] witch was shown in the original driver)
       
      - added support to sample rate changing and added lots of sample rates (from 8 khz to 176,4 khz) to accomodate any possible usecase (note that 10k1 sound cards are limited up to 48khz sample rate, and 10k2 based cards are limited to 176,4 khz because of issues getting 192 khz to work, for now the driver goes up to 176,4 khz for such cards) 
       
      - added boot args to manage the driver:
       
      Boot args to use with the kx audio driver mod: -kx_disable or -kxdisable or -kxoff This will prevent the driver from doing any initialization work, so the driver is basically disabled, use it to boot your ssytem in case the driver is giving you issues and kernel panics while you are trying to boot/using your system, so you are able to remove this driver or replace it with another version of it or to do some truble shooting. -kx_debug or -kxdebug or -kxspec Will show more debug info about the card, mainly the i/o port address and the kind of bus that it uses -kx_exp_deb or -kx_beta or -kxbeta Will enable experimental and probably not working or unstable features like showing inputs for the card or 192 khz sampling rate, use it only for testing and debug purposes, this may likely cause instability and problems in the everyday usage! Use it at your own risk! -kx_original or -kxoriginal This will basically turn off almost all the mods of this mod, so the driver will come to work as it was before modding it, this can be usefoul as a "safe mode" like feture to have a working driver in case of problems with features of the mod, so using this means no crsking issues improvements, only 48 khz sample rate and only features of the non-modded kx audio driver for mac os x  
      - created a script file to use with the driver for installing the driver and also to load/unload, update, repolace it and it's libraries.
       
      What i'd like to implement but i don't know how to do:
       
       - I'd like mainly to add a more proper support to the pci bridge chip of the audigy rx,
       
       - have audio inputs working,
       
       - fix the support when using more than one card, to get all the cards shown in the settings and other menus,
       
       - have the gameport/midi port of older cards to be used in mac os as a midi in/out
       
      If other developers would like to join and help me, you can, and also an hand from other people with testing and feedback will be nice.
       
      link for the kext only (if you have clover put it in [your clover efi folder]/clover/kexts/[your macOS version]/ so it will not be deleted when updating macOS):
               - download from the downloads section:          kX Audio Driver Mod by ITzTravelInTime 1.01                                                                                    - external download:                                      https://dl.dropboxus...Driver.kext.zip   link for the installer pack (the best way to install it, but you have to reinstall it when you upgrade macOS, remeber to fix kext permitions and rebuild the kernelcache if you want to remove the kext from it's install directory without using the unistall feature of the provvided script):              - download:                                                   https://dl.dropboxus...aller pack.zip   Source code from Git Hub:          -  github repo:                                               https://github.com/ITzTravelInTime/kx-audio-driver   NOTE: Some system because of some problems with the HPET may need to use FixHPET in clover and to install the kext in /System/Library/Extensions or to do other kind of hpet mods to run the driver properly, but only on some systems, most systems should not require it  






    • By Abz79
      up guys,
      I've been hockintoshing for a long while, since Leopard to be exact and last week I replaced my Nvidia 9600GT with a brand new 1050 Ti...
      I have a Lion and El Capitan both were running fine before the 1050 Ti arrived, I read that my new Geforce needs new drivers that are readily supported by Sierra and High sierra.
      So I deleted Capitano and installed High Sierra 10.13 using Niresh distro. All went well and smooth and all my hardware was recognized the only problem left is this:
      My Nvidia driver "WebDriver-378.10.10.10.15.121" installs well with SIP enabled (aka 0x0 with clover) and after reboot the system is perfect with Nvidia web driver running fine
      However after rebooting the Default slow OSX graphics driver is loaded and stays that way until I resinstall the web driver....
       
      It's very annoying, I just can't make it work, I've been reading posts and tutorials for more that a week, nothing works, help is needed
       
      Things I've tried already:
      1. Boot using different clover revisions as old as 3911 and as new as 3509 (the latest)
      2. Tried with clover in the EFI partion and/or Boot partition
      3. Tried using different combos of nvda_drv,, nvidia webdriver, inject stuff (all possible combos in boot and graphics settings)
      4. Tried all available kext (Lilu, Nvidia fixup, Nvidiaegpusupport, NVlibvalfix..) single and combos - in clover kext folder and L/E folder
      5. Tried all different NVram recommendation - problem persisted even when nvram.plist is present or not
      6. Tried running the postscripts from the driver installer pkg
      7. Tried installing the driver via webdriver.sh
      8. Fixing permissions and what not
      And maybe other stuff that I forgot
       
      Things to note:
      When the graphics web driver loads fine KCPM kext utility works fine too but when the default driver is loaded KPCM warns that B0 and B1 SIP options are not enabled even though they are when I test csrutil status
      So I'm somehow thinking of a bug in Clover not applying the SIP restrictions correctly
      I don't know what happens when the driver is reinstalled that makes it work after reboot for 1 time only (I've went through all the pre post scripts in the installer and didn't find anything magical)
       
      It seems nothings works except reinstalling the driver - nothing else matters
      I'm almost pulling my hair - haven't faced such a problem since a very long time
      Any advice is greatly appreciated
       
      Abz
    • By Mieze
      Being asked to add support for Realtek's Fast Ethernet PCIe NICs to my RTL8111 driver I got tired of answering the same old question again and again so that I finally decided to write a separate driver for these chips and to make a few of you guys and gals happy.
       
      As of now the driver supports the following members the RTL810X Fast Ethernet family:
      RTL8101E RTL8102E RTL8103E RTL8401E RTL8105E RTL8402 RTL8106E RTL8106EUS RTL8107E Here is a list of the driver's basic features:
      Supports Sierra (maybe El Capitan). 64 bit architecture only. 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. 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. Built using Xcode 4.6.3.  
      Changelog Version 2.0.1 (2018-05-10): Fixes a problem with retrieval of the permanent MAC address on some chips. Version 2.0.0 (2017-04-04): Uses Apple's private driver interface introduced with 10.8. Adds support for the RTL8107E. Supports packet scheduling with QFQ. Adds support for flow control and EEE. Version 1.0.0 (2014-05-24): First offical release.     Installation   Before you install the driver you have to remove any installed driver for RTL810X. Goto /S/L/E and delete the old driver. 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. Install the new driver and recreate the kernel cache. 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.     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 other Realtek kext from your system because they 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.  
      Getting the driver
      There is a prebuilt binary in the Download section of this site: http://www.insanelymac.com/forum/files/file/259-realtekrtl8100-binary/ The source code can be found on Github: https://github.com/Mieze/RealtekRTL8100   Mieze
×