RehabMan Posted January 3, 2017 Share Posted January 3, 2017 Next, you'll want to select the leaf node (H000@0) and write this "class-code" down (we won't be copying it exactly, instead, we'll be overwriting this first value with a spoofed value so that IONVMEFamily.ktext doesn't load during the boot process): OEM class-code => <02 08 01 00> Spoofed class-code => <FF 08 01 00> An NVMe drive will always have (essentially) the same class code <02 08 01 00>. And we will always be injecting the same spoofed code <ff 08 01 00>. So... there is no need to write anything down... These values are already known. Link to comment Share on other sites More sharing options...
mfc88 Posted January 3, 2017 Share Posted January 3, 2017 An NVMe drive will always have (essentially) the same class code <02 08 01 00>. And we will always be injecting the same spoofed code <ff 08 01 00>. So... there is no need to write anything down... These values are already known. Thanks, will update the guide to include this information (wasn't 100% sure and didn't want to overstep my knowledge boundary) Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 thanks a lot for your helpI followed all your guide step by step but it doesn't work I'm giving upI was thinking something....As I use "NVMeGeneric" May be my location is falseBut if I do not use my nvme does not appear in IORegI started on my standard SSD (not mvme) with no "NVMeGeneric.kext" in cloverAnd ioreg does not see the nvme storage and no ACPI on PCI0 Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 thanks a lot for your help I followed all your guide step by step but it doesn't work I'm giving up I was thinking something.... As I use "NVMeGeneric" May be my location is false But if I do not use my nvme does not appear in IOReg I started on my standard SSD (not mvme) with no "NVMeGeneric.kext" in clover And ioreg does not see the nvme storage and no ACPI on PCI0 Attach ioreg (IORegistryExplorer 2.1). Attach EFI/Clover (eg. with the SSDT you created, and also don't forget to press F4 to populate ACPI/origin). You can omit 'themes' to save space. Attach image from Windows Device Manager (as per my guide). Link to comment Share on other sites More sharing options...
mfc88 Posted January 3, 2017 Share Posted January 3, 2017 thanks a lot for your help I followed all your guide step by step but it doesn't work I'm giving up I was thinking something.... As I use "NVMeGeneric" May be my location is false But if I do not use my nvme does not appear in IOReg I started on my standard SSD (not mvme) with no "NVMeGeneric.kext" in clover And ioreg does not see the nvme storage and no ACPI on PCI0 If this screen shot you've posted is the correct ssd: Intel NVMe 600p Series SSDPEKKW256G7X1, then it's located at SB.PCI0.RP01.PXSX This is what your SSDT should look like: // Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0) { External(_SB.PCI0.RP01.PXSX, DeviceObj) Method(_SB.PCI0.RP01.PXSX._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "class-code", Buffer() { 0xFF, 0x08, 0x01, 0x00 }, }) } } //EOF Compile and save the SSDT per the guide above, then place it inside: EFI->CLOVER->ACPI->patched! If you're not using a modified DSDT.aml in your EFI->CLOVER->ACPI->patched folder, you can use Rehabman's _DSM Clover DSDT patch (open your config.plist in Clover Configurator->ACPI->DSDT->Patches (you should see an empty table located at the very top of window inside the "ACPI" tab) Add an entry for _DSM->XDSM by clicking the "+" sign: Comment: Change all _DSM to XDSM Find: <5f44534d> Replace: <5844534d> Generate a hackrnvmefamily.kext using Rehabman's nvmepatch. Then place the generated kext inside: EFI->CLOVER->KEXTS->OTHER Reboot your computer and boot into the primary drive. Open up IOReg and see if you can find the Intel NVMe. Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 Attach ioreg (IORegistryExplorer 2.1). Attach EFI/Clover (eg. with the SSDT you created, and also don't forget to press F4 to populate ACPI/origin). You can omit 'themes' to save space. Attach image from Windows Device Manager (as per my guide). Unfortunately I don't have windows 10 ... Just an old installation of wondows7 (which I never use) And there is no nvme location path If this screen shot you've posted is the correct ssd: Intel NVMe 600p Series SSDPEKKW256G7X1, then it's located at SB.PCI0.RP01.PXSX Only with "NVMeGeneric.kext" without nothing appears config.zip Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 If this screen shot you've posted is the correct ssd: Intel NVMe 600p Series SSDPEKKW256G7X1, then it's located at SB.PCI0.RP01.PXSX This is what your SSDT should look like: // Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0) { External(_SB.PCI0.RP01.PXSX, DeviceObj) Method(_SB.PCI0.RP01.PXSX._DSM, 4) { If (!Arg2) { Return (Buffer() { 0x03 } ) } Return(Package() { "class-code", Buffer() { 0xFF, 0x08, 0x01, 0x00 }, }) } } //EOF Compile and save the SSDT per the guide above, then place it inside: EFI->CLOVER->ACPI->patched! If you're not using a modified DSDT.aml in your EFI->Clover->patched folder, you can use Rehabman's _DSM Clover DSDT patch (open your config.plist in Clover Configurator->ACPI->DSDT->Patches (you should see an empty table located at the very top of window inside the "ACPI" tab) Add an entry for _DSM->XDSM by clicking the "+" sign: Comment: Change all _DSM to XDSM Find: <5f44534d> Replace: <5844534d> Generate a hackrnvmefamily.kext using Rehabman's nvmepatch. Then place the generated kext inside: EFI->CLOVER->KEXTS->OTHER Reboot your computer and boot into the primary drive. Open up IOReg and see if you can find the Intel NVMe. Some further notes:- if config.plist/SystemParameters/InjectKexts=Detect (typical), and FakeSMC.kext is installed to the system volume (/L/E or /S/L/E), then the kexts in EFI/Clover/kexts/Other will not be injected. In that case, must install HackrNVMeFamily to /S/L/E or /L/E. - must remove NVMeGeneric.kext - must generate HackrNVMeFamily with --spoof (assuming SSDT is correct, no _DSM method conflicts, etc) - if you're using config.plist/ACPI/SortedOrder, you must add the SSDT to the list In other words, there are many opportunities for mistakes... Unfortunately I don't have windows 10 ... Just an old installation of wondows7 (which I never use) And there is no nvme location path Only with "NVMeGeneric.kext" without nothing appears You have no files in ACPI/patched.You have no _DSM->XDSM patch in config.plist/ACPI/DSDT/Patches. There is no HackrNVMeFamily in EFI/Clover/kexts. Link to comment Share on other sites More sharing options...
mfc88 Posted January 3, 2017 Share Posted January 3, 2017 Unfortunately I don't have windows 10 ... Just an old installation of wondows7 (which I never use) And there is no nvme location path Only with "NVMeGeneric.kext" without nothing appears Fix these issues, then reupload the config files if it doesn't work. - Missing SSDT patch in EFI->CLOVER->ACPI->patched - Missing _DSM patch in conflig.plist->ACPI->DSDT->Patches - Missing hackrnvmefamily.kext inside Some further notes: - if config.plist/SystemParameters/InjectKexts=Detect (typical), and FakeSMC.kext is installed to the system volume (/L/E or /S/L/E), then the kexts in EFI/Clover/kexts/Other will not be injected. In that case, must install HackrNVMeFamily to /S/L/E or /L/E. - must remove NVMeGeneric.kext - must generate HackrNVMeFamily with --spoof (assuming SSDT is correct, no _DSM method conflicts, etc) - if you're using config.plist/ACPI/SortedOrder, you must add the SSDT to the list In other words, there are many opportunities for mistakes... You have no files in ACPI/patched. You have no _DSM->XDSM patch in config.plist/ACPI/DSDT/Patches. There is no HackrNVMeFamily in EFI/Clover/kexts. Bah! Ya beat me to it! Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 Some further notes: - if config.plist/SystemParameters/InjectKexts=Detect (typical), and FakeSMC.kext is installed to the system volume (/L/E or /S/L/E), then the kexts in EFI/Clover/kexts/Other will not be injected. In that case, must install HackrNVMeFamily to /S/L/E or /L/E. - must remove NVMeGeneric.kext - must generate HackrNVMeFamily with --spoof (assuming SSDT is correct, no _DSM method conflicts, etc) - if you're using config.plist/ACPI/SortedOrder, you must add the SSDT to the list In other words, there are many opportunities for mistakes... You have no files in ACPI/patched. You have no _DSM->XDSM patch in config.plist/ACPI/DSDT/Patches. There is no HackrNVMeFamily in EFI/Clover/kext I sent you my configuration without anything installed or patched Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 I sent you my configuration without anything installed or patched You need to show us what you're attempting. Your scenario is very easy... - need to add the SSDT into ACPI/patched. - need to add the patch for _DSM->XDSM. - need to generate HackrNVMeFamily with --spoof. - need to install the HackrNVMeFamily kext. Even in the ioreg without NVMeGeneric.kext it is easy to see your SSD is at _SB.PCI0.RP01.PXSX (it is the Intel device, 8086:f1a5 with class-code <02 08 01 00>). Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 You need to show us what you're attempting. Your scenario is very easy... - need to add the SSDT into ACPI/patched. - need to add the patch for _DSM->XDSM. - need to generate HackrNVMeFamily with --spoof. - need to install the HackrNVMeFamily kext. Even in the ioreg without NVMeGeneric.kext it is easy to see your SSD is at _SB.PCI0.RP01.PXSX (it is the Intel device, 8086:f1a5 with class-code <02 08 01 00>). I did everything and it did not work ... be indulgent For you what seems simple is difficult for me I have a bad English for all that is techinique And I'm not coder Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 I did everything and it did not work ... be indulgent For you what seems simple is difficult for me I have a bad English for all that is techinique And I'm not coder You made a mistake. Attach files that show what you did. Attach ioreg (IORegistryExplorer 2.1). Attach EFI/Clover (eg. with the SSDT you created, and also don't forget to press F4 to populate ACPI/origin). You can omit 'themes' to save space. Attach output from: sudo kextcache -i / Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 You made a mistake. Attach files that show what you did. As it did not work I deleted everything I will start all over again the guide and I send you this _SB.PCI0.RP01.PXSX I think is false Because without NVMeGeneric.kext I do not see my nvme in IOreg... (i use a crucial M4 SSD for test) Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 As it did not work I deleted everything I will start all over again the guide and I send you this OK. Good plan. _SB.PCI0.RP01.PXSX I think is false Wrong. It is easy to see in your ioreg: Because without NVMeGeneric.kext I do not see my nvme in IOreg... Your mistake. You cannot expect to search for "storage" and find the NVMe without the drivers loaded. But the device is still there at _SB.PCI0.RP01.PXSX as I show in the image above... Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 Your mistake. You cannot expect to search for "storage" and find the NVMe without the drivers loaded. But the device is still there at _SB.PCI0.RP01.PXSX as I show in the image above... ok I found nvme.... so Later when I finish.... Link to comment Share on other sites More sharing options...
magnifico Posted January 3, 2017 Share Posted January 3, 2017 @ jeanchrijaz follow step by step what he is saying Racer, he's a very humble person, will help 100%, but you have to follow very carefully Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 I followed step by step guide....make a ssdt with MaciASinsalled HackrNVMeFamily in S/L/E with Kext Wizardadd arguments in clover....and nothing works.... raaaah !!!!!! May be a compatibility problem with my hardware?• motherboard : Asus Z97-Pro (Wi-Fi ac)• processor : i7 4770k• ram : crucial ballitix sport @1600Mhz (32Go)• Wi-fi/blutooth card : BCM94360cd on PCI adapter (no use Asus card)• video card : nvidia GTX680 (for full compatibility with adode premiere)• external sound card on usb : M-audio fast track C600 (not use internal realteak ACL1150)OSX El Capitan 10.11.6 (15G1212)Or else I'm verry faulty..... (Probably)I do not know why it doesn't work patched.zip Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 I followed step by step guide.... make a ssdt with MaciAS insalled HackrNVMeFamily in S/L/E with Kext Wizard add arguments in clover.... and nothing works.... raaaah !!!!!! May be a compatibility problem with my hardware? No... Failure to follow instructions. You have a _DSM method at _SB.PCI0.RP01.PXSX (in your native DSDT), but failed to add the _DSM->XDSM patch to config.plist/ACPI/DSDT/Patches. As a result, your SSDT for spoofing the class-code is rejected. Note: No need to specify SortedOrder in your scenario (but it is currently not hurting your efforts... just not needed) Also note: You forgot to provide ioreg. Also... another mistake. HackrNVMeFamily-10_11_6_sec2016-003.kext was not generated with the --spoof option. Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 No... Failure to follow instructions. You have a _DSM method at _SB.PCI0.RP01.PXSX (in your native DSDT), but failed to add the _DSM->XDSM patch to config.plist/ACPI/DSDT/Patches. As a result, your SSDT for spoofing the class-code is rejected. Note: No need to specify SortedOrder in your scenario (but it is currently not hurting your efforts... just not needed) Also note: You forgot to provide ioreg. Also... another mistake. HackrNVMeFamily-10_11_6_sec2016-003.kext was not generated with the --spoof option. heu.... I didn't understand everything It gets too technical for me lol Instead of making video editing I will learn to code Mac Pro.ioreg.zip Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 heu.... I didn't understand everything It gets too technical for me lol You should try to correct the things identified previously. Then see if it works... (be sure to look at your ioreg to check for spoofed class-code etc.) Right now you have HackrNVMeFamily installed that was without the --spoof code. And you have failed to inject the bogus class-code (due to conflicting _DSM methods). And you are on 10.11.6... Which means it should actually be working. My conclusion: Your SSD is not compatible with Pike's patches. But you could try with the spoofing just to see. Note: Your mistake with _DSM is that you added it to config.plist/KernelAndKextPatches/KextsToPatch instead of config.plist/ACPI/DSDT/Patches. That patch is an ACPI patch, not a kext patch. Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 You should try to correct the things identified previously. Then see if it works... (be sure to look at your ioreg to check for spoofed class-code etc.) Right now you have HackrNVMeFamily installed that was without the --spoof code. And you have failed to inject the bogus class-code (due to conflicting _DSM methods). And you are on 10.11.6... Which means it should actually be working. My conclusion: Your SSD is not compatible with Pike's patches. But you could try with the spoofing just to see. Note: Your mistake with _DSM is that you added it to config.plist/KernelAndKextPatches/KextsToPatch instead of config.plist/ACPI/DSDT/Patches. That patch is an ACPI patch, not a kext patch. I corrected but it still does not work thinking no worries with I bought this intel nvme I will stay on my 850 pro I prefer to stay on el capitan because my external sound card has worries with sierra (I have already tested) Give me the phone number of pike I will call him so that he finds me a solution lol Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 Give me the phone number of pike I will call him so that he finds me a solution lol He has a published email address. But yes, fact is some devices work with Pike's NVMe patches. Some don't. Samsung has good drives that are compatible. Little reason to take risks on other unproven brands. Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 He has a published email address. But yes, fact is some devices work with Pike's NVMe patches. Some don't. Samsung has good drives that are compatible. Little reason to take risks on other unproven brands. I was joking for his phone number I will wait before buying a samsung In france they are expensive yet ($ 230) With the risk that it does not work on El capitan Link to comment Share on other sites More sharing options...
RehabMan Posted January 3, 2017 Share Posted January 3, 2017 I was joking for his phone number I will wait before buying a samsung In france they are expensive yet ($ 230) With the risk that it does not work on El capitan I have used a 950 Pro with 10.11.x and 10.12.x. It works. $230 would be a good deal if it is 512gb (probably that is for 256gb). There are some new EVO NVMe (950 EVO?) from Samsung. Haven't read the reviews/details yet though. Link to comment Share on other sites More sharing options...
jeanchrijaz Posted January 3, 2017 Share Posted January 3, 2017 I have used a 950 Pro with 10.11.x and 10.12.x. It works. $230 would be a good deal if it is 512gb (probably that is for 256gb). There are some new EVO NVMe (950 EVO?) from Samsung. Haven't read the reviews/details yet though. yes samsung 950 pro $ 230 for 256go... and $420 for 512go just one last question.... is it normal? <00 04 06 00> for class code And I can not re open my SSDT-NVMe-Pcc Link to comment Share on other sites More sharing options...
Recommended Posts