Contribute
Register

[Guide] HackrNVMeFamily co-existence with IONVMeFamily using class-code spoof

Status
Not open for further replies.
Hi, I'm not sure what I'm missing or whether mine is a special case, but I did this on multiple systems, and this ASUS X99 Deluxe II is hard..

I have the spoofed 10_12_3 kext in Other.
I have the DSM clover patch in place

BIOS Device Name: \_SB.PCI0.BR2D.H000
Location Path:
PCIROOT(0)#PCI(1C00)#PCI(0000)
ACPI(_SB_)#ACPI(PCI0)#ACPI(BR2D)#ACPI(H000)

If anyone could tell me, or point in the right direction, what to change, I'd be very grateful!

As always, thank you Rehab and the community!

PS: If anything from IOReg is need, or anything else, let me know! I can't / don't know where to find info on this in IOReg (br2d searches nothing)
 

Attachments

  • IMG_20170224_171330.jpg
    IMG_20170224_171330.jpg
    8 MB · Views: 117
  • IMG_20170224_200342.jpg
    IMG_20170224_200342.jpg
    6.6 MB · Views: 112
  • CLOVER.zip
    3.4 MB · Views: 86
Hi, I'm not sure what I'm missing or whether mine is a special case, but I did this on multiple systems, and this ASUS X99 Deluxe II is hard..

I have the spoofed 10_12_3 kext in Other.
I have the DSM clover patch in place

BIOS Device Name: \_SB.PCI0.BR2D.H000
Location Path:
PCIROOT(0)#PCI(1C00)#PCI(0000)
ACPI(_SB_)#ACPI(PCI0)#ACPI(BR2D)#ACPI(H000)

If anyone could tell me, or point in the right direction, what to change, I'd be very grateful!

As always, thank you Rehab and the community!

PS: If anything from IOReg is need, or anything else, let me know! I can't / don't know where to find info on this in IOReg (br2d searches nothing)

Second image implies you have two NVMe SSDs.
You have no code for the P0P4 one...
Also, keep in mind your file is named SSDT-NVMe-Pcc.aml.aml
It is a little bit of a strange file name choice, but probably still works... you should verify by looking at your Clover log.
 
Excuse the confusion, I could've cleared that up by saying that the second pic shows a browser on the left with the first post, the right is my own device manager.

I renamed and restarted, to no avail.

Anything else that could bother this setup?

It my profile system, GTX Titan PCI-E16_1, and PCI-E16_5 populated by FireWire controller. SM961 512GB is in the M.2 slot and recognised in the BIOS (Windows is installed on it for the time being).
 
Excuse the confusion, I could've cleared that up by saying that the second pic shows a browser on the left with the first post, the right is my own device manager.

I renamed and restarted, to no avail.

Anything else that could bother this setup?

It my profile system, GTX Titan PCI-E16_1, and PCI-E16_5 populated by FireWire controller. SM961 512GB is in the M.2 slot and recognised in the BIOS (Windows is installed on it for the time being).

Attach ioreg as ZIP: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

Attach EFI/Clover folder as ZIP (press F4 at main Clover screen before collecting). Please eliminate 'themes' directory. Provide only EFI/Clover, not the entire EFI folder.

Attach output of (in Terminal):
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Compress all files as ZIP. Do not use external links. Attach all files using site attachments only.
 
Here you go!

kextcache output:
Code:
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext

kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleGraphicsDevicePolicy.kext

KernelCache ID: 3B2E95194DCFC443EE964555B6528DAE

symlink("/System/Library/PrelinkedKernels/prelinkedkernel", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 17 (File exists) <createPrelinkedKernel 2795>
 

Attachments

  • IOReg.zip
    998.3 KB · Views: 95
  • CLOVER.zip
    3.5 MB · Views: 86
Here you go!

kextcache output:
Code:
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext

kext-dev-mode allowing invalid signature -67030 0xFFFFFFFFFFFEFA2A for kext AppleGraphicsDevicePolicy.kext

KernelCache ID: 3B2E95194DCFC443EE964555B6528DAE

symlink("/System/Library/PrelinkedKernels/prelinkedkernel", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 17 (File exists) <createPrelinkedKernel 2795>

The SSDT-NVMe-Pcc.aml is working... it is injecting the properties as expected at _SB.PCI0.BR2D.H000. Look at device-properties at that path in IOACPIPlane in ioreg and you'll see it.

But there is no device at that address, as if the NVMe drive is not installed there. If you look at the nodes under PCI0 in IOService, you will not see any NVMe device...

Might be due to your use of npci=0x3000 in config.plist/Boot/Arguments.

Also note that you have an invalid ACPI setup. You're using the _OSI->XOSI patch but without SSDT-XOSI.aml. As a result, all calls to _OSI will cause ACPI abort.
 
Last edited:
npci=0x2000 results in no difference.

I took this EFI from one I used in two other ASUS X99 systems (X99-A II and X99-E WS/3.1), which both run NVME SSD's without trouble. Also, look at this thread the device manager has a more typical BIOS name for the SSD, rather than H000 (I think I always saw PXSX on other systems, not totally sure).

Disabling the OSI patch didn't change anything.
 
npci=0x2000 results in no difference.

I took this EFI from one I used in two other ASUS X99 systems (X99-A II and X99-E WS/3.1), which both run NVME SSD's without trouble. Also, look at this thread the device manager has a more typical BIOS name for the SSD, rather than H000 (I think I always saw PXSX on other systems, not totally sure).

Disabling the OSI patch didn't change anything.

The ACPI path will always vary depending on hardware/BIOS.
You should probably enable the _OSI->XOSI patch and add SSDT-XOSI.aml.
You should also try without npci kernel flag.
Your problem (NVMe device not showing on PCIe bus) is unrelated to this thread...
 
Very nice guide again Rehabman. Thanks.

My question is, after following the guide, what happens to all the NVME KextToPatch Entries we had in Clover? Should we remove them all?
 
Very nice guide again Rehabman. Thanks.

My question is, after following the guide, what happens to all the NVME KextToPatch Entries we had in Clover? Should we remove them all?

No need for KextsToPatch as far as block size adjustment for IONVMeFamily...
This guide never uses them at all...
 
Status
Not open for further replies.
Back
Top