Jump to content
vit9696

Lilu — kext and process patcher

266 posts in this topic

Recommended Posts

Advertisement

Hi vit9696.

 

First of all. Thanks for your work!

I just want to know how to patch framework/custom kexts via Lilu, like previously AppleALC did through UserPatches.plist, although this may be not reliable in some cases...

 

Thanks in advance

 

Edit: I found something at Shiki.

But I'm curious that what some args mean like 'Skip' 'Section' etc...  :)

Edited by PMheart

Share this post


Link to post
Share on other sites

Thanks for give this perfect way to patch framework on macOS.

 

I hope this can patch the 4k displays in coredisplay.framework but i don't how to write the plugin,

Share this post


Link to post
Share on other sites

Hi vit9696.

 

First of all. Thanks for your work!

I just want to know how to patch framework/custom kexts via Lilu, like previously AppleALC did through UserPatches.plist, although this may be not reliable in some cases...

 

Thanks in advance

 

Edit: I found something at Shiki.

But I'm curious that what some args mean like 'Skip' 'Section' etc...  :)

Hi, as for kexts best examples are lvs's kexts (IntelGraphicsFixup and friends), they are reasonably simple and offer a good brief example of what one needs.

As for frameworks currently it is only safe to patch frameworks within a certain process, and yes, Shiki is generally a good example for it.

This line is basically all you need: https://github.com/vit9696/Shiki/blob/master/Shiki/kern_start.cpp#L39

Share this post


Link to post
Share on other sites

Hi, as for kexts best examples are lvs's kexts (IntelGraphicsFixup and friends), they are reasonably simple and offer a good brief example of what one needs.

As for frameworks currently it is only safe to patch frameworks within a certain process, and yes, Shiki is generally a good example for it.

This line is basically all you need: https://github.com/vit9696/Shiki/blob/master/Shiki/kern_start.cpp#L39

That's amazing ! But now it's a little late... Time for some sleep. Will check later.

 

 

Sent from my iPhone 7 using Tapatalk

Share this post


Link to post
Share on other sites

That's amazing ! But now it's a little late... Time for some sleep. Will check later.

 

 

Sent from my iPhone 7 using Tapatalk

Alright, I am usually busy and rarely visit insanely, so feel free to pm if you have concrete issues to investigate :).

Share this post


Link to post
Share on other sites

Plug-ins by @lvs1974

Don't set Lilu and these plug-ins in SLE or LE, it won't work. Use kexts injection from Clover.

 

IntelGraphicsFixup Superseded by WhateverGreen

Fixes boot logo on all known Intel Graphics.

Fixes PAVP freezes on Intel Azul, Skl, Kbl Graphics.
Fixes display initialization issues for Azul, Skl, Kbl Graphics.
 
NvidiaGraphicsFixup Superseded by WhateverGreen
Fixes an issue in AppleGraphicsDevicePolicy.kext so that we could use any ProductName, without the usual hang with a black screen.

Modifies macOS to recognize NVIDIA's web drivers as platform binaries. This resolves the issue with transparent windows without content, which appear for applications that use Metal and have Library Validation enabled. Common affected applications are iBooks and Little Snitch Network Monitor, though this patch is universal and fixes them all.

Injects IOVARendererID into GPU properties (required for Shiki-based solution for non-freezing Intel and/or any discrete GPU)

NVidiaAudio device to add connector-type, layout-id and other properties for HDMI audio (allows audio for HDMI, DP, Digital DVI ports)

 

Enable 3 & 25 mode hibernation on certain hardware.
Patching of IOPCIFamily to avoid hang & black screen after resume. (Option)
(Use the last FakeSMC.kext from @slice)
 
Supports AirPort_Brcm4360, AirPort_BrcmNIC and AirPort_BrcmNIC_MFG
Implements patch for passing chip id checking, in <=10.12 it's required for successful driver starting
Implements patch for "Third Party Device" (returns vendor name "Apple")
Implements patch for removing of white-list check
 
Edited by Andrey1970

Share this post


Link to post
Share on other sites

@vit9696

 

first of all, thank you for great work.

i want to report one. i can't use applelife site and russian lang very well

 

lvs1974's HibernationFixup is good working. i checked all. but i found one bug, after wakeup hibernation mode, i can't control brightness key. in setting, I can change it directly with the mouse.

 

i tried both dsdt patch and ssdt injection methods. but failed. I wonder if this is normal or not.

 

sorry.

 

thanks in advance

Share this post


Link to post
Share on other sites

@vit9696

 

first of all, thank you for great work.

i want to report one. i can't use applelife site and russian lang very well

 

lvs1974's HibernationFixup is good working. i checked all. but i found one bug, after wakeup hibernation mode, i can't control brightness key. in setting, I can change it directly with the mouse.

 

i tried both dsdt patch and ssdt injection methods. but failed. I wonder if this is normal or not.

 

sorry.

 

thanks in advance

@Sherlocks

Could you try to perform the following steps:

 

- Remove HibernationFixup.kext

- Set hibernatemode to 29 (you will have to set it manually in /Library/Preferences/com.apple.PowerManagement.[your UUID].plist).

- Put you PC into hibernation

- Turn on your PC and resume from hibernation

- Check whether you can control a brightness using keyboard

Share this post


Link to post
Share on other sites

@Sherlocks

Could you try to perform the following steps:

 

- Remove HibernationFixup.kext

- Set hibernatemode to 29 (you will have to set it manually in /Library/Preferences/com.apple.PowerManagement.[your UUID].plist).

- Put you PC into hibernation

- Turn on your PC and resume from hibernation

- Check whether you can control a brightness using keyboard

 

hello lvs1974. i'm glad to meet you in here.

 

i tested hibernation 29. brightness control is no problem.

 

3/25 can't control brightness with hiberantion mode.

EmuVariableUefi-64.efi + lilu.kext + your hiberantion kext(1.1.4) + rc script + -hbfx-dump-nvram.

Share this post


Link to post
Share on other sites

hello lvs1974. i'm glad to meet you in here.

 

i tested hibernation 29. brightness control is no problem.

 

3/25 can't control brightness with hiberantion mode.

EmuVariableUefi-64.efi + lilu.kext + your hiberantion kext(1.1.4) + rc script + -hbfx-dump-nvram.

Hello Sherlocks, thanks for greetings!

 

So, you don't have a hardware NVRAM...

 

There is only one difference when we use HibernationFixup: nvram.plist is saved.

This means that clover will restore all saved nvram variables.

 

Could you do this:

- repeat one hibernation/resume (EmuVariableUefi-64.efi + lilu.kext + your hiberantion kext(1.1.4) + rc script + -hbfx-dump-nvram)

- after resume copy nvram.plist from your boot disc to EFI partition and remove clover rc.shutdown script (or just clear executable attribute for it using chmod -x)

- shutdown your PC

- turn on again

- check whether you can control a brightness using keyboard

 

I just want to be sure that something stored in nvram.plist causes this issue.

Share this post


Link to post
Share on other sites

Hello Sherlocks, thanks for greetings!

 

So, you don't have a hardware NVRAM...

 

There is only one difference when we use HibernationFixup: nvram.plist is saved.

This means that clover will restore all saved nvram variables.

 

Could you do this:

- repeat one hibernation/resume (EmuVariableUefi-64.efi + lilu.kext + your hiberantion kext(1.1.4) + rc script + -hbfx-dump-nvram)

- after resume copy nvram.plist from your boot disc to EFI partition and remove clover rc.shutdown script (or just clear executable attribute for it using chmod -x)

- shutdown your PC

- turn on again

- check whether you can control a brightness using keyboard

 

I just want to be sure that something stored in nvram.plist causes this issue.

I dont understand all steps.

I have only nvram file in ESP.

1.implement combination(nvram+lilu+~).

2.remove both nvram file(copy to desktop) and rc script

3.reboot

4.boot osx, go hibernation.

5.enter hibernationed disk

6.test

 

Sorry my english

Right?

 

 

Add. Above steps, no need hibernation mode

Also i cant see debug log with bootarg for debug in kernel log. Is it normal?

 

Okay i understand you want.

First. restore nvram with hibernation mode(cant control brightness)

Two. Remove rcscript(avoid to save new nvram file) and bootarg.

Tree. Reboot.

Four. After login, test brightness with nvram(cant brightness)

 

 

나의 LG-F410S 의 Tapatalk에서 보냄

Share this post


Link to post
Share on other sites

Okay i understand you want.

First. restore nvram with hibernation mode(cant control brightness)

Two. Remove rcscript(avoid to save new nvram file) and bootarg.

Tree. Reboot.

Four. After login, test brightness with nvram(cant brightness)

 

 

나의 LG-F410S 의 Tapatalk에서 보냄

Correct!

 

Do you have nvram.plist which causes this issue (step Four)?

Could you attach and post it here?

Can you reproduce this issue after every new restart?

Share this post


Link to post
Share on other sites

Correct!

 

Do you have nvram.plist which causes this issue (step Four)?

Could you attach and post it here?

Can you reproduce this issue after every new restart?

 

 

no more reproduce this issue after reboot(step4)

 

i have only nvram.plist in ESP(nvram file gernerated from rc script. you already know).

 

but i see your hibernationfix makes nvram in Root. i noticed after rcscript remove. because rc script automately remove nvram file in root to avoid dummy or filevault2

 

so i take a nvram from Root. 

 

Since there are two nvram files, something seems to be causing a problem(not sure).
 
In hibernation 29, nvram files are always present on ESP partitions.
 
thanks in advance

nvram.zip

Share this post


Link to post
Share on other sites

 

no more reproduce this issue after reboot(step4)

 

i have only nvram.plist in ESP(nvram file gernerated from rc script. you already know).

 

but i see your hibernationfix makes nvram in Root. i noticed after rcscript remove. because rc script automately remove nvram file in root to avoid dummy or filevault2

 

so i take a nvram from Root. 

 

Since there are two nvram files, something seems to be causing a problem(not sure).
 
In hibernation 29, nvram files are always present on ESP partitions.
 
thanks in advance

 

Yes, HibernationFixup creates nvram.plist in the root folder of boot disk.

There's no any problem with two nvram.plist, because Clover chooses the newest one (checks modification time).

So, you need to get nvram.plist from the root folder and post it here.

Share this post


Link to post
Share on other sites

Yes, HibernationFixup creates nvram.plist in the root folder of boot disk.

There's no any problem with two nvram.plist, because Clover chooses the newest one (checks modification time).

So, you need to get nvram.plist from the root folder and post it here.

 

okay

i attached file on reply above.

both nvram file in ESP and Root

Share this post


Link to post
Share on other sites

okay

i attached file on reply above.

both nvram file in ESP and Root

I don't see a big difference...

 

Could you try to remove SMCHelper.efi and repeat the same actions?

 

And after that could you try attached FakeSMC & CPUSensors instead of installed on your system? 

HWSensors.5.2.678.pkg.zip

Share this post


Link to post
Share on other sites

I don't see a big difference...

 

Could you try to remove SMCHelper.efi and repeat the same actions?

 

And after that could you try attached FakeSMC & CPUSensors instead of installed on your system? 

 

strange issue resolved now.

 

hmm..

 

both SMCHelper.efi and FakeSMC & CPUSensors cases, no luck. still can't control brightness except volume up & down.

 

 

1:999  0:000  Use origin smbios table type 1 guid.

1:999  0:000  PrepareHibernation:
1:999  0:000      read prefs \Library\Preferences\com.apple.PowerManagement.plist status=Success
1:999  0:000      using default sleep image name = \private\var\vm\sleepimage
1:999  0:000      returning previously calculated offset: 2A76255000
1:999  0:000   SleepImageOffset: 2A76255000
2:000  0:000  02 01 0C 00 D0 41 03 0A 00 00 00 00 01 01 06 00 | .....A..........
2:000  0:000  00 17 03 12 0A 00 01 00 00 00 00 00 04 04 1A 00 | ................
2:000  0:000  32 00 41 00 37 00 36 00 32 00 35 00 35 00 30 00 | 2.A.7.6.2.5.5.0.
2:000  0:000  30 00 30 00 00 00 7F FF 04 00                   | 0.0.......
2:000  0:000  boot-image before: PciRoot(0x0)\Pci(0x17,0x0)\Sata(0x1,0x0,0x0)\2A76255000
2:000  0:000  DeleteBootOption: Boot0082
2:000  0:000   Boot0082 deleted
2:000  0:000  DeleteFromBootOrder: 0082
2:000  0:000  BootOrder: 7: Boot0007, Boot000C, Boot0006, Boot0005, Boot0008, Boot0009, Boot000B
2:000  0:000  Not found
2:000  0:000  Options 0082 was not deleted: Not Found
2:000  0:000   IOHibernateRTCVariables found - will be used as boot-switch-vars
2:002  0:002  Custom boot is disabled
2:002  0:000  Closing events for wake

Share this post


Link to post
Share on other sites

strange issue resolved now.

 

hmm..

 

both SMCHelper.efi and FakeSMC & CPUSensors cases, no luck. still can't control brightness except volume up & down.

Don't quite understand: what is the issue has been resolved?

What do you mean?

Share this post


Link to post
Share on other sites

Don't quite understand: what is the issue has been resolved?

What do you mean?

Q.what do you mean?

A.i can't suddenly use hibernation mode 3 and 25. Only hold black screen. I dont know exactly why happen. I just return my vanilla setting. And try your hibernation setting(kext, bootarg, rcscript) again. Then i got hibernation mode.

 

 

Brigtness control is still no luck on any setting(remove SMCHelper. Use your FakeSMC)

 

Between 29 and 3, can i check something? Example. Debug log or others.

 

나의 LG-F410S 의 Tapatalk에서 보냄

Share this post


Link to post
Share on other sites

Q.what do you mean?

A.i can't suddenly use hibernation mode 3 and 25. Only hold black screen. I dont know exactly why happen. I just return my vanilla setting. And try your hibernation setting(kext, bootarg, rcscript) again. Then i got hibernation mode.

 

 

Brigtness control is still no luck on any setting(remove SMCHelper. Use your FakeSMC)

 

Between 29 and 3, can i check something? Example. Debug log or others.

 

나의 LG-F410S 의 Tapatalk에서 보냄

You can also try hibernate mode 59.

Debug logs are useless here.

Also you can try to set standby and autopoweroff to 0 in pmset.

 

No more ideas.

Probably you have some dedicated ACPI method in DSDT to control a brightness.

Probably it has something common with embedded controller.

Share this post


Link to post
Share on other sites

You can also try hibernate mode 59.

Debug logs are useless here.

Also you can try to set standby and autopoweroff to 0 in pmset.

 

No more ideas.

Probably you have some dedicated ACPI method in DSDT to control a brightness.

Probably it has something common with embedded controller.

Thanks.

I dont know exactly why happen this problem. So just found and report it you.

Because i like debug and report.

 

Thank you for your help

Have a great day.

 

 

나의 LG-F410S 의 Tapatalk에서 보냄

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   0 members

    No registered users viewing this page.

  • Similar Content

    • By EduardoMenezes
      Good evening, friends of InsanelyMac.
      I have an Acer Aspire E5-571 notebook with Intel processor and Intel Graphics 5500 hd graphics card. When I was using the Sierra, the video card was recognized without problems. Now that I'm using Mojave I can not get the acceleration to work.
      I've been researching something about having to use Lilu.kext and whatevergreen.kext but I do not have enough knowledge to solve this problem.
      I need the help of someone who can explain to me how to solve this acceleration problem. I'm sure it will be of great value to other users like me.
      Thank you very much.

    • By headkaze
      Framebuffer patching in Mojave
      Binary patching framebuffers using KextsToPatch in Clover is no longer a viable method in Mojave for Skylake and above. Now you need to use Lilu + WhateverGreen.
       
      Not just for Mojave
      This method of framebuffer patching is not only required for Mojave we recommend it for all previous and future releases of macOS.
       
      Coffee Lake Users
      Please note that the new WhateverGreen will not work with fake Kaby Lake platform-id's. You will need to have either macOS 10.14 Beta 4 (18A336e) or macOS High Sierra 10.13.6 (17G2112). The latter is a special build only available to MacBookPro15,1 or MacBookPro15,2 board id's. You can create a macOS High Sierra 10.13.6 (17G2112) installer by running installinstallmacos.py. (Update: vit9696 added back ability to fake Kaby Lake platform-id's)
       
      Lilu + WhateverGreen
      WhateverGreen is going to replace all the other video patching plugins for Lilu (it currently has merged WhateverGreen, IntelGraphicsFixup, NvidiaGraphicsFixup, Shiki and CoreDisplayFixup). Others will likely follow (such as AppleALC, HibernationFixup and IntelGraphicsDVMTFixup). This is aiming to be the all-in-one solution for video.
       
      Beta Warning
      Please note that it is currently in a "beta" state so use it at your own risk. I am just documenting this here for those of you who want to get framebuffer patching now.
       
      Preliminary
      1. Remove:
      - FakePCIID_Intel_HD_Graphics
      - IntelGraphicsFixup
      - NvidiaGraphicsFixup
      - CoreDisplayFixup
      - Shiki
      2. Turn off all graphics injections in Clover:
      - config.plist/Graphics/Inject/ATI=NO
      - config.plist/Graphics/Inject/Intel=NO
      - config.plist/Graphics/Inject/NVidia=NO
      - config.plist/Graphics/ig-platform-id=
      - config.plist/Devices/FakeID/IntelGFX=

      3. Disable DSDT Clover fixes:
      - AddHDMI
      - FixDisplay
      - FixIntelGfx
      - AddIMEI
      4. Disable UseIntelHDMI
      5. Remove boot argument: -disablegfxfirmware
      6. Remove any IGPU and HDMI entries from:
      - config.plist/Devices/Arbitrary
      - config.plist/Devices/Properties
      - config.plist/Devices/AddProperties
      7. Remove any IGPU and HDMI related SSDT and DSDT from:
      - CLOVER/ACPI/patched
      8. Renaming GFX0 -> IGPU
      - WhateverGreen will do this automatically (see caveat below)
      - Be aware that WhateverGreen does not rename all instances of GFX0 -> IGPU but should be okay in most cases
      - You may need to include Clover GFX0 -> IGPU rename for other kexts or ACPI patching that require it
       
      Compile Lilu + WhateverGreen
      Download WhateverGreen. Make sure you place the debug version of Lilu into the root of WhateverGreen before you compile. Install Lilu and WhateverGreen kext's into the usual place. Compile WhateverGreen as debug if you want to view debug output.
       
      Having trouble compiling?
      If you're having trouble compiling you can wait for the official binaries or download my (unsupported) build_lilu.sh shell script and run it in a folder to download and build Lilu + WhateverGreen using Xcode automatically. I recommend you try the debug versions first (place them into Clover's EFI/Clover/kexts/Other folder).
       
      Get the device path of your IGPU:
      Download and use the gfxutil tool like so:
      $ ./gfxutil -f IGPU DevicePath = PciRoot(0x0)/Pci(0x2,0x0) ig-platform-id
      For the AAPL,ig-platform-id (AAPL,snb-platform-id for Sandy Bridge) entry Clover requires this value to be in Data format so you need to reverse the bytes. So if you want your platform-id to be 0x3EA50009 first reverse the bytes (0900A53E) then use Xcode's plist editor to add the values to Clover's config.plist.

       
      What ig-platform-id should I use for my system?
      You should choose one that is the closest match to your system. I recommend you do some research on this before choosing one. See post #2 for available options. More info can be found here.
       
      You can determine the generation of your CPU by the first digit after the hyphen.
      Examples:
      - Intel(R) Core(TM) i5-2760QM (Gen 2)
      - Intel(R) Core(TM) i7-5257U CPU @ 2.70GHz (Gen 5)
      - Intel(R) Core(TM) m3-6Y30 (Gen 6)
      - Intel(R) Core(TM) i5-8350U (Gen 8)
       
      Here are some recommended frames:
       
      Gen 2: Sandy Bridge (Intel HD Graphics 2000/3000)
      - Support started with OS X 10.7.x and ended with macOS 10.13.6
      - Metal support is not available
      - Desktop: 0x00030010 (default)
      - Laptop: 0x00010000 (default)
       
      Gen 3: Ivy Bridge (Intel HD Graphics 2500/4000)
      - Support started with OS X 10.8.x
      - Desktop: 0x0166000A (default), 0x01620005
      - Laptop: 0x01660003 (default), 0x01660009, 0x01660004
       
      Gen 4: Haswell (Intel HD Graphics 4200-5200)
      - Support started with OS X 10.9.x
      - Desktop: 0x0D220003 (default)
      - Laptop: 0x0A160000 (default), 0x0A260005 (recommended)
       
      Gen 5: Broadwell (Intel HD Graphics 5300-6300)
      - Support started with OS X 10.10.2
      - Desktop: 0x16220007 (default)
      - Laptop: 0x16260006 (default)
       
      Gen 6: Skylake (Intel HD Graphics 510-580)
      - Support started with OS X 10.11.4
      - Desktop: 0x19120000 (default)
      - Laptop: 0x19160000 (default)
       
      Gen 7: Kaby Lake (Intel HD Graphics 610-650)
      - Support started with macOS 10.12.6
      - Desktop: 0x59160000 (default)
      - Laptop: 0x591B0000 (default)
       
      Gen 8: Coffee Lake (Intel UHD Graphics 630)
      - Support started with macOS 10.13.6 (17G2112) / 10.14 beta 4 (18A336e)
      - Desktop: 0x3EA50000 (default), 0x3E9B0007 (recommended)
      - Laptop: 0x3EA50009 (default)
       
      Framebuffer Patching
      WhateverGreen does most of the work automatically for you and in most cases you do not need any extra Framebuffer Patching. At the minimum though you should choose an ig-platform-id suitable for your system and place it in config.plist/Devices/Properties like this:

      Here are some reasons why you might need extra Framebuffer Patching:
      - Setting DVMT for those who can't set it above 32 MB in BIOS (framebuffer-stolenmem / framebuffer-fbmem)
      - Setting higher VRAM (framebuffer-unifiedmem)
      - Disabling eGPU (disable-external-gpu)
      - Enable pixel clock patch for 4K support (enable-hdmi20)
      - Disabling connectors to enable sleep (framebuffer-pipecount / framebuffer-portcount / framebuffer-conX-type=-1)
      - Removing CNConnectorAlwaysConnected flag for eDP laptop screens on < 10.13.6 (framebuffer-con0-flags=0x00000090)
      - Changing connector types to match your systems ports (framebuffer-conX-type)
       
      Framebuffer Patching Types
      We have three different types of patches:
       
      1. Arbitrary (Recommended)
      framebuffer-patch-enable (required to enable below) framebuffer-framebufferid (optional; defaults to current platform-id) (all below are optional) framebuffer-mobile framebuffer-pipecount framebuffer-portcount framebuffer-memorycount framebuffer-stolenmem framebuffer-fbmem framebuffer-unifiedmem framebuffer-cursormem (Haswell only) framebuffer-conX-enable (required to enable below) framebuffer-conX-index framebuffer-conX-busid framebuffer-conX-pipe framebuffer-conX-type framebuffer-conX-flags 2. All Data
      framebuffer-conX-enable (required to enable below) framebuffer-conX-alldata 3. Find / Replace
      framebuffer-patchX-enable (required to enable below) framebuffer-patchX-framebufferid (optional; defaults to current platform-id) framebuffer-patchX-find framebuffer-patchX-replace framebuffer-patchX-count (optional; defaults to 1) You should place your patches in config.plist/Devices/Properties in Clover config.plist.
       
      Here are some example patches:
      - 32MB BIOS, 19MB stolen (framebuffer) 9MB fbmem (cursor) 2048MB unifiedmem (vram)

       
      - Pipe / Port Count 3 to 2
      - Connector 1 DP to HDMI
      - Connector 2 Disable

       
      Here is an example of the All Data method:

       
      Here is an example of the Find / Replace method:

       
      Framebuffer Dumps
      There are two ways to dump your framebuffer data (both require WhateverGreen + Lilu debug versions):
       
      1. Using -igfxdump boot flag to dump IGPU framebuffer kext to /AppleIntelFramebuffer_X_Y (root of your boot drive)
       
      There are several ways of reading this dump:
      - Using 010 Editor along with the IntelFramebuffer.bt template
      - Using Intel FB-Patcher File->Open menu
       
      2. Using -igfxfbdump boot flag to dump native and patched framebuffer table to ioreg at IOService:/IOResources/WhateverGreen
       
      There are several ways of reading this dump:
      - Using dump_platformlist.sh shell script
      - Using Intel FB-Patcher File->Import->IOReg Dump menu
       
      Debug Output
      To get debug output from Lilu use the -liludbgall flag and for WhateverGreen use the -wegdbg boot flag. You will need to compile Lilu and WhateverGreen as debug for both of these flags to work.
       
      To view debug paste the following into Terminal (weglog.txt will output to your home directory):
      log show --predicate 'process == "kernel" AND (eventMessage CONTAINS "WhateverGreen" OR eventMessage CONTAINS "Lilu")' --style syslog --source --last boot >weglog.txt
      Credits
      - vit9696 and lvs1974 for WhateverGreen (Full Credits) and Lilu (Full Credits)
      - Andrey1970 for his guide on applelife.ru
      - RehabMan for all data patching method, ioreg framebuffer dump and other contributions
       


    • By yehia2amer
      I want to patch AppleHDA but I cannot find any post talking about ALC3220, I Tried AppleALC (ALC280 - layout-id 11), and AppleHDA Patcher v1.9  (ALC280 - layout-id 5) with no luck.
      I Also Tried VodooHDA but it is very buggy an unstable !
       
      So Now Please find my Codec details below
      ------
      Linux codec_dump.txt 
       
      Codec: Realtek ALC3220 Address: 0 AFG Function Id: 0x1 (unsol 1) Vendor Id: 0x10ec0280 Subsystem Id: 0x102805d4 Revision Id: 0x100003 No Modem Function Group found Default PCM: rates [0x5f0]: 32000 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=5, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out Control: name="Speaker+LO Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Device: name="ALC3220 Analog", type="Audio", device=0 Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0 Amp-Out vals: [0x3d 0x3d] Converter: stream=5, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0 Amp-Out vals: [0x00 0x00] Converter: stream=5, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x06 [Audio Output] wcaps 0x611: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x5f0]: 32000 44100 48000 88200 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In Control: name="Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Capture Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Device: name="ALC3220 Analog", type="Audio", device=0 Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x27 0x27] Converter: stream=1, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1 Amp-In vals: [0x97 0x97] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 1 0x22 Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Control: name="Front Mic Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Front Mic Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=2, ofs=0 Control: name="Rear Mic Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Control: name="Rear Mic Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 5 0x18 0x19 0x1a 0x1b 0x1d Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Connection: 2 0x03 0x0b Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80] [0x00] Connection: 2 0x02 0x03 Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x4008c000: [N/A] Line Out at Ext N/A Conn = DIN, Color = UNKNOWN DefAssociation = 0x0, Sequence = 0x0 Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x00010010: OUT EAPD EAPD 0x2: EAPD Pin Default 0x90170110: [Fixed] Speaker at Int N/A Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D0, actual=D0 Connection: 2 0x0c* 0x0d Node 0x15 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0001001c: OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x0221401f: [Jack] HP Out at Ext Front Conn = 1/8, Color = Green DefAssociation = 0x1, Sequence = 0xf Pin-ctls: 0xc0: OUT HP Unsolicited: tag=02, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x0c 0x0d* Node 0x16 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00010014: OUT EAPD Detect EAPD 0x2: EAPD Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x0c* 0x0d Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80] Pincap 0x00000010: OUT Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 1 0x0f Node 0x18 [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Rear Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x00003734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x01a13040: [Jack] Mic at Ext Rear Conn = 1/8, Color = Blue DefAssociation = 0x4, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=04, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x0c* 0x0d Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Front Mic Boost Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x0000373c: IN OUT HP Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x02a19030: [Jack] Mic at Ext Front Conn = 1/8, Color = Pink DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=03, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x0c* 0x0d Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out Control: name="Line Out Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x00003734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x01014020: [Jack] Line Out at Ext Rear Conn = 1/8, Color = Green DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0x40: OUT VREF_HIZ Unsolicited: tag=01, enabled=1 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 2 0x0c* 0x0d Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1d [Pin Complex] wcaps 0x400400: Mono Pincap 0x00000020: IN Pin Default 0x40400001: [N/A] SPDIF Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0x0, Sequence = 0x1 Pin-ctls: 0x20: IN Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Node 0x1e [Pin Complex] wcaps 0x400781: Stereo Digital Pincap 0x00000014: OUT Detect Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Power states: D0 D1 D2 D3 EPSS Power: setting=D3, actual=D3 Connection: 1 0x06 Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=107 Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x22 [Audio Selector] wcaps 0x300101: Stereo Connection: 8 0x18* 0x19 0x1a 0x1b 0x1d 0x0b 0x12 0x13 Node 0x23 [Audio Selector] wcaps 0x300101: Stereo Connection: 6 0x18* 0x19 0x1a 0x1b 0x1d 0x0b Node 0x24 [Vendor Defined Widget] wcaps 0xf00000: Mono  
      Jarvis report:
      Hardware info: - ATI R6xx HDMI (1002:aa01) - Controller 1002:aa30 (sub-ven:174b:aa30) - Driver: VoodooHDA SSDT-4.aml succesfully extracted! DSDT.aml succesfully extracted! SSDT.aml succesfully extracted! SSDT-1.aml succesfully extracted! SSDT-3.aml succesfully extracted! SSDT-2.aml succesfully extracted! Found "Device (HDEF)" in DSDT.aml Found property "layout-id" in DSDT.aml Found 1 occurennces of "layout-id" in ioreg, not sure what's will be for HDEF.. Found unsupported "layout-id = 11" in ioreg, will not work using Mirone's patches!!! No "Device (HDAU)" was found inside your ACPI tables. That is normal w/o a PCI Video card or w/o an HDMI connector on it! AppleHDA Patcher.app only supports (if patched by Mirone): layout-id 2 for laptop's, layout-id 5 for Desktop's with 3 connectors (pink, green and blue), layout-id 7 for Desktop's with 5/6 connectors (gray, black, orange, pink, green and blue), layout-id 9 for Desktop's with 5/6 connectors (gray, black, orange, pink, green, blue, CodecAddress:2) aDummyHDA.kext works only is /System/Library/Extensions. Laptop's may be need the provided ACPI Patch such system_IRQ.txt to be functional. HDAEnabler.kext maybe usefull if you don't want to edit your ACPI table or the Clover's config, or the org.Chameleon.Boot.plist. CodecCommander.kext is usefull in the case you have no sound after waking from sleep. Generated kexts should be installed in a proper way, repairing its permissions and rebuilding the cache: dragging kexts into Pandora's Box.app window will help you to do that!  
      Chipset Name: Intel Corporation C600/X79 series chipset High Definition Audio Controller (rev 06)
      Codec Name: Realtek ALC3220
      Linux Codec Dump : codec_dump.txt
      codec_dump.txt.svg
      Patched DSDT: DSDT.aml
       
       
      Thanks
       
    • By maiconjs
      I have a receiver with 7.1 channels, in which I transmit the formats Dolby Digital and DTS without problems by Windows, through the HDMI output of HD4000. On that same Laptop, I have the Hackintosh, with the High Sierra 10.13.6, and with audio enabled using AppleALC, but in the audio preferences, I can not enable the Digital audio format. Also did not find players like Mirillis SplashPro (which I have used in Windows) with the option of HDMI output Bitstream. Is it possible to enable this digital output on Hackintosh?
    • By macinsane
      What works? Everything. Sleep/Wake, NVMe, Airport, Spotlight, AMD-graphics

      Config:
      ASUS Prime B250M-C µATX-board
      Intel Core i5 7500 (Kaby Lake)
      Gigabyte Radeon RX560 4GB
      Airport-compatible PCIe-Card for Wifi and Bluetooth (BCM943602CS)
      2 NVMe drives: Samsung P961 with 1 TB and 256 GB

      Installed mac OS: 10.13.2
      Clover: 4334
       
      *Update 10.13.3*
      Added new config.plist and ssdt for AMD injection (config_amd_ssdt_10133.zip). With this config and Intel IGPU activated you'll get Metal2 (macOS GPUFamily1 v3). What did I do? Had to fake Skylake graphics or to prevent apps like iMovie or FinalCut from crashing. With Kabylake kexts loaded and IGPU as secondary graphics card, the computer will hard reset whenever the Intel GPU is utilised. Only Skylake kexts and activated IGPU will give you working Metal2 for the RX560.  
       
      *Update 10.13.2*
      Since this update a new approach is advisable to get the RX560 up and running (works for 10.13.1 and GM as well). I've added a working SSDT and injector kext that gives you graphics and HDMI audio. Sleep works fine too if you add the DSDT I compiled.  
       
      Credits go to @Toledo @Mork vom Ork and @Mieze because their work made this possible.
      *Update* I've added NEW config.plist and DSDT. For proper graphics power management you have to activate onboard graphics in BIOS but make PCIE the primary display. Furthermore you have to inject ig-platform-id 0x59120003 and let Clover patch GFX0 to IGPU. This is the only way to avoid crashes of iMovie, FinalCut or slowdowns after video playback.

      This may be the smoothest Hackintosh of my life. It is easier than Sierra install due to native support for most of the used hardware in High Sierra. Not much to do, using an up-to-date Clover version like 4184. Make sure you have apfs.efi in /Clover/drivers64UEFI/ on your EFI partition and that you delete EmuVariableUEFi.efi (downside: iMessage doesn't work without it). Somehow Rehabman's SSDT in /Clover/ACPI/patched helps avoiding crashes in iTunes.

      Needed kexts (on your EFI into /Clover/kexts/Other): FakeSMC, IntelMausiEthernet for ethernet, USBInjectAll and XHCI-200-series-injector for USB, Lilu and AppleALC for audio, Whatevergreen for AMD graphics, IntelGraphicsFixup and AMD9xxxControllerPatcher.kext.
       
      DSDT and SSDT go into EFI/Clover/ACPI/patched.
      config.plist.zip
      AMD9xxxControllerPatcher.kext.zip
      SSDT-HDMI-AMD-PEG0.aml.zip
      DSDT.aml.zip
      config_amd_ssdt_10133.zip
×