Contribute
Register

OS X Driver for NVMe M.2 Solid State Drives Released

Status
Not open for further replies.
I just tried this another way, I installed Sierra on a hard drive, then ran the patch script for 10_12_0, removed the IONVMe kext, placed the HACKNVMe kext into the same directory (S/L/E), and An error pops up a short while later that the kext cannot be used, and to contact my vendor.. Any ideas?
 
I cannot get the chown -R command to work, it always comes back with illegal user name.

There are no permissions on FAT32 volumes. What are you trying to do?

I just tried this another way, I installed Sierra on a hard drive, then ran the patch script for 10_12_0, removed the IONVMe kext, placed the HACKNVMe kext into the same directory (S/L/E), and An error pops up a short while later that the kext cannot be used, and to contact my vendor.. Any ideas?

You cannot install kexts to the system volume with Finder.
 
I just tried this another way, I installed Sierra on a hard drive, then ran the patch script for 10_12_0, removed the IONVMe kext, placed the HACKNVMe kext into the same directory (S/L/E), and An error pops up a short while later that the kext cannot be used, and to contact my vendor.. Any ideas?
You are better off using the KextBeast to install kexts in /S/L/E/ or /L/E/. (See the tonymacx86 Downloads for KextBeast.) Drag/drop the kext to the Desktop. Delete the copy in the /S/L/E/. Run KextBeast and selection the location. KextBeast will change the kext(s) permission to the appropriate permissions and rebuild caches.

However, you can put the kext in the /EFI/EFI/Clover/kexts/other/ folder. You can drag and drop the kext into .../other/ folder and Clover will inject it with the correct permissions upon each boot. Use the Terminal command
Code:
diskutil list
to determine the "diskXs1" partition of your OS X (macOS) drive. Then, use EFI Mounter v3 (see Downloads > Community Software) to mount the EFI partition. After you move the kext, you'll need to clear cache which you can do upon reboot at the Clover boot screen or before rebooting with the following Terminal commands:
Code:
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches
and, then, reboot.

You may have to turn off Gatekeeper. This option was removed in El Capitan in the System Preference Security pane. Use the following Terminal command to turn off Gatekeeper.
Code:
sudo spctl --master-disable

Good luck! :thumbup:
 
Last edited:
However, you can put the kext in the /EFI/EFI/Clover/kexts/other/ folder.

Please note that Clover will not inject kexts from Clover/kexts if FakeSMC.kext is in kernel cache (eg. FakeSMC.kext was installed to the system volume) and config.plist/SystemParameters/InjectKexts=Detect.
 
Please note that Clover will not inject kexts from Clover/kexts if FakeSMC.kext is in kernel cache (eg. FakeSMC.kext was installed to the system volume) and config.plist/SystemParameters/InjectKexts=Detect.
Good catch! I've updated the above post with how to clear caches.
 
Good catch! I've updated the above post with how to clear caches.

Rebuilding kernel cache will not help. As long as FakeSMC.kext is installed to the system volume and InjectKexts=Detect, Clover/kexts is ignored.

If you install FakeSMC.kext to the system volume and are using InjectKexts=Detect, all kexts you need must be installed to the system volume.
 
Rebuilding kernel cache will not help. As long as FakeSMC.kext is installed to the system volume and InjectKexts=Detect, Clover/kexts is ignored.

If you install FakeSMC.kext to the system volume and are using InjectKexts=Detect, all kexts you need must be installed to the system volume.
Hmmm. I missed the memo on that item. However, if he used the UniBeast/MultiBeast installation method, FakeSMC is in the /L/E/ folder. But, what does FakeSMC have to do with his moving HACKNVMe kext? I've lost lock on this problem (pilot talk).
 
Hmmm. I missed the memo on that item. However, if he used the UniBeast/MultiBeast installation method, FakeSMC is in the /L/E/ folder. But, what does FakeSMC have to do with his moving HACKNVMe kext? I've lost lock on this problem (pilot talk).

FakeSMC.kext in /Library/Extensions means FakeSMC.kext is in kernel cache. As a result, Clover will not inject any kexts from Clover/kexts. Assuming InjectKexts=Detect, placing HackrNVMe* into Clover/kexts/Other will have no effect (except for scenarios where FakeSMC is not in cache: the recovery partition, booting the installer, etc).

Also, for 10.12, HackrNVMeFamily cannot be used when IONVMeFamily is present. So in final install IONVMeFamily needs to be removed, and Clover hotpatch (KextsToPatch) needs to be used for the installer/recovery scenarios.

For proper setup in the typical Unibeast/Multibeast setup (eg. FakeSMC.kext installed to the system volume, InjectKexts=Detect):
- USB installer uses KextsToPatch for IONVMeFamily that match the version of OS X/macOS on the USB
- EFI/Clover on HDD/SSD uses KextsToPatch for IONVMeFamily that match the version of OS X/macOS you plan to boot with it (can vary depending on whether you're doing an upgrade install or recovery boot, etc)
- HackrNVMeFamily installed to the system partition
- IONVMeFamily removed from the system partition

In order to arrive at these set of rules, you need to have only basic knowledge:
- the conditions under which Clover kext injection is performed
- the fact that IONVMeFamily cannot be combined with HackrNVMeFamily in 10.12
- realizing the scenarios where HackrNVMeFamily cannot be used, and using KextsToPatch instead
 
Thank you, RehabMan. Your explanation on FakeSMC location explains a lot with respect to its influence on how Clover deals with the kexts in the .../Clover/kext/... folder. Thank you for taking the time to explain this process as I know I'm not the only one who did not know the indepth techniques on how Clover deals with kexts. I appreciate your patience. (Let me know if you have any aerospace design/performance questions. :D)
 
Status
Not open for further replies.
Back
Top