Tobinejumi Posted January 31, 2017 Share Posted January 31, 2017 As expected without class-code spoof. Here was my mistake too. After removing original IONVMeFamily - system detects my Samsung 960 EVO! Thank you very much! Link to comment Share on other sites More sharing options...
pianoguy Posted January 31, 2017 Share Posted January 31, 2017 As expected without class-code spoof. Yes. Others have the same issue with certain SSDs (Samsung drives seem to be the best bet)... not related to the patch_nvme.sh scripts. update: im ordering a pcie adapter since the m.2 port is not X4 Gen 3, but in the meanwhile, I have a new issue. When I boot into the nvme drive, it only does about 170 write and 750 read, while it does 750/750 read/write if i test it while being booted in another drive (ie, in windows, the drive is 750/750, and in sierra, its 750/750 if I boot in another drive, but its only 170/750 write read if I boot into it and test.) Current config, Hackr kext, no patches in config, and deleted ionvme kext. Link to comment Share on other sites More sharing options...
RehabMan Posted January 31, 2017 Share Posted January 31, 2017 Here was my mistake too. After removing original IONVMeFamily - system detects my Samsung 960 EVO! Thank you very much! If you do the class-code spoof, you will not need to remove IONVMeFamily.kext. Updates without the class-code spoof are challenging due to the need to remove IONVMeFamily.kext. Lazy people (those that don't implement the class-code spoof) will be greeted by a system that doesn't boot after updates... Link to comment Share on other sites More sharing options...
Tobinejumi Posted January 31, 2017 Share Posted January 31, 2017 If you do the class-code spoof, you will not need to remove IONVMeFamily.kext. Updates without the class-code spoof are challenging due to the need to remove IONVMeFamily.kext. Lazy people (those that don't implement the class-code spoof) will be greeted by a system that doesn't boot after updates... Yes, i see. Will try spoof method when find any free sata drive for win install on this system. Do not want to mix OSX/win boot partitions at one drive. Link to comment Share on other sites More sharing options...
michaielroberts Posted January 31, 2017 Share Posted January 31, 2017 Keep in mind ForceKextsToLoad uses UEFI path separators... that means backslash, not forward slash. But there are plenty of other opportunities for mistakes, and so far, you provide no files that show what you're doing... You should double check your patches to be sure they are correct. And don't use Clover Configurator... as you have discovered, it will scramble your config.plist content for no apparent reason. Best to use HackrNVMeFamily with class-code spoof. Is there a link to setting up the HackrNVMeFamily with class-code spoof? I am assuming it is here... https://www.tonymacx86.com/threads/guide-hackrnvmefamily-co-existence-with-ionvmefamily-using-class-code-spoof.210316/ I am a novice trying to learn...I was able to follow Mork's instructions easily IF someone has something similar to the above... thanks Link to comment Share on other sites More sharing options...
mfc88 Posted February 1, 2017 Share Posted February 1, 2017 Is there a link to setting up the HackrNVMeFamily with class-code spoof? I am assuming it is here... [removed tonymac link] I am a novice trying to learn...I was able to follow Mork's instructions easily IF someone has something similar to the above... thanks Check out my post... you should be able to follow it pretty easily: http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/page-37?do=findComment&comment=2343228 Two options for finding your NVME: You can use Pike's Clover patches (in your config.plist=>KernelToPatch) to see your NVMe drive (just copy/paste the 17+ patches): https://pikeralpha.wordpress.com/2016/06/27/nvmefamily-kext-bin-patch-data/ OR, generate a Rehabman's HackrNvmeFamily.kext (non-spoofed), place it in /System/Library/Extensions or /Library/Extensions (only one location, not both), remove IONVMEFamily.kext from S/L/E (copy/paste IONVMEFamily.kext to your desktop, delete it from S/L/E, then rebuild S/L/E caches via this terminal command, then after rebuilding the caches, reboot your computer): sudo touch /System/Library/Extensions && sudo kextcache -u / Once you've found the NVME ACPI location, you can remove Hackr.kext from S/L/E or L/E, replace IONVMEFamily.kext back to S/L/E, rebuild the caches again, then create a SSDT-Nvme-Pcc.aml and generate a spoofed Hackr.kext. You can then place that kext in S/L/E, L/E or mount your drive via Clover Configurator and paste the SSDT to EFI->Clover->ACPI->patched and the Hackr.kext to EFI->Clover->kexts->other. 1 Link to comment Share on other sites More sharing options...
RehabMan Posted February 1, 2017 Share Posted February 1, 2017 Is there a link to setting up the HackrNVMeFamily with class-code spoof? I am assuming it is here... https://www.tonymacx86.com/threads/guide-hackrnvmefamily-co-existence-with-ionvmefamily-using-class-code-spoof.210316/ I am a novice trying to learn...I was able to follow Mork's instructions easily IF someone has something similar to the above... thanks Yes... the class-code spoof guide is on tmx, linked from patch-nvme github README. 1 Link to comment Share on other sites More sharing options...
pianoguy Posted February 3, 2017 Share Posted February 3, 2017 ok, I installed the Patriot Hellfire on a pcie card, and the read speed jumped up to 2000 with a write speed of about 700. The problem is that its supposed to be about 2,700 read and about 1600 write. System profiler now shows link width as x4 (correctly) and GT/s as 8gb. What else can I try to increase speed? Link to comment Share on other sites More sharing options...
matthewshuster Posted February 5, 2017 Share Posted February 5, 2017 Hello, Please bear with me, as I am definitely new here. I am trying to install an ADATA SX8000 NVMe SSD on a 2015 MacBook Pro, using a Sintech adapter. I have run RehabMan's script, using the --spoof option, to create the kext files for 10.12.1—10.12.3. When I run a trial with the stock Apple SSD installed, the kext loads up perfectly fine, however with the non-Apple, ADATA SSD is installed, the kext fails to load on account of a permissions issue. I have been posting to PikerAlpha's blog as well. Any assistance you may be able to offer would be greatly appreciated. Thank you, Matthew 1 Link to comment Share on other sites More sharing options...
RehabMan Posted February 5, 2017 Share Posted February 5, 2017 Hello, Please bear with me, as I am definitely new here. I am trying to install an ADATA SX8000 NVMe SSD on a 2015 MacBook Pro, using a Sintech adapter. I have run RehabMan's script, using the --spoof option, to create the kext files for 10.12.1—10.12.3. When I run a trial with the stock Apple SSD installed, the kext loads up perfectly fine, however with the non-Apple, ADATA SSD is installed, the kext fails to load on account of a permissions issue. I have been posting to PikerAlpha's blog as well. Any assistance you may be able to offer would be greatly appreciated. Thank you, Matthew Novices can use a kext installer to install kexts, such as Kext Wizard. I tend to use Terminal: sudo cp -R KextToInstall.kext /Library/Extensions Note that once you install a kext with incorrect permissions, you must remove it before attempting to install properly: sudo rm -Rf /System/Library/Extensions/KextToRemove.kext # or sudo rm -Rf /Library/Extensions/KextToRemove.kext But you will not be able to implement the class-code spoof with a real Apple computer unless you use a hackintosh bootloader such as Clover. As far as I know, there is no way to inject/patch ACPI files in a real Mac using the Mac EFI firmware. Also, to install unsigned/mis-signed kexts, you will need to disable SIP with csrutil from recovery mode. 1 Link to comment Share on other sites More sharing options...
PMheart Posted February 5, 2017 Share Posted February 5, 2017 I think we can increase the version of HackrNVMeFamily by editing Info.plist but do nothing with spoof, or in other word, we don't touch IOKitPersonalities. Just like the AppleHDA Injector by Pike R. Alpha. After that, kernel will load HackrNVMeFamily instead of IONVMeFamily. This makes HackrNVMeFamily and IONVMeFamily co-exist but only HackrNVMeFamily will work. Actually only HackrNVMeFamily loads. A simple and great trick. Also. No need to take a mess on SIP. The dummy kext which is modified based on Apple's vanilla kext will load anyway. Like I did for AppleEFINVRAM to open-gate SIP. But it seems that we can't change a lot like the default settings of @RehabMan's script. We have to keep the original signature, etc. For otherwise will not work... So. @matthewshuster. Here is what you should do: 1. Remove anything you created in the past. Keep /S*/L*/E*/IONVMeFamily.kext untouched. 2. Refer to @RehabMan's "patch-nvme" repository to get a copy of his great "patch-nvme" archive. 3. Replace the original "patch_nvme.sh" with mine. 4. Run `./patch_nvme.sh your_expected_sys_ver` to create a patched kext. Note: You must replace my "patch_nvme.sh" firstly! e.g. ./patch_nvme.sh 10_12_3 5. Install the patched Kext by following @RehabMan's good method. Here is the modified "patch_nvme.sh": patch_nvme.sh.zip Edit: Seems to not work. Deprecated. Link to comment Share on other sites More sharing options...
joevt Posted February 5, 2017 Share Posted February 5, 2017 ok, I installed the Patriot Hellfire on a pcie card, and the read speed jumped up to 2000 with a write speed of about 700. The problem is that its supposed to be about 2,700 read and about 1600 write. System profiler now shows link width as x4 (correctly) and GT/s as 8gb. What else can I try to increase speed?I think 2000 means you're getting more than PCIe 2.0 x4 performance or PCIe 3.0 x2 performance since it would be nearly impossible to get 2GB/s with less than PCIe 3.0 x4. So you should be happy with that. The reason you don't see 2700 is probably because the benchmark software you use is different than whatever gave those expected numbers. You could try benchmarking in Windows. Link to comment Share on other sites More sharing options...
RehabMan Posted February 5, 2017 Share Posted February 5, 2017 I think we can increase the version of HackrNVMeFamily by editing Info.plist but do nothing with spoof, or in other word, we don't touch IOKitPersonalities. Just like the AppleHDA Injector by Pike R. Alpha. After that, kernel will load HackrNVMeFamily instead of IONVMeFamily. This makes HackrNVMeFamily and IONVMeFamily co-exist but only HackrNVMeFamily will work. Actually only HackrNVMeFamily loads. A simple and great trick. Also. No need to take a mess on SIP. The dummy kext which is modified based on Apple's vanilla kext will load anyway. Like I did for AppleEFINVRAM to open-gate SIP. But it seems that we can't change a lot like the default settings of @RehabMan's script. We have to keep the original signature, etc. For otherwise will not work... Did you actually test your theory? When I was coming up with a method for HackrNVMeFamily and IONVMeFamily co-existence, I found it didn't work... Both kexts were still probed, which lead to the panic problem... Link to comment Share on other sites More sharing options...
magnifico Posted February 5, 2017 Share Posted February 5, 2017 Did you actually test your theory? When I was coming up with a method for HackrNVMeFamily and IONVMeFamily co-existence, I found it didn't work... Both kexts were still probed, which lead to the panic problem... I'm very curious of his answer Link to comment Share on other sites More sharing options...
PMheart Posted February 6, 2017 Share Posted February 6, 2017 Did you actually test your theory? When I was coming up with a method for HackrNVMeFamily and IONVMeFamily co-existence, I found it didn't work... Both kexts were still probed, which lead to the panic problem... Why... IMHO the patched IONVMeFamily will be the same as AppleHDA Injector, that is the patched kext (999.99.9) will load before the vanilla one (lower version). Not tested IONVMeFamily but AppleEFINVRAM and AppleHDA work in this way. And also. It seems that the patched kext will load via /L*/E* or /S*/L*/E*, but InjectKext not. Your spoof idea will also work for InjectKext cuz you changed the IOPCIMatch. Alright. Deprecated... Link to comment Share on other sites More sharing options...
RehabMan Posted February 6, 2017 Share Posted February 6, 2017 Why... IMHO the patched IONVMeFamily will be the same as AppleHDA Injector, that is the patched kext (999.99.9) will load before the vanilla one (lower version). Not tested IONVMeFamily but AppleEFINVRAM and AppleHDA work in this way. And also. It seems that the patched kext will load via /L*/E* or /S*/L*/E*, but InjectKext not. Your spoof idea will also work for InjectKext cuz you changed the IOPCIMatch. Alright. Deprecated... In my testing, I was looking for a method that works in all scenarios (installed or injected). Eventually settled on the class-code spoof. It is bullet proof. Link to comment Share on other sites More sharing options...
PMheart Posted February 7, 2017 Share Posted February 7, 2017 In my testing, I was looking for a method that works in all scenarios (installed or injected). Eventually settled on the class-code spoof. It is bullet proof. Yep, but IMHO for real Macs we don't need InjectKext (hard to do so) and a legacy patched kext is enough... Link to comment Share on other sites More sharing options...
Passmore Posted February 7, 2017 Share Posted February 7, 2017 I'm really sorry as I know this question has probably been answered somewhere in this thread. I've read through as much of it as i can but haven't found it... I'm currently on 10.11.6 using a patched HackrNVMeFamily-10_11_6.kext, which i generated using rehabman's script (thank you so much to you, Pike R and anyone else involved). I think it's high time i upgrade to macOS Sierra, and i'm wondering what the safest way to do this upgrade is? I normally just do it with the app store these days, but would i need to upgrade the system, and then swap over the .kext without booting into the system, for the new one for Sierra? Or would i need to temporarily use the genericnvme kext again while i upgrade? Or can i use a sierra one now? Thanks a lot in advance for any guidance you can offer. D Link to comment Share on other sites More sharing options...
RehabMan Posted February 7, 2017 Share Posted February 7, 2017 Yep, but IMHO for real Macs we don't need InjectKext (hard to do so) and a legacy patched kext is enough... Yes. My method is focused on hackintosh, as is this site... I'm really sorry as I know this question has probably been answered somewhere in this thread. I've read through as much of it as i can but haven't found it... I'm currently on 10.11.6 using a patched HackrNVMeFamily-10_11_6.kext, which i generated using rehabman's script (thank you so much to you, Pike R and anyone else involved). I think it's high time i upgrade to macOS Sierra, and i'm wondering what the safest way to do this upgrade is? I normally just do it with the app store these days, but would i need to upgrade the system, and then swap over the .kext without booting into the system, for the new one for Sierra? Or would i need to temporarily use the genericnvme kext again while i upgrade? Or can i use a sierra one now? Thanks a lot in advance for any guidance you can offer. D Implement the class-code spoof prior to updating to Sierra. See patch-nvme README for links. 1 Link to comment Share on other sites More sharing options...
Passmore Posted February 7, 2017 Share Posted February 7, 2017 Implement the class-code spoof prior to updating to Sierra. See patch-nvme README for links. Thanks for the quick reply. I saw the class-code spoof thing, so if i do that i don't need to update my hackr nvme kext? As in, the one i made for 10.11.6 will work just fine in 10.12.4? EDIT: I notice that you tell everyone that they have to delete the IONVMeFamily.kext from S/L/E for this to work unless they use the class-code spoof... I've never deleted mine and the system seems to work fine? Link to comment Share on other sites More sharing options...
RehabMan Posted February 7, 2017 Share Posted February 7, 2017 Thanks for the quick reply. I saw the class-code spoof thing, so if i do that i don't need to update my hackr nvme kext? As in, the one i made for 10.11.6 will work just fine in 10.12.4? You should always keep HackrNVMeFamily in sync with the version of OSX/macOS you're running. 10.12.4 is not released. I have used 10.11.6 version with 10.12.3 and it worked. That configuration should be considered only for short-term use... Link to comment Share on other sites More sharing options...
Passmore Posted February 7, 2017 Share Posted February 7, 2017 You should always keep HackrNVMeFamily in sync with the version of OSX/macOS you're running. 10.12.4 is not released. I have used 10.11.6 version with 10.12.3 and it worked. That configuration should be considered only for short-term use... Okay, gotcha. Thanks a lot for all your work and help. FINAL QUESTION I SWEAR.... Did you see my edit? Quoted below EDIT: I notice that you tell everyone that they have to delete the IONVMeFamily.kext from S/L/E for this to work unless they use the class-code spoof... I've never deleted mine and the system seems to work fine?+ Link to comment Share on other sites More sharing options...
RehabMan Posted February 7, 2017 Share Posted February 7, 2017 EDIT: I notice that you tell everyone that they have to delete the IONVMeFamily.kext from S/L/E for this to work unless they use the class-code spoof... I've never deleted mine and the system seems to work fine? Must delete IONVMeFamily.kext when using HackrNVMeFamily.kext without class-code spoof in two scenarios: - 10.12.x OR - 10.11.x with Samsung 960 EVO (perhaps others with device-id 144d:a804) Link to comment Share on other sites More sharing options...
Passmore Posted February 7, 2017 Share Posted February 7, 2017 The final piece of the puzzle! Thanks a lot RehabMan. I'm using a 950pro, sadly ordered just before the 960 upgrade came out. Link to comment Share on other sites More sharing options...
RehabMan Posted February 7, 2017 Share Posted February 7, 2017 The final piece of the puzzle! Thanks a lot RehabMan. I'm using a 950pro, sadly ordered just before the 960 upgrade came out. Note: 960 EVO is not a 950 Pro "upgrade". Link to comment Share on other sites More sharing options...
Recommended Posts