Contribute
Register

using Trim Enabler in OS X Yosemite and Kext Signing

Status
Not open for further replies.
Joined
Jan 17, 2011
Messages
6
Motherboard
Gigabyte Z97X-Gaming 7
CPU
i7-4790K
Graphics
RX Vega 64
Mac
  1. MacBook Pro
  2. Mac Pro
Classic Mac
  1. Power Mac
Mobile Phone
  1. iOS
Just came across this bit of information and thought it was interesting.....Will this affect us????


http://www.cindori.org/trim-enabler-and-yosemite/"]http://www.cindori.org/trim-enabler-and-yosemite/


FAQ and support for using Trim Enabler in OS X Yosemite
Make sure to read this before using Trim Enabler on OS X Yosemite

About Trim in Yosemite
In OS X 10.10 (Yosemite), Apple has introduced a new security requirement called kext signing. (A kext is a kernel extension, or a driver, in Mac OS X)
Kext signing basically works by checking if all the drivers in the system are unaltered by a third party, or approved by Apple. If they have been modified, Yosemite will no longer load the driver. This is a means of enforcing security, but also a way for Apple to control what hardware that third party developers can release OS X support for.
Since Trim Enabler works by unlocking the Trim driver for 3rd party SSD’s, this security setting prevents Trim Enabler to enable Trim on Yosemite.
To continue to use Trim Enabler and continue to get Trim for your third party SSD, you first need to disable the kext signing security setting.
It is important to note that the kext-signing setting is global, if you disable it you should be careful to only install system drivers from sources that you trust.


Trim Enabler support
Trim Enabler 3.3 will disable the kext-signing setting automatically for you, by giving a choice when you flip the switch.
By clicking Proceed, your computer will reboot with kext-signing disabled. You can then flip the switch again to enable Trim.
When you flip the switch back to Off, Trim Enabler will ask you if you want to restore the kext-signing setting back to normal.


Important issues
The kext-signing setting is stored in your Mac’s NVRAM/PRAM, a sort of flash memory inside your Mac. This memory can be reset either by accident or by intention (usually by troubleshooting issues with your hardware), causing kext-signing setting to re-activate.
If you try to boot a Trim-enabled system with the kext-signing setting re-activated, you will be met by a gray screen with a stop sign:

prohibitory_sign
This is your system telling you that a driver has been modified, and is not allowed to load.
To avoid this situation, you can make sure to disable Trim before performing any hardware maintenance or PRAM reset on your Mac.


I don’t want to disable a security feature! Is there no other way to get Trim?
Unfortunately not. It is important to note that disabling the kext-signing to enable Trim is best described as taking a sledgehammer to crack a nut, and for most users it will not be worth it. But I have been unsuccessful in creating a less invasive method to enable Trim, as all of Apple’s AHCI SATA drivers are closed source and undocumented, which makes it impossible for me to create my own Trim driver and get it signed. This is the only alternative for enabling Trim for the moment.


When will you fix this?
This problem will not get fixed unless Apple changes their policy. Have you ever wondered why disk manufacturers like Corsair, Samsung etc. have never written a Trim driver for OS X? Or why they never offer firmware update software to OS X? (The only firmware updates they offer for Mac is a MS-DOS boot CD)
The reason is that Apple is keeping the AHCI driver private, making it impossible for anyone, even these big companies, to create a driver for SSD’s.
So the issue is not that Apple “doesn’t allow Trim Enabler”, but that they don’t allow anyone to create AHCI drivers.
If they made public the AHCI driver, I would be able to make Trim Enabler “legit”. Right now, it is impossible. You can read more about the technical issues here.


TL;DR?

Enabling Trim on Yosemite will put you at risk to get the “grey stop sign”. Not only for your first reboot, but anytime in the future if your PRAM is reset
You can recover from the grey stop sign by following the guidelines on this page
This problem is a consequence of a security decision by Apple to not allow modified system drivers in Yosemite
I can’t make a legit Trim driver because Apple does not allow third party developers to make such drivers for SSD’s, not even disk manufacturers like Corsair, Samsung etc.
Unless Apple changes their policy and opens up AHCI drivers for developers, the days of enabling Trim without issues are over
You should read this whole page and if you feel unsure about any of the content, not enable Trim on Yosemite


Is it safe to use S.M.A.R.T/Tweaks/Benchmark?
Yes, these features are not affected and will work fine, the issue described here only applies to the enabling of Trim.


So what next?
I will continue to offer Trim Enabler as it is still safe to use on OS X 10.7 to 10.9, and still the “safest” way of enabling Trim in OS X Yosemite. In my opinion, the most responsible thing to do in this situation is to:

Educate users about the risks involved with enabling Trim on Yosemite
Provide professional support and guidance to help any user who is experiencing issues
Continue to offer Trim Enabler with Yosemite compatibility and warning dialogues, so users will not turn to other methods or software to enable Trim that do not work with Yosemite or educate the user about the risks

As for the future development, I am already well underway in developing new disk optimization software that will rival even the best tools for Windows, while staying well within Apple’s walled garden (Trim will not be included as a feature).


Recovering from stop sign on boot screen
For those who are stuck on the grey boot screen, here’s how you get back into OS X:
Step 1: Boot recovery mode by holding Cmd+R during boot
Step 2: Open the Terminal from the menu bar
Step 3: Run this command:

nvram boot-args

Does it say “kext-dev-mode=1″? if so, you can skip to Step 6. If it says “error getting variable”, continue with these steps:
Step 4: Run this command:

nvram boot-args=kext-dev-mode=1

Step 5: Reboot back in to Recovery Mode again
Step 6: Run these commands, replacing Your Disk Name with the name of your Mac disk (partition). You can type ls /Volumes to get a list of volumes. Note the quotes around the disk path and that there should be no / before System.

cd "/Volumes/Your Disk Name"

touch System/Library/Extensions

kextcache -prelinked-kernel System/Library/Caches/com.apple.kext.caches/Startup/kernelcache -K System/Library/Kernels/kernel System/Library/Extensions

Step 6: Wait until it finishes (can take as long as 5-10 minutes, don’t abort it) and reboot.
You should now be back in OS X with Trim enabled.




Reversing any changes by Trim Enabler
If for some reason the above steps does not work for you, you can undo all changes made by Trim Enabler by following these steps:
Step 1: Boot recovery mode by holding Cmd+R during boot
Step 2: Open the Terminal from the menu bar
Step 3: Run these commands, replacing Your Disk Name with the name of your Mac disk (partition). Note the quotes around the disk path and that there should be no / before System, except for the first part of the cp command.

nvram -d boot-args

cd "/Volumes/Your Disk name"

rm -rf System/Library/Extensions/IOAHCIFamily.kext

cp -r /System/Library/Extensions/IOAHCIFamily.kext System/Library/Extensions/IOAHCIFamily.kext

chown -R root:wheel System/Library/Extensions

chmod -R 755 System/Library/Extensions

touch System/Library/Extensions

kextcache -prelinked-kernel System/Library/Caches/com.apple.kext.caches/Startup/kernelcache -K System/Library/Kernels/kernel System/Library/Extensions

Step 4: Wait until it finishes (can take as long as 5-10 minutes, don’t abort it) and reboot.
You should now be back in OS X with Trim disabled.
 
Thanks for the good read. Yet, one question:

Quote: "Important issues: The kext-signing setting is stored in your Mac’s NVRAM/PRAM"

Since we do not use Macs, it should not be an issue at all, should it?
Doesn't this mean, that it is only relevant, if you use this software with a Mac?
 
Just use Clover method to enable trim
 
Status
Not open for further replies.
Back
Top