RehabMan Posted November 21, 2016 Share Posted November 21, 2016 @Racer, shouldn't it be "class-code", Buffer() { 0x00,0xff, 0x08, 0x01 }?? No. Post #569 is correct. Link to comment Share on other sites More sharing options...
magnifico Posted November 21, 2016 Share Posted November 21, 2016 Yes. Of course you will need to code a correct SSDT to inject the bogus class-code that matches. so , i need also a SSDT ? Link to comment Share on other sites More sharing options...
RehabMan Posted November 21, 2016 Share Posted November 21, 2016 so , i need also a SSDT ? Read post #569. Link to comment Share on other sites More sharing options...
lihuachuan Posted November 22, 2016 Share Posted November 22, 2016 Read post #569. Hi,RehabMan. I guess HackrNVMeFamily uses IONameMatch instead of IOPCIClassMatch .We need only a SSDT. Is it possible? Link to comment Share on other sites More sharing options...
DoZe Posted November 22, 2016 Share Posted November 22, 2016 @Jsl : Same problem... my NVMe is CX2-8B512-Q11 NVMe LITEON 512GB Clover r3923 Osx 10.2.1 (16B2657) in 10.2.1, if I put the modded kext or IONVMeFamily (patched by clover) into CLOVER/Kext/Other, it won't load, need to be in S/L/E and finally my NVMe is..... Ven_14A4 & Dev_2200 3 days on this problem : No result... Link to comment Share on other sites More sharing options...
jsl Posted November 22, 2016 Share Posted November 22, 2016 @Jsl : Same problem... my NVMe is CX2-8B512-Q11 NVMe LITEON 512GB Clover r3923 Osx 10.2.1 (16B2657) in 10.2.1, if I put the modded kext or IONVMeFamily (patched by clover) into CLOVER/Kext/Other, it won't load, need to be in S/L/E and finally my NVMe is..... Ven_14A4 & Dev_2200 3 days on this problem : No result... 1. Have you edited DevID in patch_nvme.sh to yours ? 2. Was your HackrNVMeFamily-10_12_1.kext loaded ? 3. Can you post your IORegistryExplorer 2.1 output ? 4. What is MD5 for your HackrNVMeFamily-10_12_1.kext's binary ? I need these info for comparison and try to fix it as soon as possible. Link to comment Share on other sites More sharing options...
darthsian Posted November 22, 2016 Share Posted November 22, 2016 I managed to come up with a method that allows vanilla IONVMeFamily.kext to co-exist with HackrNVMeFamily*.kext. The trick is to spoof the class-code such that IONVMeFamily.kext IOPCIClassMatch doesn't match. Hi RehabMan, I create SSDT, change the IOPCIClassMatch in HackrNVMeFamily's Info.plist and return IONVMeFamily.kext to S/L/E but NVMe disks don't shows up. I have two NVMe disks, can you please look into my SSDT if I create it right way? Im using MaciASL with ACPI 6.1. Thanks. EDIT: There must be something wrong with my SSDT, when I use my SSDT without IONVMeFamily.kext in S/L/E, NVMe disks works even when I don't change the IOPCIClassMatch in HackrNVMeFamily's Info.plist. So bogus class-code is not injected. Here is my ioreg and SSDT I created. SPARKpro.zip SSDT-NVME-BOGUS.aml.zip Link to comment Share on other sites More sharing options...
RehabMan Posted November 22, 2016 Share Posted November 22, 2016 Hi,RehabMan. I guess HackrNVMeFamily uses [/size]IONameMatch [/size]instead of [/size]IOPCIClassMatch .We need only a SSDT. Is it possible?[/size] Using IONameMatch is possible (read the script itself). But the script, as in github, uses IOPCIClassMatch. I don't know what you mean by "We need only a SSDT". If that is a statement, it is wrong. If that is a question, the answer is "No... read README at patch-nvme github". Hi RehabMan, I create SSDT, change the IOPCIClassMatch in HackrNVMeFamily's Info.plist and return IONVMeFamily.kext to S/L/E but NVMe disks don't shows up. I have two NVMe disks, can you please look into my SSDT if I create it right way? Im using MaciASL with ACPI 6.1. Thanks. EDIT: There must be something wrong with my SSDT, when I use my SSDT without IONVMeFamily.kext in S/L/E, NVMe disks works even when I don't change the IOPCIClassMatch in HackrNVMeFamily's Info.plist. So bogus class-code is not injected. Here is my ioreg and SSDT I created. Your Clover bootlog (extracted from ioreg) shows that the SSDT is not installed in ACPI/patched. 4:017 0:000 Start: Processing Patched AML(s): Unsorted 4:017 0:000 Inserting SSDT.aml from EFI\CLOVER\ACPI\patched ... Success 4:022 0:005 End: Processing Patched AML(s) Link to comment Share on other sites More sharing options...
darthsian Posted November 22, 2016 Share Posted November 22, 2016 Your Clover bootlog (extracted from ioreg) shows that the SSDT is not installed in ACPI/patched. 4:017 0:000 Start: Processing Patched AML(s): Unsorted 4:017 0:000 Inserting SSDT.aml from EFI\CLOVER\ACPI\patched ... Success 4:022 0:005 End: Processing Patched AML(s) Yeah, i saved ioreg without SSDT installed... but when i have it installed, it is inserted with success... but bogus class-code is not injected. My SSDT looks ok to you? Link to comment Share on other sites More sharing options...
RehabMan Posted November 22, 2016 Share Posted November 22, 2016 Yeah, i saved ioreg without SSDT installed... but when i have it installed, it is inserted with success... but bogus class-code is not injected. My SSDT looks ok to you? You must provide files that actually correspond to what you're doing. Also, need EFI/Clover (don't forget to press F4 so ACPI/origin is populated). Link to comment Share on other sites More sharing options...
darthsian Posted November 22, 2016 Share Posted November 22, 2016 You must provide files that actually correspond to what you're doing. Also, need EFI/Clover (don't forget to press F4 so ACPI/origin is populated). Ok, but i cant boot with IONVMeFamily.kext in S/L/E so i provide requested files without it installed. Im out from computer now so i send it asap. Thanks. Link to comment Share on other sites More sharing options...
RehabMan Posted November 22, 2016 Share Posted November 22, 2016 Ok, but i cant boot with IONVMeFamily.kext in S/L/E so i provide requested files without it installed. Im out from computer now so i send it asap. Thanks. IONVMeFamily.kext is irrelevant. Keep it removed until you resolve the injection issue. You can also inject the standard class-code and verify the injection is done via ioreg:IOACPIPlane. Once you have it working, you can put the modified HackrNVMeFamily in place and enable the bogus class-code.. Without seeing your files, based on what you provided so far, I'm guessing you have a _DSM already at each of those paths in OEM ACPI, but did not remove it... duplicate _DSM means first one wins. I use a config.plist patch to rename all _DSM -> XDSM, such that it is not a problem. Link to comment Share on other sites More sharing options...
lihuachuan Posted November 22, 2016 Share Posted November 22, 2016 Using IONameMatch is possible (read the script itself). But the script, as in github, uses IOPCIClassMatch. I don't know what you mean by "We need only a SSDT". If that is a statement, it is wrong. If that is a question, the answer is "No... read README at patch-nvme github". Your Clover bootlog (extracted from ioreg) shows that the SSDT is not installed in ACPI/patched. 4:017 0:000 Start: Processing Patched AML(s): Unsorted 4:017 0:000 Inserting SSDT.aml from EFI\CLOVER\ACPI\patched ... Success 4:022 0:005 End: Processing Patched AML(s) It need only a SSDT to finish co-exsit in CLOVER. And changing the IOPCIClassMatch is unnecessary in HackrNVMeFamily. Link to comment Share on other sites More sharing options...
darthsian Posted November 22, 2016 Share Posted November 22, 2016 IONVMeFamily.kext is irrelevant. Keep it removed until you resolve the injection issue. You can also inject the standard class-code and verify the injection is done via ioreg:IOACPIPlane. Once you have it working, you can put the modified HackrNVMeFamily in place and enable the bogus class-code.. Without seeing your files, based on what you provided so far, I'm guessing you have a _DSM already at each of those paths in OEM ACPI, but did not remove it... duplicate _DSM means first one wins. I use a config.plist patch to rename all _DSM -> XDSM, such that it is not a problem. You're right, RehabMan, i have _DSM on those paths in DSDT, so i add bogus class-code right in DSDT and now all works. Thanks. Link to comment Share on other sites More sharing options...
RehabMan Posted November 22, 2016 Share Posted November 22, 2016 It need only a SSDT to finish co-exsit in CLOVER. And changing the IOPCIClassMatch is unnecessary in HackrNVMeFamily. No. A working SSDT to inject the bogus class-code will prevent HackrNVMeFamily from loading. You're right, RehabMan, i have _DSM on those paths in DSDT, so i add bogus class-code right in DSDT and now all works. Thanks. Yes, I see now in your ioreg/IOACPIPlane that you're using a _DSM method (that you added) to inject APPL,slot-name, model, name, device-id, etc. Not sure why you're injecting device-id, but ok... In the case you already have added a _DSM method to your DSDT (should really be done in an SSDT), adding the "class-code" injection to it is required. Link to comment Share on other sites More sharing options...
kingkong89 Posted November 23, 2016 Share Posted November 23, 2016 Following Mork vom Ork's steps in post #8, using R.Alpha's IONVMeFamily.kext. All work perfectly! Big Thank to Mori and R.Alpha!!! Link to comment Share on other sites More sharing options...
jsl Posted November 23, 2016 Share Posted November 23, 2016 Following Mork vom Ork's steps in post #8, using R.Alpha's IONVMeFamily.kext. All work perfectly! Big Thank to Mori and R.Alpha!!! May I know which model of your NVMe SSD was used ? Is it a Samsung 950 or others ? Link to comment Share on other sites More sharing options...
lihuachuan Posted November 23, 2016 Share Posted November 23, 2016 No. A working SSDT to inject the bogus class-code will prevent HackrNVMeFamily from loading. Yes, I see now in your ioreg/IOACPIPlane that you're using a _DSM method (that you added) to inject APPL,slot-name, model, name, device-id, etc. Not sure why you're injecting device-id, but ok... In the case you already have added a _DSM method to your DSDT (should really be done in an SSDT), adding the "class-code" injection to it is required. Thanks for you work. Link to comment Share on other sites More sharing options...
DoZe Posted November 23, 2016 Share Posted November 23, 2016 1. Have you edited DevID in patch_nvme.sh to yours ? Yes, i did it too, but no result. 2. Was your HackrNVMeFamily-10_12_1.kext loaded ? Curiously, if i put it in Clover/kext/Other, like IONVMEFamily: NO load, if i put him into S/L/E (of course : rebuild cache,etc...) : YES And if i try to patch via Clover : NO load too. 3. Can you post your IORegistryExplorer 2.1 output ? i'll try as soon as possible 4. What is MD5 for your HackrNVMeFamily-10_12_1.kext's binary ? Same problem, the MD5 is not good I need these info for comparison and try to fix it as soon as possible. Link to comment Share on other sites More sharing options...
jsl Posted November 23, 2016 Share Posted November 23, 2016 1. Have you edited DevID in patch_nvme.sh to yours ? Yes, i did it too, but no result. 2. Was your HackrNVMeFamily-10_12_1.kext loaded ? Curiously, if i put it in Clover/kext/Other, like IONVMEFamily: NO load, if i put him into S/L/E (of course : rebuild cache,etc...) : YES And if i try to patch via Clover : NO load too. 3. Can you post your IORegistryExplorer 2.1 output ? i'll try as soon as possible 4. What is MD5 for your HackrNVMeFamily-10_12_1.kext's binary ? Same problem, the MD5 is not good I need these info for comparison and try to fix it as soon as possible. May I suggest: 1. install HackrNVMeFamily-10_12_1.kext in /System/Library/Extensions 2. Make sure it was loaded and shown in "about this mackintosh"->Extensions 3. check whether its MD5 is 291b7e63764598ac8052c8a363964cb8 or not 4. If it is the same MD5, please show your IORegistryExplorer 2.1 output Link to comment Share on other sites More sharing options...
RehabMan Posted November 23, 2016 Share Posted November 23, 2016 May I suggest: 1. install HackrNVMeFamily-10_12_1.kext in /System/Library/Extensions 2. Make sure it was loaded and shown in "about this mackintosh"->Extensions 3. check whether its MD5 is 291b7e63764598ac8052c8a363964cb8 or not 4. If it is the same MD5, please show your IORegistryExplorer 2.1 output Don't forget that IONVMeFamily.kext must be deleted unless you're using the class-code spoof as discussed in #569. 2 Link to comment Share on other sites More sharing options...
DoZe Posted November 23, 2016 Share Posted November 23, 2016 May I suggest: 1. install HackrNVMeFamily-10_12_1.kext in /System/Library/Extensions i do this Too 2. Make sure it was loaded and shown in "about this mackintosh"->Extensions To check if the kext was loaded : i do this Too. 3. check whether its MD5 is 291b7e63764598ac8052c8a363964cb8 or not 4. If it is the same MD5, please show your IORegistryExplorer 2.1 output i'll do this when i'll be with the machine ;Op Don't forget that IONVMeFamily.kext must be deleted unless you're using the class-code spoof as discussed in #569. Yes, and i do it too. Link to comment Share on other sites More sharing options...
jsl Posted November 23, 2016 Share Posted November 23, 2016 Yes, and i do it too.Can you post your IORegistryExplorer 2.1 output ?If it showed the same as mine, that means we are the unlucky ones--hardware incompatibility issue ! Link to comment Share on other sites More sharing options...
magnifico Posted November 24, 2016 Share Posted November 24, 2016 I'm looking at the network this version IORegistryExplorer 2.1 but it always comes out the version 3, those with this version? kindly you can attached it here on the topic? Link to comment Share on other sites More sharing options...
jsl Posted November 24, 2016 Share Posted November 24, 2016 I'm looking at the network this version IORegistryExplorer 2.1 but it always comes out the version 3, those with this version? kindly you can attached it here on the topic? Download link for IORegistryExplorer 2.1: IORegistryExplorer.app_.zip Link to comment Share on other sites More sharing options...
Recommended Posts