Picasso Posted April 6, 2017 Share Posted April 6, 2017 I perceive the problem in my instalation and the dozen I read these days it is not clear where I get this: "spoofed class-code". I got my boot with the Config with kext to patch from Magnifico (Grazie mile!). The rest of the system and configuration is a copy of the other made it by Maldon (Brigado!) and I added in Clover IONVMeFamily.kext. Everything works fine. But now I'm interested in Rehabman method for future updates. This kext patch works, but, lot ot users said could bring problems. I'm not an expert like you. Thanks everybody implied in my help @Tobinejumi @mfc88 @Mork vom Ork with his guides. Link to comment Share on other sites More sharing options...
gbanyan Posted April 8, 2017 Share Posted April 8, 2017 I applied RehabMan patched kext with spoof way and successfully boot my Hackintosh system, However, I met a problem recently. When all my SATA disks were connected, my nvme ssd (Samsung 950 pro) write/read speed were only 7XX/7XX MB/s And I was pretty certain that it was connected with the proper PCIE channel because System report showed 5.0 GT/s, 4 channels compatible with the actual PCIE I installed (PCIE 2.0 X 4) Without other configuration changed, I just went tp BIOS settings and turned the SATA off. Then the speed was back, 1500/900 MB/s(Edited) Through another boot, though SATA off, the speed still limited backAny suggestion? My Hackintosh environment: Clover Version: 4049 Mac OS X Sierra 10.12.4CPU: i5-4460Motherboard: Asus H97 Pro Gamer NVMe SSD: Samsung 950 Pro connected at PCIE 2.0 X 4Graphic Card: Nvidia 750 TI Clover-debug info included config.plist, clover/ACPI folder including original and patched, and IOreg, hope helpful Clover-debug info.zip Link to comment Share on other sites More sharing options...
iJamesGC Posted April 9, 2017 Share Posted April 9, 2017 Well ok, let's go: 1) grab your copy of macOS 10.12 SIERRA. download it to a disc of your choice. If u grabed it on a legal way, it should be named like "Install 10.12 Developer Preview" 2) boot into any previous OS X (10.10.x or 10.11.x) and put the downloaded file to your APPLICATIONS folder. 3) have a 16GB USB-stick handy and connected to any USBport 4) open terminal window and type in the following to make a bootable SIERRA usb-stick: sudo /Applications/Install\ 10.12\ Developer\ Preview.app/Contents/Resources/createinstallmedia --volume /Volumes/your_USBstick_here --applicationpath /Applications/Install\ 10.12\ Developer\ Preview.app just to make sure: "your_USBstick_here" should be replaced with the name of YOUR USBstick. Please don't use "your_USBstick_here", cause it won't work. 5) wait to get the bootable SIERRA USB-stick ready 6) get a copy of any CLOVER installer (4 myself i prefere this one. Thx to chris1111 for his great work) 7) install CLOVER to the just created SIERRA USBstick (within the installer choose the desired options you need for your setup) 8) copy your YOSEMITE or EL CAPITAN config.plist to your CLOVER installation you just made. 9) open the just copied config.plist with any texteditor (how about TEXTEDIT?) application and go to <key>KernelAndKextPatches</key> section 10) paste the following code somewhere between the two <array> </array> commands of <key>KextsToPatch</key> section: <dict> <key>Comment</key> <string>IONVMeFamily IONameMatch</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>InfoPlistPatch</key> <true/> <key>Find</key> <data>PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4=</data> <key>Replace</key> <data>PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4=</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#1</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>ibPoAgAAweAMBQAQAACJgw==</data> <key>Replace</key> <data>ibPoAgAAweAJBQAQAACJgw==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#2</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>D7aMiIIAAACD+QwPhTIBAA==</data> <key>Replace</key> <data>D7aMiIIAAACD+QkPhTIBAA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#3</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>AMeDpAAAAAAQAABIi0gISA==</data> <key>Replace</key> <data>AMeDpAAAAAACAABIi0gISA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#4</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>SYnGTYX2dGFBwecMSWP/vg==</data> <key>Replace</key> <data>SYnGTYX2dGFBwecJSWP/vg==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#5</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>hv8PAABIwegMD7cPgeH/Dw==</data> <key>Replace</key> <data>hv8PAABIwegJD7cPgeH/Dw==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#6_7</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>icGB4f8PAABIAdFIgfn/DwAAdzs=</data> <key>Replace</key> <data>icGB4f8BAABIAdFIgfn/AQAAdzs=</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#8</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>SYHF/w8AAEnB7QxJiwQkSA==</data> <key>Replace</key> <data>SYHF/w8AAEnB7QlJiwQkSA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#9_10</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>BgIAAEyNuAAQAABMiflIgeEA8P//SYmGGgEAAEmJjiIBAABBvAAQAABJKfQ=</data> <key>Replace</key> <data>BgIAAEyNuAACAABMiflIgeEA8P//SYmGGgEAAEmJjiIBAABBvAACAABJKfQ=</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#11</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>AABJiY4iAQAAugAQAABIKQ==</data> <key>Replace</key> <data>AABJiY4iAQAAugACAABIKQ==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#12</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>yAAAAEkp17gAEAAATYskJA==</data> <key>Replace</key> <data>yAAAAEkp17gAAgAATYskJA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#13</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>4b+AQBUGTYnWugAQAABFMQ==</data> <key>Replace</key> <data>4b+AQBUGTYnWugACAABFMQ==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#14</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>iWTY+EmBxAAQAABJgccA8A==</data> <key>Replace</key> <data>iWTY+EmBxAACAABJgccA8A==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#15</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>Bf8PAABIwegMZvfB/w8PlQ==</data> <key>Replace</key> <data>Bf8PAABIwegJZvfB/w8PlQ==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#16</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>weIIQQ+2wcHgDEQJ0EQJwA==</data> <key>Replace</key> <data>weIIQQ+2wcHgCUQJ0EQJwA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#17</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>RYTJD5XAD7bAweAMRAnYRA==</data> <key>Replace</key> <data>RYTJD5XAD7bAweAJRAnYRA==</data> </dict> 11) save your config.plist file 12) grab the IONVMeFamily.kext from SIERRA (attached to this post) and paste it to your CLOVER EFI partition in the following place: EFI -> CLOVER -> kexts -> Other ! this step is neccesary, cause SIERRA Installer doesn't contain this kext in its own startup and you won't be able to select NVMe-device, cause it wasn't detected during startup ! 13) install your NVMe device to your hardware. Either on an M.2 PCIe card for PCIe slot or directly into an M.2 slot on your motherboard. Have both tested here myself, both configs work perfectly 4 me 14) reboot your system, enter your BIOS and select SIERRA USBstick as your bootdevice 15) when CLOVER gets booted, select your SIERRA USBstick, press ENTER and wait for SIERRA booting into macOS 10.12 Installer. 16) when arrived into the installer, choose Use Disc Utility to get your NVMe-Device formatted. Format the device with desired partition or just delete partitions data 17) Quit DISC UTILITY to get back to SIERRA installer 18) select INSTALL SIERRA, choose your just formated NVMe-device and start Installation 19) when finished with the install process, copy your CLOVER EFI folder from SIERRA USBstick to EFI partition of your just installed SIERRA NVMe-device. After doing so, you could delete IONVMeFamily.kext from EFI -> CLOVER -> kexts -> Other from your just installed SIERRA EFI partition, cause kext is now installed in S/L/E 20) if you have any questions: ask your local dealer or post the question here Regards... Mork vom Ork PS: don't forget to drop Pike R. Alpha a line for his great work on this patch. Hello Mork vom Ork I have successfully used this to install macOS Sierra on a WD Black 256GB NVMe. I have not yet been able to make it a bootable drive. I have recreated a new boot USB stick with all the files. I have had success installing macOS Sierra and updating and running from the NVMe after using the USB stick as a boot drive. I hope to finally be able to create a properly booting system with this new USB stick. I will post more kudos upon success. James C Link to comment Share on other sites More sharing options...
Picasso Posted April 10, 2017 Share Posted April 10, 2017 I applied RehabMan patched kext with spoof way and successfully boot my Hackintosh system, However, I met a problem recently. When all my SATA disks were connected, my nvme ssd (Samsung 950 pro) write/read speed were only 7XX/7XX MB/s And I was pretty certain that it was connected with the proper PCIE channel because System report showed 5.0 GT/s, 4 channels compatible with the actual PCIE I installed (PCIE 2.0 X 4) Without other configuration changed, I just went tp BIOS settings and turned the SATA off. Then the speed was back, 1500/900 MB/s (Edited) Through another boot, though SATA off, the speed still limited back Any suggestion? My Hackintosh environment: Clover Version: 4049 Mac OS X Sierra 10.12.4 CPU: i5-4460 Motherboard: Asus H97 Pro Gamer NVMe SSD: Samsung 950 Pro connected at PCIE 2.0 X 4 Graphic Card: Nvidia 750 TI Clover-debug info included config.plist, clover/ACPI folder including original and patched, and IOreg, hope helpful The only way to manage my M.2 disk was disconecting the other boot disk. If not, everything were messed up. The boot, the audio in the other, kernel panic, slow start up. One disk for a time. Link to comment Share on other sites More sharing options...
nos1609 Posted April 11, 2017 Share Posted April 11, 2017 I have successfully used this to install macOS Sierra on a WD Black 256GB NVMe. I have not yet been able to make it a bootable drive. It is a 4K drive. P.S. Page 20 of the official man, 1st picture. Link to comment Share on other sites More sharing options...
oravla1972 Posted April 13, 2017 Share Posted April 13, 2017 Dear Rehabman First of all thanks for all the work and knowledge My problem comes when I have two NVMe installed at the same time, I get KernelPanic. CRUCIAL MP500 and SAMSUNG PM961 both of 204GB I´m booting SIERRA 10.12.4 from an SSD, not from the NVMe´s. Everything works fine (but the USB 3.0, I´ll investigate later) I´ve followed (succesfully I think) for two drives, with ACPI paths 09 and 17 : https://www.tonymacx86.com/threads/guide-hackrnvmefamily-co-existence-with-ionvmefamily-using-class-code-spoof.210316/ with one NVMe drive installed everything works fine, either MP500 or PM961 and either in M.2 1 or 2 slots ,always there is only one drive at a time When I install a second one, OSX gives Kernel Panic. It does not matter if I exchange the NVMe slots. With one, everything fine, with two,..no success. BIOS and Windows 10 recognises both drives (W10 boots from the MP500) I attach two verbose boot screens. for the second I renamed IONVMEFAMILY.kext Just in case since I had spoofed class, similar results. IMG_1906.JPG . IMG_1908 After renaming ionvmefamily kext.JPG i also attach Clover folder, IOreg, some Terminal outputs I´ve seen you have asked for in previous posts, the text used for the SSDT, and the compiled file In SLE I just have FAKESMC and VoddooHDA as far as I know. IN LE I have I only have HackrNVMeFamily-10_12_4 and USBInjectAll It would be great if you can help me. I´ve devoted the last three weeks to investigate and tests, my first hack was Easy (Z77) but with Z270, NVIDIA 1080, and NVMe I´m having lots of fun being an economist. (Luckily NVIDIA launched PASCAL drivers when I just quit trying to have HD630 free of glitches) I want to have both NVMe working same time. One with W10 and one with SIERRA Thank you very much Alvaro My specs: MSI Z270 M5, I7 7700K, NVIDIA GTX 1080, BCM943602CS Nvme Crucial MP500 256GB (w10); Samsung PM961 256GB SSD OCZ 64GB and 128GB, Samsung EVO 850 500 GB and 256 GB, Kingston 128GB TOSHIBA HDD 4TB Archivo comprimido.zip Link to comment Share on other sites More sharing options...
RehabMan Posted April 13, 2017 Share Posted April 13, 2017 Dear Rehabman First of all thanks for all the work and knowledge My problem comes when I have two NVMe installed at the same time, I get KernelPanic. CRUCIAL MP500 and SAMSUNG PM961 both of 204GB I´m booting SIERRA 10.12.4 from an SSD, not from the NVMe´s. Everything works fine (but the USB 3.0, I´ll investigate later) I´ve followed (succesfully I think) for two drives, with ACPI paths 09 and 17 : https://www.tonymacx86.com/threads/guide-hackrnvmefamily-co-existence-with-ionvmefamily-using-class-code-spoof.210316/ with one NVMe drive installed everything works fine, either MP500 or PM961 and either in M.2 1 or 2 slots ,always there is only one drive at a time When I install a second one, OSX gives Kernel Panic. It does not matter if I exchange the NVMe slots. With one, everything fine, with two,..no success. BIOS and Windows 10 recognises both drives (W10 boots from the MP500) I attach two verbose boot screens. for the second I renamed IONVMEFAMILY.kext Just in case since I had spoofed class, similar results. ... IMG_1908 After renaming ionvmefamily kext.JPG i also attach Clover folder, IOreg, some Terminal outputs I´ve seen you have asked for in previous posts, the text used for the SSDT, and the compiled file In SLE I just have FAKESMC and VoddooHDA as far as I know. IN LE I have I only have HackrNVMeFamily-10_12_4 and USBInjectAll It would be great if you can help me. I´ve devoted the last three weeks to investigate and tests, my first hack was Easy (Z77) but with Z270, NVIDIA 1080, and NVMe I´m having lots of fun being an economist. (Luckily NVIDIA launched PASCAL drivers when I just quit trying to have HD630 free of glitches) I want to have both NVMe working same time. One with W10 and one with SIERRA Thank you very much Alvaro My specs: MSI Z270 M5, I7 7700K, NVIDIA GTX 1080, BCM943602CS Nvme Crucial MP500 256GB (w10); Samsung PM961 256GB SSD OCZ 64GB and 128GB, Samsung EVO 850 500 GB and 256 GB, Kingston 128GB TOSHIBA HDD 4TB I don't see any photos from Windows device manager (showing ACPI path) here. Need either those photos or an ioreg that shows both NVMe drives installed. Keep in mind that to determine the paths, you must have both drives installed at the time of path determination (ACPI paths may change as you change hardware). But I think I may see the problem. You did not add the _DSM->XDSM patch, and there is definitely an OEM _DSM at RP17.PXSX, where there isn't one at RP09.PXSX. It means that when you add the NVMe SSD at RP17.PXSX, the SSDT will be ineffective (duplicate _DSM), and IONVMeFamily.kext will load for it instead of HackrNVMeFamily.kext. At that point, you have both loading, which is already known to cause panic. 2 Link to comment Share on other sites More sharing options...
oravla1972 Posted April 13, 2017 Share Posted April 13, 2017 Thanks a lot, the patch _DSM>XDSM did it, Great!! booting from the samsung NVME (cloned from my boot drive). Not booted in windows but these are the ACPI patchs from Ioreg with 09 and 17 Link to comment Share on other sites More sharing options...
Peter2615 Posted April 13, 2017 Share Posted April 13, 2017 There is one thing i forgot to mention: if u are going to use SIERRA installer to install SIERRA on your NVMe drive, you have to boot into the installer, open terminal and load the IONVMeFamily.kext manually. After the kext got loaded, you could open Disc Utility and than you should be able to see and format your NVMe device. I havent tried it this way - i installed SIERRA on AHCI device and after installation i Carbon Copy cloned this Installation to my NVMe device, than restarted - et voila: successfull boot from my SAMSUNG 950 Pro NVMe drive.. How to do do this manually, ive tried the method in your post added the code the configplist and the kext to the clover folder but still does not see the drive to format the NVMe SSD 960 EVO drive from the boot USB sierra. Pete. Link to comment Share on other sites More sharing options...
MaLd0n Posted April 14, 2017 Share Posted April 14, 2017 for installation with patches in config.plist, put IONVMeFamily.kext in Clover/Kexts/other Link to comment Share on other sites More sharing options...
mfc88 Posted April 16, 2017 Share Posted April 16, 2017 I've recently developed an app that now makes creating custom NVME SSDTs that work in conjunction with a HackrNVMeFamily-10_xx_x.kext simpler for those with little to no knowledge of ACPI programming. While the app was geared toward x99/z170 systems, the NVME portion should work with all motherboards that support NVMe devices (supported by Pike's NVME patches). This custom SSDT still REQUIRES a spoofed HackrNVMeFamily-10_xx_x.kext. No exceptions. Before running the app, some things you need to know:1.) Is your NVMe's ACPI path complete (SB.PCIslot.device.leafnode -- example: SB.PCI0.BR1B.H000)?Or a complete ACPI path, but behind a PCI bridge (SB.PCISlot.device.leafnode.address -- example: SB.PCI0.PEG0.PEGP.0800)?Or an incomplete ACPI path (SB.PCISlot.device.address -- example: SB.PCI0.POP4.0000)? 2.) Are you using a custom DSDT.aml in EFI/CLOVER/ACPI/patched?- If you're using a custom DSDT.aml, then you'll need to search through it and make sure you don't have any _DSMs at or scoped to your NVME ACPI path- If you're not using a custom DSDT.aml, then you'll only need this Clover DSDT patch, which will remove all the DSDT's _DSMs.3.) Are any OEM SSDTs injecting a _DSM at your NVME's ACPI path?- If so, you'll need to drop the SSDT. For more information about 2 and 3, please read Generic HackrNVMeFamily guide (steps 1-4 and 10-16b), which explain more about _DSMs within custom DSDT.amls/OEM SSDTs. Downloading and running the app:1.) You can download the latest version of ssdtGenApp by copying/pasting the following command in a terminal window: cd ~/desktop && curl -OL https://github.com/mattcarlotta/ssdtGenApp/raw/master/ssdtGen.zip && unzip -qu ssdtGen.zip && rm -rf __MACOSX && rm -rf ssdtGen.zip You must initially run the program as a ROOT user otherwise you may receive an error when attempting to install IASL (after IASL has been installed, double clicking the ssdtGen.app will suffice). Enter the following command in a terminal window to run ssdtGen.app as a ROOT user: sudo $HOME/Desktop/ssdtGen.app/Contents/MacOS/ssdtGen 2.) Select "NVME" under the Build icon, then select the required checkboxes (complete ACPI, complete ACPI and behind a PCI bridge, or incomplete ACPI) and input your NVME's ACPI location: For example, complete ACPI: For example, complete ACPI behind a PCI Bridge: For example, an incomplete ACPI: 3.) Click the Build icon and a NVME SSDT will be made for you (make sure it doesn't contain any errors): 4.) Mount your primary drive with Clover Configurator, open the partition, then add the custom SSDT-NVME.aml to your EFI/CLOVER/ACPI/patched folder 5.) Run Rehabman's patch_nvme script, build a spoofed HackrNVMeFamily-10_xx_x.kext, then place it in S/L/E, L/E or EFI/CLOVER/kexts/other. For example: ./patch_nvme.sh --spoof 6.) Reboot and make sure the NVME is properly injected. If you have any questions/comments/issues with the app, don't post about it here, instead please post here 4 Link to comment Share on other sites More sharing options...
aol Posted April 20, 2017 Share Posted April 20, 2017 I bought a Plextor m8pe nvme ssd without doing my homework and it's seeming to not be supported (yet). Anyone know different? So far I've only tried the kext patches from http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/?p=2356251but Disk Utility never shows the drive. Is the drive showing up in Disk Utility a pre-requisite for the drive every working? Is there any reason try rehabman's process without the drive showing up in DU? Link to comment Share on other sites More sharing options...
RehabMan Posted April 20, 2017 Share Posted April 20, 2017 I bought a Plextor m8pe nvme ssd without doing my homework and it's seeming to not be supported (yet). Anyone know different? So far I've only tried the kext patches from http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/?p=2356251but Disk Utility never shows the drive. You may need one of those patches + the patches for 4k block size (best to use class-code spoof and HackrNVMeFamily). You should also see if you can change the native block size to 4k (see link from patch-nvme README). Is the drive showing up in Disk Utility a pre-requisite for the drive every working? Yes, of course. Is there any reason try rehabman's process without the drive showing up in DU? Yes, of course. The drive will not show until you have the kext correctly patched... Link to comment Share on other sites More sharing options...
aol Posted April 21, 2017 Share Posted April 21, 2017 You may need one of those patches + the patches for 4k block size (best to use class-code spoof and HackrNVMeFamily). You should also see if you can change the native block size to 4k (see link from patch-nvme README). Hi RehabMan, thanks for your response and thanks for all the help you give the community! Since I posted I've done a lot of research and trial and error and still had no luck despite lots of anecdotal evidence that the Plextor M8Pes are working. I have the M.2 2280 256GB M8Pe(G) with heatsink. I'm doing everything on a 10.12.4 system. I identified the PCI address using a Windows boot on the same system. I was able to create the HackrNVMeFamily kext with --spoof (it auto-detected 10.12.4 and the md5s matched). Each time I try something I boot up and go into disk utility and use that as the baseline for whether the current patch worked. The ssd has never shown up. First I tried JUST applying the various versions of the 0x10 -> [0x01|0x02|0x04|0x08] patch to IONVMeFamily in config.plist via clover configurator. None of those worked on it's own. Then I followed the full guide for NVMe including identifying the PCI address via Windows, building the ssdt, using MacIASL to build a SSDT-NVMe-ssd.aml, replacing the PCI address in both places from the template with my PCI address, compiling/saving/moving to booted EFI/CLOVER/acpi/patched; no custom dsdt so added the rename _DSM -> XDSM acpi/DSDT patch; verifying that no other aml in my acpi/patched had a name conflict with my pci address; and creating the --spoofed HAackrNVMeFamily.kext and copying it to EFI/CLOVER/kexts/other where all my kexts are (it created with 10_12_4 appended to the name but i renamed it). According to another post the m8pe does not support 4k so I didn't add any patches about 4k? I'm not entirely clear on this part. So to sum up what I've tried is - using just the 0x10 -> [0x01|0x02|0x04|0x08] patches: 4 reboots no love - creating SSDT-NVMe-ssd.aml in acpi/patched and --spoofed HackrNVMeFamily.kext in kexts/other and _DSM -> XDSM rename patch and all four variants of 0x10 rename patch: 4 reboots no love - saw a post that if you have HackrNVMeFamily the 0x10 -> 0x01 patches should be against HackrNVMEFamily instead of IONVMeFamily so tried that, four reboots no love I'll try to understand what you mean when you say "you should see if you can change the native block size to 4k". As I stated another post earlier in this thread seemed to indicate the m8pes don't support 4k. I guess that involves booting linux? Would love a bit more of your time to point me in the right direction. Or if someone else with one of these plextor M8Pes could chime in with what is working for them. I don't want to do the 15 or 17 or whatever config.plist patches. Thanks again, I appreciate your help! Link to comment Share on other sites More sharing options...
RehabMan Posted April 21, 2017 Share Posted April 21, 2017 Hi RehabMan, thanks for your response and thanks for all the help you give the community! Since I posted I've done a lot of research and trial and error and still had no luck despite lots of anecdotal evidence that the Plextor M8Pes are working. I have the M.2 2280 256GB M8Pe(G) with heatsink. I'm doing everything on a 10.12.4 system. I identified the PCI address using a Windows boot on the same system. I was able to create the HackrNVMeFamily kext with --spoof (it auto-detected 10.12.4 and the md5s matched). Each time I try something I boot up and go into disk utility and use that as the baseline for whether the current patch worked. The ssd has never shown up. First I tried JUST applying the various versions of the 0x10 -> [0x01|0x02|0x04|0x08] patch to IONVMeFamily in config.plist via clover configurator. None of those worked on it's own. Then I followed the full guide for NVMe including identifying the PCI address via Windows, building the ssdt, using MacIASL to build a SSDT-NVMe-ssd.aml, replacing the PCI address in both places from the template with my PCI address, compiling/saving/moving to booted EFI/CLOVER/acpi/patched; no custom dsdt so added the rename _DSM -> XDSM acpi/DSDT patch; verifying that no other aml in my acpi/patched had a name conflict with my pci address; and creating the --spoofed HAackrNVMeFamily.kext and copying it to EFI/CLOVER/kexts/other where all my kexts are (it created with 10_12_4 appended to the name but i renamed it). According to another post the m8pe does not support 4k so I didn't add any patches about 4k? I'm not entirely clear on this part. So to sum up what I've tried is - using just the 0x10 -> [0x01|0x02|0x04|0x08] patches: 4 reboots no love - creating SSDT-NVMe-ssd.aml in acpi/patched and --spoofed HackrNVMeFamily.kext in kexts/other and _DSM -> XDSM rename patch and all four variants of 0x10 rename patch: 4 reboots no love - saw a post that if you have HackrNVMeFamily the 0x10 -> 0x01 patches should be against HackrNVMEFamily instead of IONVMeFamily so tried that, four reboots no love I'll try to understand what you mean when you say "you should see if you can change the native block size to 4k". As I stated another post earlier in this thread seemed to indicate the m8pes don't support 4k. I guess that involves booting linux? Would love a bit more of your time to point me in the right direction. Or if someone else with one of these plextor M8Pes could chime in with what is working for them. I don't want to do the 15 or 17 or whatever config.plist patches. Thanks again, I appreciate your help! HackrNVMe and Pike's IONVMeFamily patches are all about 4k->512. Unfortunately, I cannot identify your mistake without details... (EFI/Clover, images of paths in Windows, 'lspci -nn' output from Linux, etc) Link to comment Share on other sites More sharing options...
the_chiefgeek Posted April 22, 2017 Share Posted April 22, 2017 What distro of linux are you using to check for 4k support? I tried Unbuntu 16.10 desktop and the smartctl -a /dev/nvme0 errors out with something like type unknown. I noticed an option in usage to list supported types and NVMe is not one of the types supported. Link to comment Share on other sites More sharing options...
RehabMan Posted April 22, 2017 Share Posted April 22, 2017 What distro of linux are you using to check for 4k support? I tried Unbuntu 16.10 desktop and the smartctl -a /dev/nvme0 errors out with something like type unknown. I noticed an option in usage to list supported types and NVMe is not one of the types supported. sudo? Link to comment Share on other sites More sharing options...
magnifico Posted April 22, 2017 Share Posted April 22, 2017 I did not understand yet one thing, but if I buy a ssd nvme with 4k i do not need any kext hack and do it all with the vanilla kext? Link to comment Share on other sites More sharing options...
RehabMan Posted April 22, 2017 Share Posted April 22, 2017 I did not understand yet one thing, but if I buy a ssd nvme with 4k i do not need any kext hack and do it all with the vanilla kext? If the blocksize is 4k instead of 512, it negates the need for the large set of patches that change the block size assumptions in the kext from 4k to 512. 1 Link to comment Share on other sites More sharing options...
magnifico Posted April 22, 2017 Share Posted April 22, 2017 If the blocksize is 4k instead of 512, it negates the need for the large set of patches that change the block size assumptions in the kext from 4k to 512. ok ..understand now Link to comment Share on other sites More sharing options...
the_chiefgeek Posted April 23, 2017 Share Posted April 23, 2017 sudo? ubuntu@ubuntu:~$ sudo smartctl -a /dev/nvme0 smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org /dev/nvme0: Unable to detect device type Please specify device type with the -d option. Use smartctl -h to get a usage summary ubuntu@ubuntu:~$ smartctl -d smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org =======> ARGUMENT REQUIRED FOR OPTION: d =======> VALID ARGUMENTS ARE: ata, scsi, sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbsunplus, marvell, areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, aacraid,H,L,ID, cciss,N, auto, test <======= Use smartctl -h to get a usage summary ubuntu@ubuntu:~$ Link to comment Share on other sites More sharing options...
RehabMan Posted April 23, 2017 Share Posted April 23, 2017 ubuntu@ubuntu:~$ sudo smartctl -a /dev/nvme0 smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org /dev/nvme0: Unable to detect device type Please specify device type with the -d option. Use smartctl -h to get a usage summary ubuntu@ubuntu:~$ smartctl -d smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-36-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org =======> ARGUMENT REQUIRED FOR OPTION: d =======> VALID ARGUMENTS ARE: ata, scsi, sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbsunplus, marvell, areca,N/E, 3ware,N, hpt,L/M/N, megaraid,N, aacraid,H,L,ID, cciss,N, auto, test <======= Use smartctl -h to get a usage summary ubuntu@ubuntu:~$ Probably no /dev/nvme0. Check with 'ls /dev'. Also, you should look at your 'lspci -nn' output... Link to comment Share on other sites More sharing options...
the_chiefgeek Posted April 23, 2017 Share Posted April 23, 2017 Probably no /dev/nvme0. Check with 'ls /dev'. Also, you should look at your 'lspci -nn' output... Def /dev/nvme0 exists. and I see it in lspci output 03:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller [144d:a802] (rev 01) Link to comment Share on other sites More sharing options...
RehabMan Posted April 23, 2017 Share Posted April 23, 2017 Def /dev/nvme0 exists. and I see it in lspci output 03:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller [144d:a802] (rev 01) You might want to read here: https://www.smartmontools.org/wiki/NVMe_Support When I was gathering the same info on my Samsung 950 Pro, I found the wiki to be quite useful... FYI: Last I checked, the 950 Pro cannot be switched to 4k. Assuming no firmware update has become available, I'm guessing your drive is the same. 1 Link to comment Share on other sites More sharing options...
arkaine Posted April 23, 2017 Share Posted April 23, 2017 Hi RehabMan. Thanks for your work on this tool. I'm experiencing a super weird SSD issue with 10.12.4 and was wondering if you've experienced it before or know what might be causing it. I've got an Intel 600p 512GB NVMe that has worked flawlessly right up until the 10.12.4 update. It's running with the patched IONVMeFamily.kext and what I'm experiencing is that at completely random times - it could be a couple hours or a couple days or a week - the read and write speeds completely tank, all the way down to about 5MB/s! The system is completely unusable/sluggish at that point.If I warm reboot, macOS boots back up and the drive is still immediately slow. If I cold reboot, the drive is speedy again at 600MB/s write and 1500MB/s read, but eventually - hours, days, a week - and I'm back to the same 5MB/s read and write issue.Trim is enabled and the drive is error free, per intel's drive tools (smart/scan etc). The same issue happens when booting into safe mode. I'm not seeing anything strange in the logs.I thought maybe it was overheating and therefore being throttled, but if I immediately boot into windows, the temp is below 50C, so normal.I'm at a loss as to what is triggering this, this started happening immediately after updating to 10.12.4.Any ideas? Thanks. Link to comment Share on other sites More sharing options...
Recommended Posts