Jump to content
toleda

Yosemite: Audio - Realtek ALC AppleHDA

793 posts in this topic

Recommended Posts

Yosemite: Audio - Realtek ALC AppleHDA - Deprecated

For Realtek ALC885 through ALC1150 on board audio codecs

 

Yosemite/solutions/support, see El Capitan: Realtek ALC AppleHDA Audio

 

Enables Realtek ALC on board audio for Intel motherboards running Yosemite. Requires installed native AppleHDA.kext. Codec specific script edits binaries and installs specific files. Depending on user requirements, 3 Realtek ALC AppleHDA installation techniques are available.

 

Change Log

  1. 10/18/15 - Deprecated

  2. v3.4 - 1/8/2015: audio_cloverALC-100/audio_realtekALC-100 (v1.0.4) release; 887/888 legacy detection, ALC1150 patch fix, Clover/Legacy support, bug fixes

  3. v3.3 - 12/27/2014: No Audio after Sleep/Wake, credit: TimeWalker75a, see Note 6.

  4. v3.2 - 11/29/2014: BRIX/ALC269, BRIX Pro/ALC283 and NUC/ALC283 Support, see Note 5.

  5. v3.1 - 11/15/2014: x99 audio, see Post #237, Haswell-E mach_kernel patch (5960X, 5830K and 5820K)

  6. v3.0 - 10/15/2014 - Yosemite  Release

  7. v2.1- 8/12/2014 - 9 Series/EAPD added to 887, 892, 898, 1150, credit: kidalive

  8. v2.0 - 8/12/2014 - v2 AppleHDA.kext patch scripts available; easier, simpler and faster.

  9. v1.1 - 6/130/14 - Yosemite/Realtek ALC AppleHDA Support Kext Available - credit PikeRAlpha
  10. v1.0 - 6/14/14 - Yosemite (DP - initial support)

Yosemite/New Feature

  1. 9 Series AppleHDA.kext support

New User/First Time/Yosemite Audio

  1. Determine motherboard audio codec (Realtek ALCxxx)
    1. Source: User manual, specifications, website
    2. Supported: ALC885, 887, 888, 889, 892, 898 or 1150
    3. Audio Codec is: ALCxxx
  2. Recommended Audio Selections
    1. Chameleon/Clover Injection
    2. Audio ID: 1
    3. ALCxxx

Requirements

  1. OS X versions supported:
    1. Yosemite/10.10, see Notes 1 and 2, below
    2. Native AppleHDA.kext
      1. Need native, see Restore native AppleHDA [Guide].pdf
  2. Realtek ALC, one of the following Device_ID - Codec Name
    1. Not sure, see Notes 3, below
    2. Supported motherboard on board audio codecs
      1. 10ec0885 - ALC885/ALC889a
      2. 10ec0887 (v100202 and v100302) - ALC887/ALC888b
      3. 10ec0888 (v100202 and v100302) - ALC888/ALC888s
      4. 10ec0889 - ALC889
      5. 10ec0892 - ALC892
      6. 10ec0899 - ALC898
      7. 10ec0900 - ALC1150
  3. Supported Audio-IDs (Audio_ID = layout-id), select one
    1. Audio IDs
      1. Audio_ID: 1 - 5/6 port Realtek ALC onboard audio and HD5K/AMD/Nvidia HDMI audio
      2. Audio_ID: 2 - 3 port Realtek ALC onboard audio and HD5K/AMD/Nvidia HDMI audio
      3. Audio_ID: 3 - 3/5/6 port Realtek ALC onboard audio and HD3K/HD4K/AMD/Nvidia HDMI audio
    2. Details
      1. Audio_IDs: 1 and 2 support analog 5.1 surround sound, 3 does not
      2. Audio_IDs: 1, 2 and 3 require HDMI audio dsdt edits/ssdts for HDMI audio
  4. Audio_ID Injection, select one
    1. Supported Realtek ALC Injection methods, see audio_ALCInjection
      1. HDEF/kext/No dsdt/HDAEnabler_.kext = Audio_ID
      2. HDEF/dsdt/layout-id = Audio_ID,
      3. HDEF/ssdt/layout-id = Audio_ID
      4. HDEF/Clover/Config.plist/Devices/Audio/Inject = Audio_ID
      5. HDEF/Chameleon Installer/Customize/Setting/HDEF Layout/
    2. Verification, see Notes 4, below

Realtek ALC AppleHDA Audio Patch Methods v2 - select one

  1. realtekALC/patch in place- new script detects the codec and patches the native AppleHDA.kext for ALC onboard audio. Run the same script to restore audio after Software Update

  2. Piker-Alpha AppleHDA8series - installs an audio support kext for ALC onboard audio. AppleHDA.kext remains native and the technique survives most Software Updates. Credit: Piker-Alpha

  3. cloverALC/Clover patched - automatically detects codec and installs all audio files and patches for ALC onboard audio. Audio survives most Software Updates.  Install once and done. Credit: abxite

1. realtekALC/patch in place

 

New script detects the codec and patches the native AppleHDA.kext for ALC onboard audio. Run the same script to restore audio after Software Update.

  1. realtekALC/patch in place
    1. Bootloaders: Chimera, Chameleon, Clover
    2. Software Update: run same script after update restart
    3. More Info: audio_RealtekALC
    4. Installation - realtekALC
      1. Download: (View Raw) audio_realtekALC-100.command.zip
      2. Double click: Downloads/audio_realtekALC-100.command
      3. Password?
      4. Verify Codec - y/n? (885, 887, 888, 889, 892, 898, 1150 only)
      5. Enable HD4600 HDMI audio - y/n? (887, 892, 898, 1150 only)
      6. Restart
      7. Verify Patched AppleHDA kext installed
        1. S/L/E/AppleHDA.kext_vx.x-toledaALCxxx
      8. Verify ALC onboard audio
        1. System Preferences/Sound/Output/select audio device

2. Piker-Alpha AppleHDA8series

 

installs an audio support kext for ALC onboard audio. AppleHDA.kext remains native and the technique survives most Software Updates. Credit: Piker-Alpha

  1. Piker-Alpha AppleHDA8series
    1. Bootloaders: Chimera, Chameleon, Clover
    2. Software Update: persistent, no action required
    3. More Info: audio_pikeralphaALC
    4. Installation - AppleHDA8Series
      1. Piker-Alpha/AppleHDA8Series.sh
      2. Download Zip
      3. $ cd Downloads/AppleHDA8Series.sh-master
      4. Chameleon/Chimera/Clover - no AppleHDA binary patch
        1. $ ./AppleHDA8Series.sh -b AppleHDA
        2. $ ./AppleHDA8Series.sh -b AppleHDA -b AppleHDAController
      5. Clover - with AppleHDA kext patch(es)
        1. $ ./AppleHDA8Series.sh
      6. Password
      7. Codec
      8. Layout
      9. Install S/L/E
      10. Reboot
      11. Verify ALC AppleHDA8Series kext installed
        1. S/L/E/AppleHDAxxx
      12. Verify ALC onboard audio
        1. System Preferences/Sound/Output/select audio device

3. cloverALC/Clover patched

 

Automatically detects codec and installs all audio files and patches for ALC onboard audio. Audio persists after most Software Updates.  Install once and done. Credit: abxite

  1. cloverALC/Clover patched
    1. Bootloaders: Clover
    2. Software Update: persistent, no action required
    3. More Info: audio_CloverALC
    4. Installation - cloverALC (See Note 3)
      1. Download: (View Raw) audio_cloverALC-100.command.zip

      2. Double click Downloads/clover-90_patch_v2.command
      3. Password?
      4. Verify Codec - y/n? (885, 887, 888, 889, 892, 898, 1150 only)
      5. 1150 Only: see note 5. before restarting
      6. Restart
      7. Verify ALC onboard audio
        1. System Preferences/Sound/Output/select audio device

Notes

  1. 10.10 and newer/Boot flags
    1. Clover/config.plist
      1. Mandatory, Add: Boot/Arguments/kext-dev-mode=1
      2. Remove: Boot/Arguments/npci=0x3000
    2. Chameleon/Extra/org.chameleon.Boot.plist
      1. Mandatory:, Add: Kernel Flags//kext-dev-mode=1
      2. Remove Kernel Flags/npci=0x3000
  2. AppleHDA.kext version matters
    1. AppleHDA.kext can be the same as or earlier than the installed OS X version
    2. AppleHDA.kext does not work if newer than the installed OS X version
  3. Audio Codec Verification/DPCIManager see Tools 2.
    1. See Status/Codec ID/Revision, note Codec ID
    2. Verify Requirements/2. Realtek ALC/1. Supported audio codecs, above
  4. Audio_ID verification/IORegistryExplorer see Tools 3.
    1. Search: HDEF
    2. Locate: layout-id (right pane, scroll down)
    3. Verify:
      1. <01 00 00 00> or
      2. <02 00 00 00> or
      3. <03 00 00 00>
  5. BRIX/ALC269, BRIX Pro/ALC283 and NUC/ALC283 Support

    1. Installation methods
      1. realtekALC/patch in place
      2. Piker-Alpha AppleHDA8series (N/A)
      3. cloverALC/Clover patched
    2. Audio Devices
      1. ALC269 - BRIX/Headphones and SPDIF out
      2. ALC283 - BRIX Pro and NUC/Headphones (Microphone is not supported)
      3. HDMI audio with dsdt edits or ssdt: see HDMI Audio AppleHDA
  6. ​​No Audio after Sleep/Wake
    1. Codec-Commander, credit TimeWalker75a
    2. Instructions: Post #333, Yosemite: Audio - Realtek ALC AppleHDA

Unsupported/Non-working Realtek ALC AppleHDA.kext

  1. 887_v100101 and earlier
  2. 888_v100101 and earlier
  3. Asus P67H67 3xxx BIOS: Phantom codec
    1. Workaround: 2xxx BIOS downgrade, 7/8 Series upgrade
  4. MSI motherboards, pre Sandy Bridge
    1. Workaround: 6/7/8 Series upgrade
  5. AC97 (Front Panel)
    1. Workaround: HD Audio

Realtek ALC Speakers

  1. Audio ID: 1 and 3, match speaker connector color to same motherboard/case port color
  2. Audio ID: 2 (3 port motherboard audio)
    1. Plug black connector into blue motherboard port for rear speakers
    2. Plug green connector into green motherboard port for front speakers
    3. Plug orange connector into pink motherboard port for center/sub speakers
    4. Front panel: Match connector color to same case port color

Optional Installs

  1. Configure 5.1 Surround Sound Aggregate Device (Not available with Audio ID: 3)
    1. Applications/Utilities/Audio MIDI Setup/Audio Devices/+/Create Aggregate Device
    2. Select (in order)
      1. Built-in Output
      2. Built-in Line Output (1st)
      3. Built-in Line Output (2nd)
    3. Configure Speakers
      1. Multichannel
      2. 5.1 Surround
    4. Apply/Done
  2. Connect Audio Input to Audio Output
    1. Line In - http://www.rogueamoeba.com/freebies/

More Information - audio_ALC_guides

  1. Capabilities - Realtek ALC AppleHDA_v2 [Guide].pdf

    • ex., Audio_ID Configurations, Surround sound, audio popping, USB start up problem
  2. Customization - Realtek ALC AppleHDA_v2 [Guide].pdf

    • ex., Manual speaker and headphone selection, Substitute SPDIF-2 Wire Output
  3. Screenshots - Realtek ALC AppleHDA_v2.pdf

    • ex., System Information/Audio/Intel High Definition Audio, System Preferences/Sound/Output
  4. No Audio Devices - Realtek ALC AppleHDA [Guide].pdf

    • ex., No audio devices, no sound, no codec
  5. No Sound - Realtek ALC AppleHDA [Guide].pdf

    • ​ex., Audio devices present, no sound when selected

  6. No Audio After Sleep/Wake - Realtek ALC AppleHDA [Fixes].pdf

    • ex., No audio devices on wake

  7. Surround Sound - Realtek ALC - AppleHDA [Guide].pdf

    • ​​ex., Players, analog, optical

Tools

  1. IORegistry Explorer (choose one)
    1. IORegistryExplorer_v2.1.zip (View Raw)
    2. IOJones
  2. MaciASL
  3. DPCIManager
  4. Kext Install utilities, i.e., Kext Wizard, Kext Utility, DPCIManager, etc.

Troubleshooting - audio_ALC_guides

  1. See No Audio Devices - Realtek ALC AppleHDA [Guide].pdf
  2. See No Sound - Realtek ALC AppleHDA [Guide].pdf
  3. See No Audio After Sleep:Wake - Realtek ALC AppleHDA [Fixes].pdf

Problem Reporting (Post to this thread with requested information attached)

  1. Description of audio problem
    1. OS X version/motherboard model/BIOS version/processor/graphics
    2. Procedure/Guide Used
    3. Copy of IOReg (Tools 1.) - File/Save a Copy As…, verify file (no ioreg.txt)
    4. Copy Of Console/All Messages  (last boot)/File/Save a Copy As..

    5. Installed S/L/E/AppleHDA.kext or AppleHDA8Series AppleHDAxxx kext
    6. Screen shots:
      1. DPCIManager/Status (Tools 3.)
      2. System Information/Hardware/Audio/Intel High Definition Audio (not Devices)
    7. Terminal/Shell/Export Test As. . .  (if script used)
      1. audio_realtekALC-100.command
      2. AppleHDA8Series.sh
      3. audio_cloverALC-100.command
    8. Chameleon
      1. Extra/org.chameleon.Boot.plist
      2. DPCIManager/Misc/Boot Log
      3. Extra/dsdt.aml (if installed) 
      4. Extra/ssdt.aml (if installed)
    9. Clover
      1. EFI/Clover/config.plist
      2. DPCIManager/Misc/Boot Log
      3. EFI/Clover/ACPI/Patched/dsdt.aml (if installed) 
      4. EFI/Clover/ACPI/Patched/ssdt.aml (if installed)

Credit

THe KiNG [HOW TO] Patch AppleHDA - Knowledge Base - Project OS X Forums

PikeRAlpha New style of AppleHDA.kext patching for Yosemite | Pike's Universum

abxite  http://applelife.ru/...06/#post-353647

TimeWalker75a, Post # 20, No sound after waking from sleep

RevoGirl

Share this post


Link to post
Share on other sites
Advertisement

This problem by topic

post-1116670-0-61312200-1403544523_thumb.png

[attachment =143330: หน้าจอ 2014/06/23 23.37.12.png]


Works great for ALC898, thanks!

You request samples Or how do 
thank

post-1116670-0-76036600-1403542156_thumb.png

Share this post


Link to post
Share on other sites

คุณขอตัวอย่างหรือวิธีการทำ 

ขอบคุณ

IOReg/HDEF shows wrong value.

Attach config.plist

Share this post


Link to post
Share on other sites

It did not work at all 2. 

Cannot mix patched AppleHDA with the Post #1 methods. Confirm native AppleHDA.kext is installed.

With Realtek ALC AppleHDA Support kext Installation method above,

Delete config.plist/KernelAndKextPatches/KextsToPatch/ALC898 Binary and Devices/AddProperties.

Reply with new IOReg and AppleHDA898.kext and AppleHDA.kext.

Share this post


Link to post
Share on other sites

Cannot mix patched AppleHDA with the Post #1 methods. Confirm native AppleHDA.kext is installed.

With Realtek ALC AppleHDA Support kext Installation method above,

Delete config.plist/KernelAndKextPatches/KextsToPatch/ALC898 Binary and Devices/AddProperties.

Reply with new IOReg and AppleHDA898.kext and AppleHDA.kext.

Hello Toleda 
I did as you specified. But it does not work 
I was perplexed, then 

thank

https://www.dropbox.com/s/8271b9yis5loyxr/Sss.zip

Share this post


Link to post
Share on other sites

post-1116670-0-61571500-1403580736_thumb.png

post-1116670-0-27398900-1403581105_thumb.png
Hello toleda 
  Numbers that have come from it. 
See as shown in Figure I find the numbers Of AppleHDA-orig I think the conclusion is not the same. each version

Share this post


Link to post
Share on other sites

As a result, it works fine. 

Now I have HDMI audio does not work.

Lucky.  Ended up with patched 898 AppleHDA.kext.  Audio will break with next update.

Start over with Realtek ALC AppleHDA Support kext Installation method above.

Yosemite/HD4600 HDMI audio does not work, note sound assertions.

Share this post


Link to post
Share on other sites

AppleHDA898.kext try to load it turns out that it was not loaded, but AppleHDA.kext.

post-1116670-0-60061600-1403620486_thumb.png

Share this post


Link to post
Share on other sites

AppleHDA898.kext try to load it turns out that it was not loaded, but AppleHDA.kext.

AppleHDAHardwareConfigDriver-2.6.1 is not native. Backup and remove installed AppleHDA.kext. Install native 10.10 AppleHDA.kext with AppleHDA898.kext.

Share this post


Link to post
Share on other sites

AppleHDAHardwareConfigDriver-2.6.1 is not native. Backup and remove installed AppleHDA.kext. Install native 10.10 AppleHDA.kext with AppleHDA898.kext.

Hello toleda 

I try to do it several times and it did not work at all. 
I think this script does not seem to Yosemite. 
I have to say

Share this post


Link to post
Share on other sites

You are patching a patched kext, will not work.  AppleHDA898 patches AppleHDA.kext; installed AppleHDA.kext must be native. The native AppleHDA.kext may be in Desktop/audio_ALC898/AppleHDA-orig.kext, unless you ran the patch script more than once.

 

Your choices:

1. Use the patched AppleHDA.kext, remove AppleHDA898.kext

2. Use AppleHDA898.kext, remove the installed AppleHDA.kext, install native 10.10 AppleHDA.kext and add AppleHDA binary patch to config.plist/KernelAndKextPatches/KextsToPatch/898 AppleHDA binary.

Share this post


Link to post
Share on other sites
10.9.3 it works and why you like them in spite of it. 

I do not understand

post-1116670-0-25262500-1403757819_thumb.jpg

 

edit..10.9.3 it works and why you like them in spite of it. 

The native AppleHDA.kext I have a question (Ie, the original) that have not been correct before. 
AppleHDA898 file to patch it up, this is not an error. As I've posted before, pictures to look at. 
And it will be a patch file. AppleHDA.kext this before the patch file to AppleHDA898. 
I do not understand
post-1116670-0-65042700-1403758770_thumb.png
It is based on this

Share this post


Link to post
Share on other sites

 

10.9.3 it works and why you like them in spite of it. 

I do not understand

10.9.3 works with 898 patched 10.9.3 AppleHDA.kext.  Use same 898 patched 10.9.3 AppleHDA.kext in 10.10.

AppleHDA898.kext only works with native AppleHDA.kext; it is not working.  AppleHDA8series.sh script failed., download updated script.

 

Native 10.10 AppleHDA.kext means original kext with no patches applied or files removed.  

Share this post


Link to post
Share on other sites
post-1116670-0-68987100-1403834873_thumb.png

post-1116670-0-03630200-1403834912_thumb.png

I want to know why yosemite 10.10 not copy files to the S / L / E as version 10.9.3 ago. 

Clarified with the help

Or how to install it yourself, or use Kext Wizard.

post-1116670-0-37432700-1403834986_thumb.png

Edited by naidb

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Slice
      Some users claim that using VoodooHDA they hear loud bump at system start and sound in system comes with noise.
      Although this can be repaired with existing drivers I propose a version that do this automatically.
      It started silently and have very clear output. The file is compiled as 32/64 and works from 10.6 up to 10.12.
      VoodooHDA.kext-289.zip
      The sources is in my signature.
       
      There is a VoodooHDA,prefPane compatible with Sierra
      VoodooHDA.prefPane-289.zip

       
      Now there is a version 2.9.0 by Zenith432.
      It can work with multichannel sound and play it on 5.1 analog system.

      VoodooHDA.kext-2.9.0d8.zip
      27.04.2017 
      d10 - Fix issues involving AudioControls
      VoodooHDA.kext-2.9.0d10.zip
       
      20.11.2018
      Fix issue with scratch on slow CPU
      VoodooHDA.kext-291SSE.zip
       
      04.05.2019
      More checks for memory allocation. More clear sound anyway. 
      VoodooHDA.kext-292.zip
      IOAudioFamily.kext.zip
       
       
    • 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.   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 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
    • By Mieze
      A New Driver for Realtek RTL8111
       
      Due to the lack of an OS X driver that makes use of the advanced features of the Realtek RTL81111/8168 series I started a new project with the aim to create a state of the art driver that gets the most out of those NICs which can be found on virtually any cheap board on the market today. Based on Realtek's Linux driver (version 8.035.0) I have written a driver that is optimized for performance while making efficient use of system resources and keeping the CPU usage down under heavy load.

      Key Features of the Driver
      Supports Realtek RTL8111/8168 B/C/D/E/F/G 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 under IPv4. Support for TCP/IPv6 and UDP/IPv6 checksum offload. Fully optimized for Mountain Lion (64bit architecture) but should work with Lion too. As of now there is no support for Snow Leopard but it can be added if someone will create the necessary patches. 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.  
      Limitations
      As checksum offload doesn't work with jumbo frames they are currently unsupported and will definitely never be. No support for 32bit kernels.  
      Installation
      Before you install the driver you have to remove any installed driver for RTL8111/8168.
      Goto /S/L/E and delete the old driver (Lnx2mac, AppleRealtekRTL8169, etc.). 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. 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 found in /var/log/system.log. For Sierra and above 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. 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. 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.  
      FAQ
      How can I retrieve the kernel logs? In Terminal type "grep kernel /var/log/system.log". I want to disable Energy Efficient Ethernet (EEE) but I don't know how? Take a look at the driver's Info.plist file. There you will find an option named <key>enableEEE</key>. Change its value from <true/> to <false/>. Don't forget to recreate the kernel cache after changing the value. 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.  
      Current status
      The driver has been successfully tested under 10.8.x and 10.9 with the B, C, D, E, F and G versions of the RTL8111/8168 and is known to work stable on these devices.  
      Changelog
      Version 2.2.2 (2018-01-21) Force ASPM state to disabled/enabled according to the config parameter setting. Requires 10.12 or newer. Version 2.2.1 (2016-03-12): Updated underlying linux sources from Realtek to 8.041.00. Added support for RTL8111H. Implemented Apple’s polled receive driver model (RXPOLL). Requires 10.11 or newer. Support for older versions of OS X has been dropped. Version 2.0.0 (2015-06-21): Uses Apple's private driver interface introduced with 10.8. Supports packet scheduling with QFQ. Please note that 2.0.0 is identical to 2.0.0d2. Only the version number has changed. Version 1.2.3 (2014-08-23): Reworked TSO4 and added support for TSO6. Version 1.2.2 (2014-08-44): Added an option to disable Active State Power Management (ASPM, default disabled) as ASPM seems to result in unstable operation of some chipsets. Resolved a problem with Link Aggregation after reboot. Added a workaround for the multicast filter bug of chipset 17 (RTL8111F) which prevented Bonjour from working properly Version 1.2.0 (2014-04-24): Updated underlying linux sources from Realtek to 8.037.00. Improved interrupt mitigate to use a less aggressive value for 10/100 MBit connections. Version 1.1.3 (2013-11-29): Improved transmit queue handling made it possible to reduce CPU load during packet transmission. Improved deadlock detection logic in order to avoid false positives due to lost interrupts. Version 1.1.2 (2013-08-03): Improved SMB performance in certain configurations. Faster browsing of large shares. Version 1.1.0 (2013-06-08): Support for TCP/IPv6 and UDP/IPv6 checksum offload added (can be disabled in Info.plist). Maximum size of the scatter-gather-list has been increased from 24 to 40 segments to resolve performance issues with TSO4 when offloading large packets which are highly fragmented. TSO4 can be disabled in Info.plist without rebuild. Statistics gathering has been improved to deliver more detailed information (resource shortages, transmitter resets, transmitter interrupt count). The interrupt mitigate settings has been changed to improve performance with SMB and to reduce CPU load. Configuration option added to allow for user defined interrupt mitigate settings without rebuild. Version 1.0.4 (2013-05-04): Moved setLinkStatus(kIONetworkLinkValid) from start() to enable(). Cleaned up getDescCommand(). Version 1.0.3 (2013-04-25): The issue after a reboot from Windows has been eliminated. Version 1.0.2 (2013-04-22): Added support for rx checksum offload of TCP and UDP over IPv6. Version 1.0.1 (2013-03-31): Improved behavior when rx checksum offload isn't working properly. Adds the chipset's model name to IORegistry so that it will show up in System Profiler.  
      Known Issues
      There are still performance problems with regard to SMB in certain configurations. My tests indicate that Apple's Broadcom driver shows the same behavior with those configurations. Obviously it's a more general problem that is not limited to my driver. WoL does not work in certain configurations. Old systems with 3 and 4 series chipsets exhibit performance issues in recent versions of macOS because there is no optimized power management for these systems in macOS anymore as Apple dropped support for the underlying hardware a long time ago. In case you are affected, please upgrade your hardware or find an alternative solution because I have no plans for a workaround. Sorry, but I don't think that it's worth the effort.  
      Getting the driver
      The source code can be found here: https://github.com/M...driver_for_OS_X There is also a pre-build binary for Mavericks and Yosemite: http://www.insanelym...n-and-wireless/  
      Building from Source
      I'm using XCode 4.6.3 for development. You can get a free copy of XCode after becoming a member of the Apple developer program. The free membership is sufficient in order to get access to development tools and documentation.
    • By renandesouza
      Hi guys, I recently installed OS X 10.10 Yosemite on my PC, everything was fine in the installation, video card already configured and working perfectly, the sound also had no problems, but I just can not connect to the internet, no connection with ethernet etc ... I tested some kex but it did not work.
       
      PC:
      Asus P5GC-MX/1333
      Core 2 Duo E8400 3.0 GHz 
      2GB DDR2 
      ATi HD 5450
      Realtek ALC883 HD Audio
      Atheros L2 Fast Ethernet 
       
      Network Screen Prints:

    • By noisegate
      Hi,
       
      I use AppleALC v1.3.5, I can see the device in system info but no sound. Any idea?
       
      Thanks!
       
×