I gave Thunderball new life with adding a Samsung 950 Pro M.2 NVMe and a PCIe x4 adapter card. I updated the BIOS with modified BIOS to recognize M.2 NVMe SSDs (see Reference 1 below). I was somewhat skeptical about using a custom/modified BIOS, but, I decided to go ahead with replacing the BIOS so I could use an M.2 NVMe SSD on a PCIe card. I did this somewhat risky action for two reasons: first, the Z77X-UP5 TH motherboard was no longer getting BIOS updates, and, second, the great success I had with my Gene build using the Samsung 950 Pro M.2 NVMe SSD using RehabMan's guide (References 2 & 3).
Since the Samsung 950 Pro was out of production, I picked up a used 512GB one from eBay, and I got the PCIe M.2 NVMe adapter card from the link in Reference 1.
I had already updated Clover and installed the Sierra 10.12.4 update on the SATA SSD to ensure Sierra was running successfully. I then installed the Samsung M.2 NVMe SSD onto the PCIe adapter card and into the PCIe x4 slot (slot 7 or the last one near the edge) on the motherboard. I then installed the modified BIOS, checked that the BIOS saw the Samsung, then booted into the SATA SSD.
Once I got to the Desktop, macOS, of course, couldn't "see" the Samsung M.2 SSD. I had to be able to "see" the M.2 SSD since I was going to use Carbon Copy Cloner to move Sierra from the SATA SSD to the M.2 SSD. So, I downloaded Rehabman's patcher-nvme script (see Reference #2). I followed his instructions and created the HackrNVMeFamily-10_12_4.kext (non spoof version - we'll get to that later):
Code:
cd ./Downloads/patch-nvme-master/
./patch_nvme.sh 10_12_4
I moved the HackrNVMeFamily-10_12_4.kext from the /Downloads/patch-nvme-master/ folder to the Desktop and then ran KextBeast to install it in /L/E/ folder. Next, I moved the kext from the Desktop back to the /Downloads/patch-nvme-master/ folder and renamed it "HackrNVMeFamily-10_12_4.kext.NonSpoof". Finally, I opened the /S/L/E/ folder and renamed the "IONVMeFamily.kext" to 'IONVMeFamily.kext.bak", and I rebooted into the SATA SSD's Sierra.
Once back at the Desktop, I could see the the Samsung M.2 SSD. I opened Disk Utility, selected the Samsung M.2 SSD and formatted it with the GUID Journaled format. I then ran Carbon Copy Cloner to clone the Sierra installation on the SATA SSD to the Samsung M.2 SSD. When that was completed, I then copied the SATA SSD's EFI folder to the Samsung M.2 SSD's EFI folder after mounting both onto the Desktop using the Terminal "diskutil list" command to determine the EFI "diskxs1" location of each drive and
EFI Mounter v3. Phew! Done!
Reboot into the BIOS and select the UEFI Samsung 950 Pro M.2 SSD as the boot drive. Save and boot into Sierra on the Samsung 950 ProM.2 SSD. Boy! Did that boot quickly!
Part 2 of this effort is to now get RehabMan's spoofing the IONVMeFamily.kext so that we don't have problems if Apple changes the IONVMeFamily.kext as part of the next update. Now, if you've never done this before, you are in for some studying and work. Read and become familiar with Rehabman's spoof guide (Reference 3), especially the section "Examples with incomplete ACPI identities" as we'll have to use this example. This effort to understand was time consuming for me as I was not knowledgeable of macOS' underpinnings. So, I asked RehabMan for some guidance and to confirm my findings; see
Posts 355-359 in the spoof guide and, bless his heart, he helped me understand his guide!
Note: his hint works, but only for a Samsung 950 Pro M.2 NVMe SSD in a PCIe M.2 adapter card in PCIe x4 slot 7 on only the GA-Z77X-UP5 TH motherboard.
I created the SSDT-NVMe-Pcc.aml per RehabMan's instruction in his spoof guide, which I won't reproduce here. I then created another, spoof HackrNVMeFamily-10_12_4.kext:
Code:
cd ./Downloads/patch-nvme-master/
./patch_nvme.sh --spoof 10_12_4
I moved the resulting HackrNVMeFamily-10_12_4.kext from the /Downloads/patch-nvme-master/ folder to the Desktop, (important) deleted the non-spoof HackrNVMeFamily-10_12_4.kext in /L/E/ folder and then ran KextBeast to install the spoof kext in /L/E/ folder. Next, I moved the kext from the Desktop back to the /Downloads/patch-nvme-master/ folder and renamed it "HackrNVMeFamily-10_12_4.kext.Spoof". Finally, I mounted the EFI partition and copied the SSDT-NVMe-Pcc.aml to the /EFI/EFI/CLOVER/ACPI/patches/ folder. Upon rebooting to Sierra on the Samsung 950 Pro M.2 SSD, the macOS is working fine, and, most importantly, the spoof works to make updates go easier.
Reference:
1.
[SUCCESS] Booting 950 Pro NVMe on GA‑Z77X‑UP5 TH
2.
https://github.com/RehabMan/patch-nvme
3.
[Guide] HackrNVMeFamily co-existence with IONVMeFamily using class-code spoof