Contribute
Register

M.2 Samsung 950 PRO SSD NVMe

Status
Not open for further replies.
Sorry I'm not that dumb, but in this case you have to spell it out for me - so I can do it THIS way OR use joevt's way either will produce the same result? The confusing bit for me is where it says "It will not interfere with IONVMeFamily.kext and system updates will not change it" which is making me think I need to do both?

Same result for now... Instead of using Clover hotpatch, my method creates a patched kext that can be installed along side vanilla IONVMeFamily.kext. It is better for the case of eventual updates to IONVMeFamily.kext. Patching with Clover will likely result in partially patched kext in the event of an update to the kext, which makes the Clover KextsToPatch technique very dangerous.

I think it is covered quite clearly in the README. I suspect you didn't read it, but let me know if there is something I should clarify there after you read it.
 
Same result for now... Instead of using Clover hotpatch, my method creates a patched kext that can be installed along side vanilla IONVMeFamily.kext. It is better for the case of eventual updates to IONVMeFamily.kext. Patching with Clover will likely result in partially patched kext in the event of an update to the kext, which makes the Clover KextsToPatch technique very dangerous.

I think it is covered quite clearly in the README. I suspect you didn't read it, but let me know if there is something I should clarify there after you read it.

Sorry I didn't look at readme (consider wrist formally slapped!) but I will do now - many thanks help really appreciated - and never thought a Skier could be so brilliant and incredibly helpful? I stand corrected..........
 
Same result for now... Instead of using Clover hotpatch, my method creates a patched kext that can be installed along side vanilla IONVMeFamily.kext. It is better for the case of eventual updates to IONVMeFamily.kext. Patching with Clover will likely result in partially patched kext in the event of an update to the kext, which makes the Clover KextsToPatch technique very dangerous.

I think it is covered quite clearly in the README. I suspect you didn't read it, but let me know if there is something I should clarify there after you read it.

Oh dear....

Well I moved and renamed the GenericNVME.kext that was working, albeit badly.

Managed to create the Hackr......kext in my downloads folder and thought I could just install it by dropping into my S/L/E or L/E folder ( which folder should I have used by the way? )

Obviously not so I followed a guide and downloaded a kext installer which installed it to S/L/E

Rebooted and my system crashed with the no entry sign.

Tried to boot using my unibeast usb but the machine refused to even bring up the bios screen for me to F12 and boot. Had to switch off and walk away for 10 mins. Then restarted but again no bios.

Unplugged my HDMI to monitor and connected DSub which got me to bios screen.

Booted to usb clover then selected os x drive. System still crashed.

Did same went in using safe mode, tried to undo kext by deleting file from s/l/e which I did but in safe mode I couldn't mount efi to put back GenericNVME kext.

System now crashes after usb to clover, then even selecting safe mode, so totally stuck, don't know what the heck I've done wrong?
 
Managed to create the Hackr......kext in my downloads folder and thought I could just install it by dropping into my S/L/E or L/E folder ( which folder should I have used by the way? )

Keep in mind Finder cannot be used to install kexts.

I find the easiest way to install a kext is with Terminal:
Code:
sudo cp -R KextToInstall.kext /Library/Extensions

And rebuild cache:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Obviously not so I followed a guide and downloaded a kext installer which installed it to S/L/E

Keep in mind that after you install a kext improperly (with Finder), you will need to remove the improperly installed kext before trying correct methods.

Best way to remove a kext is with Terminal, for example:
Code:
sudo rm -rf /Library/Extensions/KextToRemove.kext

Then rebuild cache:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Also, don't forget to remove any KextsToPatch you have for IONVMeFamily.

Finally, realize that kexts in EFI/Clover/kexts are not injected when FakeSMC is installed on the volume you're booting (technically, if FakeSMC is in kernel cache on the boot target, and assuming config.plist/SystemParameters/InjectKexts=Detect). You can override this with the menu that results from pressing space bar in Clover.

Note that HackrNVMeFamily-10_11_5.kext can be injected via EFI/Clover/kexts.
 
Last edited:
Keep in mind Finder cannot be used to install kexts.

I find the easiest way to install a kext is with Terminal:
Code:
sudo cp -R KextToInstall.kext /Library/Extensions

And rebuild cache:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /



Keep in mind that after you install a kext improperly (with Finder), you will need to remove the improperly installed kext before trying correct methods.

Best way to remove a kext is with Terminal, for example:
Code:
sudo rm -rf /Library/Extensions/KextToRemove.kext

Then rebuild cache:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /

Also, don't forget to remove any KextsToPatch you have for IONVMeFamily.

Finally, realize that kexts in EFI/Clover/kexts are not injected when FakeSMC is installed on the volume you're booting (technically, if FakeSMC is in kernel cache on the boot target, and assuming config.plist/SystemParameters/InjectKexts=Detect). You can override this with the menu that results from pressing space bar in Clover.

Note that HackrNVMeFamily-10_11_5.kext can be injected via EFI/Clover/kexts.

Many thanks I'll read through this a few times and try and take it in; then I'll have another go in an hour as I was at that point where I had to walk away for a while!

It seemed easier to install a kext in clover to me with my limited knowledge? I may therefore wipe os x and start again assuming I can create the kext on my MacBook and then put it in clover on my usb?
 
It seemed easier to install a kext in clover to me with my limited knowledge?

Either way is a file copy... Of course, you can use Finder for the CLOVER/kexts case as there are no permissions in FAT32.

But keep in mind the situations where Clover does not inject kexts from Clover/kexts...

I may therefore wipe os x and start again assuming I can create the kext on my MacBook and then put it in clover on my usb?

You should be able to use HackrNVMeFamily-10_11_5.kext instead of NVMeGeneric.kext for the entire process. Just make sure you install it correctly.

I already did a fresh install on my NUC6 without issue...

And yes, you would generally create the kext on a working hack or Mac before beginning the process.
 
Either way is a file copy... Of course, you can use Finder for the CLOVER/kexts case as there are no permissions in FAT32.

But keep in mind the situations where Clover does not inject kexts from Clover/kexts...



You should be able to use HackrNVMeFamily-10_11_5.kext instead of NVMeGeneric.kext for the entire process. Just make sure you install it correctly.

I already did a fresh install on my NUC6 without issue...

And yes, you would generally create the kext on a working hack or Mac before beginning the process.

Did a total re-format and re-build and with only one or two slight hiccups, managed to install your kext using the command lines as in post #84, and too be honest seems to be working great and better than before. I even had to framebuffer patch my HD530 last time, but this time everything seems to be just working? Even reporting correct RAM (and speed) which it didn't before.

As a new Hack builder I've been struggling for 2/3 weeks to be honest and I now feel like I may be getting to a useable machine, although just a graphics card to add for FCP X use (of which just choosing one is giving me a headache).

extreme thanks to everyone who has got me this far but especially to Fl0r!an, wildwillow, Joevt, and to Rehabman for his brilliant work with NVMe drives. Thank you.
 
I'm on a different hardware (Inte NUC6i5syh) but using a NVME 950 PRO as a boot device (El Capitan).
It works very well with NVMeGeneric driver, but it doesn't show up in any System Report listing: how can I check in your opinion if TRIM has been enabled? I've run trimforce enable on the cmdline ... but how to check it has been applied to my drive ?

How have you been able to let your system see it as internal?
Any help would be welcome :)

As joevt has correctly mentioned, my solution does NOT display the SM950Pro as an internal device.

Also, from everything I have read, NVMe does not use TRIM. Only if you use SSD over SATA do you need TRIM.

Hope this helps...
 
As joevt has correctly mentioned, my solution does NOT display the SM950Pro as an internal device.

Also, from everything I have read, NVMe does not use TRIM. Only if you use SSD over SATA do you need TRIM.

Hope this helps...
Using the new HackrNVMeFamily-10_11_5.kext, you should see the NVMe drives in System Information.app, and it shows TRIM is supported, but I don't know if it actually gets used.

As for the device showing as internal or external, I would first try without the config.plist kext patch that is supposed to fix that (I think it's included with MultiBeast and named "External icons patch"). On my system, without such patch, the drives show as internal anyway.
 
Using the new HackrNVMeFamily-10_11_5.kext, you should see the NVMe drives in System Information.app, and it shows TRIM is supported, but I don't know if it actually gets used.

As for the device showing as internal or external, I would first try without the config.plist kext patch that is supposed to fix that (I think it's included with MultiBeast and named "External icons patch"). On my system, without such patch, the drives show as internal anyway.

You can make it show internal by adding an ACPI identity for the device. For example, on my desktop, the raw PCIe device appears under PCI0->P0P1, so I created a small SSDT to add an ACPI identity:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "nvme", 0)
{
    External (_SB_.PCI0.P0P1, DeviceObj)
    Scope (_SB.PCI0.P0P1)
    {
        Device (SSD0)
        {
            Name (_ADR, Zero)
        }
    }
}
 
Status
Not open for further replies.
Back
Top