Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 posts in this topic

Recommended Posts

Dear RehabMan,

 

I'm using a laptop having Samsung 950 Pro NVMe SSD (GUID table) and 1 TB HDD (MBR table). My EFI partition and Clover folder is in the SSD.

I followed a procedure like that. What was wrong? What to do? Correct me please. 

Thank you in advance.

 

1-  I installed Sierra to a HDD partition without any problem. I patched IONVMeFamily.kext with 10_12_0 playlist. After patching, i deleted it and i installed HackrNVMeFamily-10_12_0.kext to S/L/E.

2- After restart everything is OK :wink_anim: . My 950 pro was recognized as internal disk.

3- In Windows, i got migrated partition from HDD to SSD via Paragon Harddisk Manager. But i can't boot and get Still waiting root device error.

 

My Questions

1- To boot from NVMe SSD, do i have to apply all KextToPatches via Clover as well as installed HackrNVMeFamily-10_12_0.kext?

2- Or can i do a clean install only with KextToPatches without HackrNVMeFamily-10_12_0.kext in Clover/kexts/Other? (The kext causes kernel panic when it exists in Clover/kexts/Other folder)

 

EDIT: Got success. I applied Mork vom Ork's 17 patches via config.plist and put IONVMeFamily.kext to EFI/Clover/kexts/other. My Samsung 950 Pro has been seen as internal device.

Thank you guys. You are amazing  :thumbsup_anim:

Link to comment
Share on other sites

  • 2 weeks later...

Hi,

 

I had some success with the intel 750 drive but it shows up as an external drive with eject button. Anyone know if there is a fix?

 

Thanks

 

Got it working. SSDT edit fixes the external disk error. Also got it booting off of my Intel 750 Nvme disk on my Z68 unsupported NVME motherboard!

 

Wow..

Link to comment
Share on other sites

man listen me 

your config have again patch for nvme

or kext to patch or kext in folder 

so delete kext to patch from config..or disabled 

try this ...and not remove kext from folder OTHER

So if I download config.plist.zip and replace it with the one in my EFI folder, I am good to go? i.e I don't need to install any kexts? This is for SIerra

 

Thanks

Link to comment
Share on other sites

Attention Op. Can we please have a working drive list on the first post detailing what model of SSD, version of osx, and what patch used for reference?

 

I can give a +1 to the Intel 750 400gb working as a boot drive in Sierra 10.12.0 using the piker Hackr 12.0 patch. Only thing is Carbon Copy Clover failed to mount drive when trying to image partition. Had to use Paragon hard disk manager from a windows partition. Works.

  • Like 1
Link to comment
Share on other sites

davidm71. I am building my first hackintosh. Sierra, asus z170 delux and I have an Intel 750 I am hoping to use for boot. After spending an evening finding my way around clover, #####, plists, ktexts etc, I am at the stage where I can create bootable install USB. Had a few issues before the install would work, but resolved those and the install completed. However I later realised I was installing to the USB, as no hard drives were showing in the clover boot screen... DOH! So I eventually find the RehabMan git hub repo to patch nvme, but im unsure what steps to take exactly. Should I first get the hackintosh up and running and then follow the steps from the machine, or can these steps be taken as a pre-install operation to enable me to install directly to the Intel 750?

Any guidance would be appreciated.

Thnks

Richard.

Link to comment
Share on other sites

davidm71. I am building my first hackintosh. Sierra, asus z170 delux and I have an Intel 750 I am hoping to use for boot. After spending an evening finding my way around clover, #####, plists, ktexts etc, I am at the stage where I can create bootable install USB. Had a few issues before the install would work, but resolved those  and the install completed. However I later realised I was installing to the USB, as no hard drives were showing in the clover boot screen... DOH! So I eventually find the RehabMan git hub repo to patch nvme, but im unsure what steps to take exactly. Should I first get the hackintosh up and running and then follow the steps from the machine, or can these steps be taken as a pre-install operation to enable me to install directly to the Intel 750?[/size]

 

Any guidance would be appreciated.[/size]

 

Thnks[/size]

 

Richard.[/size]

 

Rich,

 

It took a lot of trial and error to get it to work, and on my Asus Z68 Deluxe I already had a Windows 10 install and a couple SSD drives with EL Cap already running. Unfortunately the Nvme patch was not compatible on El Cap so had to do an in place upgrade to Sierra from the App store. After I worked out my system definition and gpu conflict another kind user gave me his patched kext which didnt work but at least i knew it would considering he stated success. So I ran the hackr patch (think it was rehabman branch) with the 10.12 option precursor within the working Sierra install. If you do this within El Cap install it wont work. That was the first mistake I made. You have to run it in Sierra. After the patch is run it will spit out the patched kext and tell you the checksums match if not it wont work.

 

After that i installed it to my efi folder, removed ionvmefamiliy kext from SLE and rebuilt my kext cache and rebooted where if all goes well your nvme drive will show up in Finder though as an external drive with eject button. Needed an SSDT patch to fix that issue. Can post those details tomorrow. From there i booted back into my windows install and shrunk the partition in half and then back into Sierra where I tried to use CCC or Superduper but it threw an error trying to mount the partition for some reason.

 

Not sure why so back into windows and used Paragon Hard disk Manager to clone the Sierra SSD drive onto the nvme partition copying the clover efi folder onto the Windows 'System' efi partition, created a Uefi boot entry in the Clover shell as well as my bios sucks at recognizing Uefi installs, and rebooted to my new install no problem. I'm sure you could probably do it from a Clover ready Sierra USB installer but the USB keys efi folder should match your working efi folder with the appropriate NvmeHackr kext, Ssdt/Dsdt, and even Clover's Nvme dxe driver installed though you may not need it,

 

Hope that helps.

  • Like 1
Link to comment
Share on other sites

I have posted this on github, but then read the message to post feedback in this thread.

 

I have used the patch on my Sierra install and it works great - my Intel 750 shows up. So next step, I wanted to install Sierra onto the 750 so I copied the kext to the Clover USB kexts/other folder. But whenever this kext is in there I just get a kernel panic in the form of brcm4360 .... IONetworkingFamily. It was a red hearing as I didnt see how broadcom and nvme are related - but I am 99.9% sure I have controlled the setup to isolate this.

 

I am running Asus z170 delux / skylake.

Thanks for any guidance you can offer.

Link to comment
Share on other sites

I have posted this on github, but then read the message to post feedback in this thread.

 

I have used the patch on my Sierra install and it works great - my Intel 750 shows up. So next step, I wanted to install Sierra onto the 750 so I copied the kext to the Clover USB kexts/other folder. But whenever this kext is in there I just get a kernel panic in the form of brcm4360 .... IONetworkingFamily. It was a red hearing as I didnt see how broadcom and nvme are related - but I am 99.9% sure I have controlled the setup to isolate this.

 

I am running Asus z170 delux / skylake.

Thanks for any guidance you can offer.

You have to use Clover KextsToPatch for Sierra installer.

Link to comment
Share on other sites

Hi RehabMan. Is there a possibility to use the kextstopatch to change the class code of the vanilla kext to something else that will never match (a fake code)? Should work?

Sorry I cannot test this right now with any nvme disk..

Link to comment
Share on other sites

Hi RehabMan. Is there a possibility to use the kextstopatch to change the class code of the vanilla kext to something else that will never match (a fake code)? Should work?

Sorry I cannot test this right now with any nvme disk..

I tried it... Problem with KextsToPatch is that it only applies to kexts that are in cache. So, it is difficult to patch a kext such that it doesn't load, as once it doesn't load it is not in cache, and therefore cannot be patched by KextsToPatch.

 

Maybe some fiddling with ForceKextsToLoad would help, I can't remember if I tried it. I don't like injecting for normal install, so ended up just deleting the native IONVMeFamily.kext...

Link to comment
Share on other sites

I tried it... Problem with KextsToPatch is that it only applies to kexts that are in cache. So, it is difficult to patch a kext such that it doesn't load, as once it doesn't load it is not in cache, and therefore cannot be patched by KextsToPatch.

 

Maybe some fiddling with ForceKextsToLoad would help, I can't remember if I tried it. I don't like injecting for normal install, so ended up just deleting the native IONVMeFamily.kext...

 

Is there actually a scenario in which the kext is not in the cache, but is loaded?

Link to comment
Share on other sites

Hi RehabMan. Is there a possibility to use the kextstopatch to change the class code of the vanilla kext to something else that will never match (a fake code)? Should work?

Sorry I cannot test this right now with any nvme disk..

what do I have to do ? I can do anything 

Link to comment
Share on other sites

Is there actually a scenario in which the kext is not in the cache, but is loaded?

Sure, when you boot without cache, so nothing regarding vanilla installers or Recovery partitions.

But reading the source, Clover should be able to patch kexts if loaded from the filesystem as well (PatchLoadedKexts() vs PatchPrelinkedKexts()).

A difference from the plist in the prelinked dictionary and the sole plist of the SLE kexts (that actually is in the memory map) is that have tabs/spaces/carriage returns in it?... maybe a search/replace of the sole string (i.e. w/o tags):

 

0x01080200&0xffffff00 = 3078303130383032303026616D703B30786666666666663030

 

should be enough since I doubt that should be accidentally confused with something else, or there's a bug somewhere.

Anyway I trust Rehabman, if He already tried, no other to say.

Link to comment
Share on other sites

Sure, when you boot without cache, so nothing regarding vanilla installers or Recovery partitions.

But reading the source, Clover should be able to patch kexts if loaded from the filesystem as well (PatchLoadedKexts() vs PatchPrelinkedKexts()).

A difference from the plist in the prelinked dictionary and the sole plist of the SLE kexts (that actually is in the memory map) is that have tabs/spaces/carriage returns in it?... maybe a search/replace of the sole string (i.e. w/o tags)  should be enough since I doubt that should be accidentally confused with something else, or there's a bug somewhere

Anyway I trust Rehabman, if He already tried, no other to say.

 

Booting without caches has been gone for ages, I think Mountain Lion had the last boot.efi to support it... Maybe Mavericks.

And even if so, as far as I am aware, Clover also patches 'booter kexts'.

Link to comment
Share on other sites

Is there actually a scenario in which the kext is not in the cache, but is loaded?

Yes... if you patch it with Clover KextsToPatch InfoPlistPatch (to prevent it from loading) and it doesn't load because there is no IOKit match, it will be eliminated from the kernel cache when it is rebuilt... Then, next time you boot it loads from the file system (/S/L/E) because it isn't patched.

Booting without caches has been gone for ages, I think Mountain Lion had the last boot.efi to support it... Maybe Mavericks.

And even if so, as far as I am aware, Clover also patches 'booter kexts'.

I'm not sure what it does, but the boot without caches in Clover has some effect, as it is an effective mechanism to get AppleHDA in cache so it can be patched...

  • Like 2
Link to comment
Share on other sites

Booting without caches has been gone for ages, I think Mountain Lion had the last boot.efi to support it... Maybe Mavericks.

And even if so, as far as I am aware, Clover also patches 'booter kexts'.

Not sure. If you change SLE time it should boot w/o cache. The case when you reboot after an update and even if the system autorebuilt it, this already happened?

Edited by Micky1979
added a question mark
Link to comment
Share on other sites

First a little background. I have an Asus z170 delux with skykake, a SATA and an Intel 750 ssd (nvme).

 

So I installed Sierra ono the SATA, then patched the nvme (rehabman) and then from with the Sierra OS that booted from the SATA, re-ran the installer onto the Intel 750. Obviously the installer writes some files down and then reboots. Clover doesnt normally see the Intel so I tried to use the hacked kext (a bull at a gate - I didnt read the note to not ever bother to attempt to use this kext on the installer). So now I have used clover configurator to install the NVME driver and removed the patched driver.

 

Here are the screenshots....

 

Anything I can try?

 

IMG_0940.JPG

 

IMG_0942.JPG


No the broadcom error only happens when the pathched nvme kext is present in Clover! Really! I have controlled everything else and just put this in and just took out to confirm

 

This is the screenshot:

 

upload.jpg

Link to comment
Share on other sites

I trust you, but what gives you the kp is another kext. Plus you have IONVMEFamily.kext not loaded that also means that you did not follow RehabMan's advice of remove it (otherwise we should not see its failure in loading),

 or may be still pre linked.... symptom that you totally forgot to rebuild the cache. 

Should we expect that you still have Clover's patches for IONVMEFamily also? :P

Link to comment
Share on other sites

 Share

×
×
  • Create New...