MacPeet Posted May 17, 2015 Share Posted May 17, 2015 (edited) Greetings from Germany I'm very often in France, particularly in Paris, very beautiful Edit: Manual on the fly Clover patch for AppleHDA 1. Download Package 2. Install Vanilla AppleHDA 3. move realtekALC.kext to EFI/Clover/Kexts/10.10/ 4. move layout1.zml.zlib and Platforms.zml.zlib to Vanilla AppleHDA/Contents/Resources/ 5. add in Clover - config.plist: <key>KextsToPatch</key> <array> <dict> <key>Comment</key> <string>Patch_to_ADI1984A</string> <key>Find</key> <data> eG1sLnps </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> em1sLnps </data> </dict> <dict> <key>Comment</key> <string>Patch_to_ADI1984A</string> <key>Find</key> <data> ixnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> ShnUEQ== </data> </dict> </array> 6. renew cache, reboot and have fun Edit: HDMI, yes, that goes with me only with the framebuffer name "Shrike" instead Eulemur with the HD5450 1GB a bit strange differences: with Eulemur exact FB without HDMI: ioreg | grep ATY | | | | +-o ATY,Eulemur@0 <class AtiFbStub, id 0x100000292, registered, matched, active, busy 0 (4 ms), retain 8> | | | | | +-o ATY_Eulemur <class AMDFramebuffer, id 0x100000295, registered, matched, active, busy 0 (3 ms), retain 16> | | | | +-o ATY,Eulemur@1 <class AtiFbStub, id 0x100000293, registered, matched, active, busy 0 (0 ms), retain 8> | | | | | +-o ATY_Eulemur <class AMDFramebuffer, id 0x10000029a, registered, matched, active, busy 0 (0 ms), retain 14> | | | | +-o ATY,Eulemur@2 <class AtiFbStub, id 0x100000294, registered, matched, active, busy 0 (0 ms), retain 8> | | | | | +-o ATY_Eulemur <class AMDFramebuffer, id 0x10000029f, registered, matched, active, busy 0 (0 ms), retain 14> with Shrike only Radeon FB with HDMI, but works great: (Unfortunately does not have HDMI input control / I use LineIn the monitor, is better) ioreg | grep ATY | | | | +-o ATY,ATY,RadeonFramebuffer@0 <class AtiFbStub, id 0x100000297, registered, matched, active, busy 0 (4 ms), retain 8> | | | | | +-o ATY_ATY,RadeonFramebuffer <class AMDFramebuffer, id 0x10000029a, registered, matched, active, busy 0 (3 ms), retain 17> | | | | +-o ATY,ATY,RadeonFramebuffer@1 <class AtiFbStub, id 0x100000298, registered, matched, active, busy 0 (0 ms), retain 8> | | | | | +-o ATY_ATY,RadeonFramebuffer <class AMDFramebuffer, id 0x10000029f, registered, matched, active, busy 0 (0 ms), retain 14> | | | | +-o ATY,ATY,RadeonFramebuffer@2 <class AtiFbStub, id 0x100000299, registered, matched, active, busy 0 (0 ms), retain 8> | | | | | +-o ATY_ATY,RadeonFramebuffer <class AMDFramebuffer, id 0x1000002a4, registered, matched, active, busy 0 (0 ms), retain 14> on_the_fly_clover_pack.zip Edited March 16, 2018 by MacPeet Link to comment Share on other sites More sharing options...
morpheousman Posted May 18, 2015 Share Posted May 18, 2015 @MacPeet Wow! Did you say Sound Over HDMI? Things are starting to get interesting again! I do need some further help with the instructions. Okay, Install Vanilla AppleHDA. Since I never messed with that kext, then it should already be the Vanilla kext, or am I wrong? You are referring to Sysyem>Library>Extensions? Because if so, then I would then need to make a copy of that on my desktop, then edit the AppleHDA kext on my desktop with the two files from you on_the_fly folder, save changes, then use Kext Utility to install the newly edited AppleHDA kext, or am I way off-track here? Editing the Clover- config.plist seems pretty straight forward, except, can that Code just be inserted anywhere in the config.plist, or only in a certain spot? And just use text utility? The last part with all of the Code for the FrameBuffers? Do I need to edit another kext or plist with one of those groups of code? Sorry for all the questions, but still learning this stuff. Thank you for your contribution to this project! have been wanting to get HDMI Sound working for a long time! Link to comment Share on other sites More sharing options...
polyzargone Posted May 18, 2015 Share Posted May 18, 2015 IMHO, don't loose time with on-the-fly patching since we always need to edit the AppleHDA.kext at some point. I now have moderate my early enthusiasm about this method when I realized that since we have to 4. move layout1.zml.zlib and Platforms.zml.zlib to Vanilla AppleHDA/Contents/Resources/ we won't have a vanilla AppleHDA.kext anymore. Therefore, we'll have to repeat the procedure at every single OS X update where AppleHDA is modified. So I think - despite it's a little bit annoying - the best way is to replace the vanilla AppleHDA.kext (version 3) by the patched one provided here with Kext Wizard which is a very minor concern and works perfect so far. And for framebuffers, I guess you just have to specify it in FB Name in Clover Configurator Graphics's panel. No more… But MacPeet will certainly confirm/infirm that point I didn't tried atm. Link to comment Share on other sites More sharing options...
MacPeet Posted May 18, 2015 Share Posted May 18, 2015 There are 2 methods. Method 1: my patched AppleHDA Version3 from Downloads use and re-import them again after each system update or Method 2: on the fly with Clover these files are not overwritten during system update see differences: my is layout1.zml.zlib and Platforms.zml.zlib (zml.zlib-patch) vanilla is layout1.xml.zlib and Platforms.xml.zlib no problem for system update ok, sorry 1. Download on the fly Package 2. copy original AppleHDA (Vanilla) to Desktop 3. copy realtekALC.kext to EFI/Clover/Kexts/10.10/ 4. copy layout1.zml.zlib and Platforms.zml.zlib to Vanilla Desktop/AppleHDA/Contents/Resources/ 5. add in Clover - config.plist: see Picture 6. move AppleHDA from Desktop to KextUtility 7. reboot and have fun Edit: sorry, ded hooks on the image at Asus AICPUPM I did not put on my Dell did this quickly created on my laptop Link to comment Share on other sites More sharing options...
morpheousman Posted May 18, 2015 Share Posted May 18, 2015 Ok, I'm trying to follow along here. Method 1 seems like "method for dummies", but I cannot get it to work. Method 1, that would only require using edited ApplrHDA.kext version 3, correct? If so, I installed AppleHDA.Kext version 3, rebooted, and I have no sound over HDMI. Line Out Rear, also plays through front Speaker. * Maybe you should also know that I have been using a USB PnP Sound Device for over a year now, so maybe I am missing another kext? So if I cannot get simple Method #1 to work, maybe I should not try more complicated method 2, but I tried it anyway: lol Method #2: Tried this with no success either. Seems I am dazed and confused here. I pasted Clover Config.plist edits on bottom of the config.plist, saved edits. Edited AppleHDA_kext with new files. Installed new AppleHDA_kext with Kext Utility, put realtekALC kext in Clover kexts 10.10, rebooted, but no sound over HDMI. Thought maybe because I missed putting check mark in clover config, inject ATI, but when I open config in clover configurator, select Graphics, select #1, the title is blank. Click on Kernel and kext patches, there are no kexts in window. Link to comment Share on other sites More sharing options...
MacPeet Posted May 19, 2015 Share Posted May 19, 2015 HDMI audio is only available with the framebuffer name "Shrike" and a AppleHDA method 1 or 2 Add in config.plist (see picture) and the DSDT entries for graphics This is intended for a HD5450. What is your hardware? Signature missing. This for DSDT (Grafik) and (HDMI only with Shrike) Device (PEG0){ Name (_ADR, 0x00010000) Device (GFX0) { Name (_ADR, Zero) Method (_DSM, 4, NotSerialized) { Store (Package (0x10) { "device-id", Buffer (0x04) { 0xE0, 0x68, 0x00, 0x00 }, "ATY,DeviceID", Buffer (0x02) { 0xE0, 0x68 }, "vendor-id", Buffer (0x04) { 0x02, 0x10, 0x00, 0x00 }, "ATY,VendorID", Buffer (0x02) { 0x02, 0x10 }, "AAPL,slot-name", Buffer (0x07) { "Slot-1" }, "model", Buffer (0x1C) { "XFX one HD5450 HDMI/DVI/VGA" }, "hda-gfx", Buffer (0x0A) { "onboard-1" }, "@0,AAPL,boot-display", Buffer (Zero) {} }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (HDAU) { Name (_ADR, One) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "hda-gfx", Buffer (0x0A) { "onboard-1" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Link to comment Share on other sites More sharing options...
polyzargone Posted May 19, 2015 Share Posted May 19, 2015 @morpheousman Maybe your HDEF device is incorrectly configure in your DSDT. Jake Lo's original DSDT comes with this : Device (HDEF) { Name (_ADR, 0x001B0000) OperationRegion (HDAR, PCI_Config, 0x4C, 0x10) Field (HDAR, WordAcc, NoLock, Preserve) { DCKA, 1, Offset (0x01), DCKM, 1, , 6, DCKS, 1, Offset (0x08), , 15, PMES, 1 } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x04)) } Method (_DSM, 4, NotSerialized) { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x06) { "layout-id", Buffer (0x04) { 0x0C, 0x00, 0x00, 0x00 }, "hda-gfx", Buffer (0x0A) { "onboard-1" }, "PinConfigurations", Buffer (Zero) {} }) } } You have to change the layout-id to this otherwise it will likely fail : { "layout-id", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 }, I'm pretty sure your problem comes from this Link to comment Share on other sites More sharing options...
polyzargone Posted May 19, 2015 Share Posted May 19, 2015 I pasted Clover Config.plist edits on bottom of the config.plist, saved edits. Edited AppleHDA_kext with new files. Installed new AppleHDA_kext with Kext Utility, put realtekALC kext in Clover kexts 10.10, rebooted, but no sound over HDMI. Thought maybe because I missed putting check mark in clover config, inject ATI, but when I open config in clover configurator, select Graphics, select #1, the title is blank. Click on Kernel and kext patches, there are no kexts in window. No, you can't just add those lines at the bottom of your config.plist. It should be put here (use TextEdit, TextWrangler or PlistEditor Pro to do so) : Right after that : <key>KextsToPatch</key> <array> <dict> <key>Comment</key> <string>Patch_to_ADI1984A</string> <key>Find</key> <data> eG1sLnps </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> em1sLnps </data> </dict> <dict> <key>Comment</key> <string>Patch_to_ADI1984A</string> <key>Find</key> <data> ixnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> ShnUEQ== </data> </dict> (All others <dict></dict> should follow or precede those lines.) and before that : </array> You can also post your config.plist here (be careful with SMBios data ) and I'll edit it for you… Link to comment Share on other sites More sharing options...
MacPeet Posted May 19, 2015 Share Posted May 19, 2015 @polyzargone Did you see the difference in the file name for on_the_fly_Patch? There are thus hopefully no problems during system update. Link to comment Share on other sites More sharing options...
polyzargone Posted May 19, 2015 Share Posted May 19, 2015 I did. I'm just wondering if OS X update will simply modify files inside the AppleHDA.kext and hence, does not erase the whole thing or if it will replace the whole AppleHDA.kext. If so, it will always be necessary to re-import them in the right place after every OS X update. On-the-fly patch will actually do nothing more than patching binaries in AppleHDA (which is still a step forward compared to the current situation). That said, I'm definitely not an expert in AppleHDA patching Link to comment Share on other sites More sharing options...
MacPeet Posted May 19, 2015 Share Posted May 19, 2015 No Problem. If necessary I patch it. In recent system update only parts of the HDA were overwritten. We will wait. Do you also have HDMI Audio Out? Link to comment Share on other sites More sharing options...
polyzargone Posted May 19, 2015 Share Posted May 19, 2015 No I didn't tried yet. I'm stuck with a very very old CRT Monitor so far I'll try to find an HDMI LCD TV for a quick test Link to comment Share on other sites More sharing options...
morpheousman Posted May 19, 2015 Share Posted May 19, 2015 Okay, so for Method 2, I put config patch in wrong place, and I also need to Edit the DSDT? I see Inject Kexts in config, but do not see KextsToPatch? Hardware is HD5450 1gb But wasn't Method 1 to just install AppleHDA Version 3? That did not work for me. @polyzaegone Not sure why you said be careful with SM Bios, I thought that was only generated. Do you mean RT Variables? MLB and ROM numbers? I will post config later, when people in France and Germany are awake. @MacPeet Is edit to dsdt needed? and, Could you post a small piece of your Clover.config to show where to pace your edits in the cloverconfig.plist? Link to comment Share on other sites More sharing options...
MacPeet Posted May 20, 2015 Share Posted May 20, 2015 Here is an example DSDT.aml and config.plist. CPU data and Serial / board number / MLB / ROM you need to write for your own hardware in the config.plist. This config.plist configured for method 2 If you use my patched AppleHDA, then you have to delete the entries in KextToPatch. DSDT.aml is fixed for my Dell Optiplex 780 MT. Fixes for GFX, HDAU, HDEF, USB and much more. For HDMI audio GFX (PEG0) HDAU and HDEF needed. HPET must be ok. DSDT_and_config_for_Method2_with_FB_Shrike.zip Link to comment Share on other sites More sharing options...
polyzargone Posted May 20, 2015 Share Posted May 20, 2015 But wasn't Method 1 to just install AppleHDA Version 3? That did not work for me. @polyzaegone Not sure why you said be careful with SM Bios, I thought that was only generated. Do you mean RT Variables? MLB and ROM numbers? @MacPeet Is edit to dsdt needed? Awake ! DSDT layout-id edit is mandatory for patched AppleHDA. On-the-fly patching or not ! I'm pretty sure that's the reason why it fails for you ! And for SMBios, I didn't use RT Variables at all. Just SmUUID, Board Serial Number and random Serial Number in SMBios panel of Clover Configurator. I don't know if it really changes something but it works nice so far. That's why I assumed you'd better keep these datas undisclosed . One last thing : If you feel uncomfortable with adding lines in config.plist like <string>AppleHDA</string><key>Replace</key><data>ShnUEQ==</data> etc., just copy what the first screenshot shows in MacPeet's post #206 and you'll be fine . 1 Link to comment Share on other sites More sharing options...
MacPeet Posted May 20, 2015 Share Posted May 20, 2015 Yes, for both methods need HDEF in DSDT or HDAEnabler.kext or HDA Inject with Clover. each Layout ID 1 1 Link to comment Share on other sites More sharing options...
polyzargone Posted May 20, 2015 Share Posted May 20, 2015 Both methods works fine with full HDMI support & Shrike FB ! Congrats MacPeet ! Let's wait for 10.10.4 now ! 1 Link to comment Share on other sites More sharing options...
morpheousman Posted May 21, 2015 Share Posted May 21, 2015 @PolyZargone? You tested HDMI Sound with a Monitor, and have sound out? I cannot get mine to work. Does your CPU still wake from sleep? I am having issues with that when I try method #1, HDMI Sound, and No wake from sleep, or Monitor not waking on HDMI. First off, I cannot figure out how to edit DSDT I am using, (Jake Lo's DSDT from post #2). I open it with DSDT editor, click on that one value, layout ID to 1, but cannot figure out how to save changes. I use MacPeet's DSDT, no success, not with Method 1, or Method 2. For method 2, I patched one part of my Config.plist with: <key>Graphics</key> <dict> <key>DualLink</key> <integer>1</integer> <key>FBName</key> <string>Shrike</string> <key>Inject</key> <dict> <key>ATI</key> <true/> <key>Intel</key> <false/> <key>NVidia</key> <false/> </dict> <key>NVCAP</key> <string>0000000000000000000000000000000000000000</string> <key>VRAM</key> <integer>0</integer> <key>VideoPorts</key> <integer>3</integer> <key>display-cfg</key> <string>0000000000000000</string> <key>ig-platform-id</key> <string>0x0000</string> </dict> <key>KernelAndKextPatches</key> <dict> <key>AppleRTC</key> <true/> <key>KextsToPatch</key> <array> <dict> <key>Comment</key> <string>Patch_to_ADI1984A</string> <key>Find</key> <data> ixnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> ShnUEQ== </data> </dict> <dict> <key>Comment</key> <string>Patch_to_ADI1984A</string> <key>Find</key> <data> eG1sLnps </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> em1sLnps </data> </dict> </array> </dict> Link to comment Share on other sites More sharing options...
MacPeet Posted May 21, 2015 Share Posted May 21, 2015 @polyzargone Very nice. Then many other users will have success with it. Shrike also works for users with HD5450 and other computers. I already use 10.10.4 Beta and I'm waiting on the next update to the test by on the fly. @morpheousman (DSDT-Editor) 1. Change value 2. Compile 3. Save aml as... 1 Link to comment Share on other sites More sharing options...
morpheousman Posted May 21, 2015 Share Posted May 21, 2015 All Right, Screw this SH$$##@! Must Be 50 Reboots, and over 15 Hours of around with this . As I understand, (or completely DO NOT understand). Method 1, Method For IDIOTS, but apparently not IDIOT PROOF enough for me! Use AppleHDA Kext Version 3. Layout ID in DSDT.aml HDEF must be 0x00. REBOOT, Enjoy Sound over HDMI! NO, not for me! Tried MacPeets DSDT with AppleHDA.Kext version 3, and I could not even get that to work for Method 1. @Macpeet I am Clueless what you are talking about in Post #208, just Clueless. But not needed for method 1 anyways, correct? And I am not even going to go in to how many different ways I tried Method #2. Seems I will need to get more classes in Engineering for that Method. @PolyZargone I am Clueless what you mean by: if you feel uncomfortable with adding lines in config.plist like <string>AppleHDA</string><key>Replace</key><data>ShnUEQ==</data> etc., just copy what the first screenshot shows in MacPeet's post #206 and you'll be fine Follow picture? Are you saying I can just click on symbols in Clover Configurator App and make all necessary edits to Config.plist for Method #2 to work? If so, I have not found the right stuff to click on yet. I did edits to config manually, as shown in my previous post. I thought the pictures looked all pretty. but not working. Config edits are only needed for method #2 anyway, or am I clueless there too??? So, I will forget about Rocket Scientist, Nasa Space Engineer Method 2 for now. Back to method #1 Change layout id in DSDT.aml, (Jake Lo's dsdt) from 0x0C to 0x01, and use AppleHDA.kext #3? Wait a minute, forget Method 1 too! Maybe I need to find a French to German, then back to French, than to English Dictionary? Link to comment Share on other sites More sharing options...
polyzargone Posted May 21, 2015 Share Posted May 21, 2015 Layout ID in DSDT.aml HDEF must be 0x00. No, you're wrong. It's not 0x00 ! OK try this attached DSDT : I changed layout-id from 0x0c, 0x00, 0x00, 0x00 to 0x01, 0x00, 0x00, 0x00 in HDEF device part. I used MaciASL for this so I don't know why you're not able to save edits . Keep in mind that none of the methods will work if you don't make this change. It's absolutely mandatory for this to work. So using this DSDT will likely fix all your problems as your config.plist edits seems to be OK. I tried with Shrike FB (others settings like NVCAP - useless for AMD cards, video ports, Dual link etc. are non-essentials) and it works fine. I must admit I forgot to test wake/sleep so it may be an issue - needs further tests… So with this attached DSDT, you just have to use patched AppleHDA v.3 or follow vanilla AppleHDA edits + RealkALC.kext instructions provided by MacPeet. One last thing : Do not place AppleHDA's kexts (regardless if it's edited or not) in EFI/Clover/kexts/10.10. It will not work because of dependencies matters. You have to leave it in S/L/E for it to work. [EDIT] Ok, I missed the last two screenshots ! I now understand why it fails ! Your HDEF device is placed in the wrong place : it's under SATA device where it should be set as an "independent" device in the PCI0 device tree !!! The attached DSDT fix this so you just have to use it and you'll be fine PS : Don't use DSDT Editor, it's a bit too old software IMHO. You should use MaciASL for DSDT editing. DSDT.aml.zip 1 Link to comment Share on other sites More sharing options...
morpheousman Posted May 21, 2015 Share Posted May 21, 2015 @polyzargone First line of my last post had a typo, I meant 0x01, not 0x00. I got it correct at the end of the post. So, as I stated in my last post, for Method 1, I even tried the DSDT that MacPeet attached in Post #216, and that did not even work for me. Now for the DSDT in your last post, drumroll please.... Tried both Methods, no sound over HDMI. I think I must have an easy mistake that I am overlooking here somewhere? I keep telling myself to stay on Method 1 for now, as it is the simplest, and it would not surprise me if they both got fixed when problem is found. Appreciate the help! Link to comment Share on other sites More sharing options...
polyzargone Posted May 21, 2015 Share Posted May 21, 2015 Could you post your : - DSDT (the one you used to so far, not mine or MacPeet one's) - IOReg (with your DSDT loaded at boot) - config.plist And check that : - No AppleHDADisabler.kext - No VoodooHDA.kext - No HDAEnabler.kext in S/L/E nor EFI/Clover/kexts/10.10 There's no reason why it fails unless some unappropriated or misplaced kexts. 1 Link to comment Share on other sites More sharing options...
morpheousman Posted May 21, 2015 Share Posted May 21, 2015 Could you post your : - DSDT (the one you used to so far, not mine or MacPeet one's) - IOReg (with your DSDT loaded at boot) - config.plist And check that : - No AppleHDADisabler.kext - No VoodooHDA.kext - No HDAEnabler.kext in S/L/E nor EFI/Clover/kexts/10.10 There's no reason why it fails unless some unappropriated or misplaced kexts. I was using original DSDT supplied by Jake Lo, it is attached in second post. I am not sure how to get - IOReg (with your DSDT loaded at boot), I didn't see anywhere previously stated that those three kexts could not be in S/L/E. or clover 10/10 I will check EDIT: Had VoodooHDA.kext in S/L/E and 10.10. I removed them both. Had AppleHDADisabler.kext in S/L/E. I removed it. With METHOD 2 Edits to Config, and On_the_fly edited Kext...... Rebooted, and now I have NO Outputs in System Preferences, Sound, only my USP PnP Device. Changed Over to Method 1, (changed to AppleHDA Vers 3 Kext, no injection config) Rebooted, and now have 3 Outputs, but no HDMI Line Out (works) Headphones (works but sounds terrible) My USB PnP Device Link to comment Share on other sites More sharing options...
polyzargone Posted May 21, 2015 Share Posted May 21, 2015 I was using original DSDT supplied by Jake Lo, it is attached in second post. I am not sure how to get - IOReg (with your DSDT loaded at boot), I didn't see anywhere previously stated that those three kexts could not be in S/L/E. or clover 10/10 Well, it's seems pretty obvious that using AppleHDADisabler.kext will actually disable AppleHDA.kext ! Isn't it ? And VoodooHDA should never be used along an AppleHDA without AppleHDADisabler.kext. Conclusion : if you're not using VoodooHDA, you no longer need to use AppleHDADisabler Now, I still think that unless you are using an HDAEnabler.kext configured for Layout 1 or Layout ID specified in Device > Audio > Inject set to 1 in Clover Configurator or my DSDT, it won't give you full and perfect HDMI and audio support ! Choose the one you feel comfortable with. And don't forget that Shrike FB Name must be set in Graphics panel of Clover Configurator, it seems also mandatory to give full HDMI audio support. I didn't tried with others FB names so far. HDAEnabler1.kext.zip Link to comment Share on other sites More sharing options...
Recommended Posts