Now after releasing the newest apple operating system i had some problems with the TRIM command for SSDs. As many of you know, apple keeps their IOAHCI driver for themself so that no other company can write a kernel extension. And as a plus they integrated a kext signing mechanism into Yosemite which leads to the inability to load unsigned kernel extensions.
Here is what you have to do in order to enable TRIM. Open your terminal and enter:
# sudo su # nvram boot-args=kext-dev-mode=1 # vim /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
then change following lines
<dict>
<key>Kernel Flags</key>
<string></string>
</dict>
to
<dict> <key>Kernel Flags</key> <string>kext-dev-mode=1</string> </dict>
After that, reboot your machine. The above modifications disable kext-signing system-wide!!!
After the reboot open the terminal again and enter
# sudo su # cd /System/Library/Extensions/IOAHCIFamily.kext # cd Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS # cp IOAHCIBlockStorage IOAHCIBlockStorage.backup # perl -pi -e 's|\x00\x41\x50\x50\x4c\x45\x20\x53\x53\x44\x00|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|sg' IOAHCIBlockStorage # touch /System/Library/Extensions/ # kextcache -prelinked-kernel /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache -K /System/Library/Kernels/kernel /System/Library/Extensions
then reboot again and everything should be fine again 😉
more infos here
UPDATE:
Starting with OSX 10.10.5 you have a built-in command to enable TRIM. Instead of manipulating the file IOAHCIBlockStorage, open the terminal and enter following command:
# sudo trimforce enable