Contribute
Register

[GUIDE] Installing 3rd Party Kexts - El Capitan, Sierra, High Sierra, Mojave, Catalina

@soeryobadja,

I've stuck with FakeSMC to-date as it works fine on all my Hacks and have never had an issue with it .... having said that I do keep an eye on VirtualSMC's development and recently I've noticed it being used in more and more builds so I think its fair to say that its stability and compatibility is improving with every new release.

I would say that it is probably advisable to use LiluFriend as a belt and braces approach since SMC emulation needs to be loaded very early in the MacOS boot phase and without it there is no way to guarantee the kext load order from /L/E.

Cheers
Jay

@jaymonkey
As usual, a very very clear explanation from you.
Thank you very much for your advise. I will stick with FakeSMC for my current machine, while thinking to use VirtualSMC on my newest build to see how it works.

Thanks again.
 
As usual, a very very clear explanation from you.
Thank you very much for your advise. I will stick with FakeSMC for my current machine, while thinking to use VirtualSMC on my newest build to see how it works.


@soeryobadja,

Like you I have considered trying VirtualSMC several times in the past, but every time I backed out of it.
FakeSMC has had many years of development, is super stable and is guaranteed to work on all systems so I see no reason to change things just for the sake of it.

VirtualSMC does has some benefits over FakeSMC on laptops as it can enable battery management without having to patch the DSDT and as it matures more benefits will be added.

Without doubt VirtualSMC is the future of SMC emulation on hackintosh systems once Clover is depreciated in favour of the new OpenCore boot loader where it will be the preferred SMC emulation solution.

Cheers
Jay
 
Hi, I have the same system configuration with you, could you share your efi file to me and I totally a newer here?
ASRock Z97 Extreme 6 | i7-4790K | Vega 64 Liquid Cooled + HD 4600 IGPU | 16GB RAM
 
Excellent and informative guide. Thank you.
 
Excellent explanation about the kexts. I learned more about it and now I realized it's necessary to have them in /L/E. Is there a guide on how to put kexts in Library/Extensions in UEFI Shell x64? The reason why I am asking is because I already tried to update to Catalina before seeing this post. It couldn't get past installing the Kernels for injected Kexts...Any suggestions what should I do with this? Is it even related to Kexts or something else? I'm completely locked out and unable to access any of the drives on Hackintosh.
 

Attachments

  • Update to Catalina Kexts Mnsrit.jpg
    Update to Catalina Kexts Mnsrit.jpg
    2.4 MB · Views: 78
@mnsrit :
  1. ALWAYS clone your running OS FIRST to a separate partition

  2. test-boot it via Clover

  3. install the new OS either into the clone or the original
That way you can ALWAYS access the new OS from the old one....

Basics, bra .. ;)
 
Last edited:
@mnsrit :
  1. ALWAYS clone your running OS FIRST to a separate partition

  2. test-boot it via Clover

  3. install the new OS either into the clone or the original
That way you can ALWAYS access the new OS from the old one....

Basis, bra .. ;)
Thank you. I did back it up to another internal drive before trying to install the Catalina. Yet I now can’t access that either :(. I may have to nuke it.
 
Also always backup your working EFI partition to a separate partition which you call Clover and test boot from it into your hackOS. That way you can always boot.

Simply boot from Windows or Linux (Live), create a Clover partition, feed it with a known working EFI folder, and boot from it into your backed up macOS. Also you should be able to boot from your installer USB (flash) drive
 
I`ve tried to install 3rd Party Kexts into /Library/Extensions through Hackintool on Catalina 10.15.2 as recommended here and received panic:

panic(cpu 6 caller 0xffffff800626520a): Kernel trap at 0xffffff7f8a8c4430, type 14=page fault, registers:

CR0: 0x000000008001003b, CR2: 0x0000000000000000, CR3: 0x000000001d9d7000, CR4: 0x00000000001626e0

RAX: 0xffffff80a8198f00, RBX: 0xffffff873eb4e000, RCX: 0xffffff80a83f2e30, RDX: 0xffffff80a83f2e30

RSP: 0xffffff873eb13b50, RBP: 0xffffff873eb13c80, RSI: 0x0000000000000010, RDI: 0x0000000000000000

R8: 0x0000000000000000, R9: 0x0000000000001000, R10: 0x0000000000000001, R11: 0x0000000000000000

R12: 0xffffff8006c6e1e0, R13: 0xffffff8006c23d10, R14: 0xffffff8006c23150, R15: 0xffffff80a768b000

RFL: 0x0000000000010286, RIP: 0xffffff7f8a8c4430, CS: 0x0000000000000008, SS: 0x0000000000000000

Fault CR2: 0x0000000000000000, Error code: 0x0000000000000000, Fault CPU: 0x6, PL: 0, VF: 1



Backtrace (CPU 6), Frame : Return Address

0xffffff873eb135b0 : 0xffffff800613bb1b mach_kernel : _handle_debugger_trap + 0x47b

0xffffff873eb13600 : 0xffffff80062733e5 mach_kernel : _kdp_i386_trap + 0x155

0xffffff873eb13640 : 0xffffff8006264e5e mach_kernel : _kernel_trap + 0x4ee

0xffffff873eb13690 : 0xffffff80060e2a40 mach_kernel : _return_from_trap + 0xe0

0xffffff873eb136b0 : 0xffffff800613b207 mach_kernel : _DebuggerTrapWithState + 0x17

0xffffff873eb137b0 : 0xffffff800613b5eb mach_kernel : _panic_trap_to_debugger + 0x21b

0xffffff873eb13800 : 0xffffff80068d24f9 mach_kernel : _panic + 0x61

0xffffff873eb13870 : 0xffffff800626520a mach_kernel : _sync_iss_to_iks + 0x2aa

0xffffff873eb139f0 : 0xffffff8006264f08 mach_kernel : _kernel_trap + 0x598

0xffffff873eb13a40 : 0xffffff80060e2a40 mach_kernel : _return_from_trap + 0xe0

0xffffff873eb13a60 : 0xffffff7f8a8c4430 com.apple.driver.AppleAHCIPort : __ZN13AppleAHCIPort14InitializePortEv + 0x21e

0xffffff873eb13c80 : 0xffffff7f8a8c9d92 com.apple.driver.AppleAHCIPort : __ZN27AppleIntelPchSeriesAHCIPort14InitializePortEv + 0x1a

0xffffff873eb13cb0 : 0xffffff7f880b0788 com.apple.iokit.IOAHCIFamily : __ZN10IOAHCIPort5startEP9IOService + 0x3b0

0xffffff873eb13d10 : 0xffffff7f8a8c41f1 com.apple.driver.AppleAHCIPort : __ZN13AppleAHCIPort10AttachPortEP9IOService + 0x29

0xffffff873eb13d30 : 0xffffff7f8a8c3040 com.apple.driver.AppleAHCIPort : __ZN9AppleAHCI20CreateIndividualPortEj + 0x10c

0xffffff873eb13d70 : 0xffffff7f8a8c2b74 com.apple.driver.AppleAHCIPort : __ZN9AppleAHCI11CreatePortsEv + 0x2a

0xffffff873eb13da0 : 0xffffff7f8a8c25c3 com.apple.driver.AppleAHCIPort : __ZN9AppleAHCI5startEP9IOService + 0x53d

0xffffff873eb13de0 : 0xffffff800681ae46 mach_kernel : __ZN9IOService14startCandidateEPS_ + 0xf6

0xffffff873eb13e40 : 0xffffff800681a9f1 mach_kernel : __ZN9IOService15probeCandidatesEP12OSOrderedSet + 0xb21

0xffffff873eb13ef0 : 0xffffff8006819d3e mach_kernel : __ZN9IOService14doServiceMatchEj + 0x2ce

0xffffff873eb13f50 : 0xffffff800681c4dd mach_kernel : __ZN15_IOConfigThread4mainEPvi + 0x15d

0xffffff873eb13fa0 : 0xffffff80060e213e mach_kernel : _call_continuation + 0x2e

Kernel Extensions in backtrace:

com.apple.iokit.IOAHCIFamily(290.0.1)[1348CB77-02A5-333C-BD2D-2E33F6B182FA]@0xffffff7f880af000->0xffffff7f880c9fff

com.apple.driver.AppleAHCIPort(999.1.1)[440D7F9B-DE37-375D-AFE0-EABC372B001E]@0xffffff7f8a8c1000->0xffffff7f8a8dcfff

dependency: com.apple.iokit.IOAHCIFamily(290.0.1)[1348CB77-02A5-333C-BD2D-2E33F6B182FA]@0xffffff7f880af000

dependency: com.apple.iokit.IOPCIFamily(2.9)[1286D5E5-A6A1-3C44-A244-04C068903DB2]@0xffffff7f86ea5000



BSD process name corresponding to current thread: kernel_task

Boot args: -v debug=0x100 keepsyms=1 ngfxcompat=1 npci=0x2000



Mac OS version:

Not yet set



Kernel version:

Darwin Kernel Version 19.2.0: Sat Nov 9 03:47:04 PST 2019; root:xnu-6153.61.1~20/RELEASE_X86_64

Kernel UUID: C3E7E405-C692-356B-88D3-C30041FD1E72

Kernel slide: 0x0000000005e00000

Kernel text base: 0xffffff8006000000

__HIB text base: 0xffffff8005f00000

System model name: MacPro6,1 (Mac-F60DEB81FF30ACF6)

System shutdown begun: NO

Panic diags file unavailable, panic occurred prior to initialization



System uptime in nanoseconds: 5515772318

last loaded kext at 4327123704: >usb.!UXHCIPCI 1.2 (addr 0xffffff7f87420000, size 204800)

last unloaded kext at 1950350530: org.netkas.driver.FakeSMC 1800 (addr 0xffffff7f8a9e0000, size 69632)

loaded kexts:
 
Hello!

I'm running Catalina on a MacBook 17 with a USB 3.0 card installed. I got things to work with this driver, but it doesn't load automatically:

After installing and disabling Gatekeeper, you have to run:
Code:
kextload /Library/Extensions/GenericUSBXHCI.kext

Does anyone know why I have to load it manually? If I insert the card before loading it, I have to kextunload com.apple.driver.usb.AppleUSBXHCIPCI first.

I'd also like to know if anyone knows the mechanics behind writing a Gatekeeper exception so I don't have to disable the whole thing.

Thanks!
 
Last edited:
Back
Top