Ενεργοποιήστε trim για οποιοδήποτε ssd στο Mac OS X [UPDATED]

Internal.png
Με τον ερχομό του 10.6.6, πολλοί πρόσεξαν ότι πλέον στο System Profiler υπήρχε αναφορά για trim support, η οποία προς απογοήτευση μας ήταν αρνητική σε όλα τα μηχανήματα. Από την άλλη, όσοι αγόρασαν τα τελευταία Macbook Pro 2011 με apple ssd έχουν trim support, επίσης όσοι έχουν εγκαταστήσει το 10.7 Lion Dev preview, και έχουν apple ssd πάλι έχουν trim. Οι περισσότεροι σκέφτηκαν ότι ο περιορισμός αφήνει μόνο όσους δίσκους βλέπει το σύστημα ως Apple SSD, και είχαν δίκιο. Όπως ανέφεραν ομάδες χρηστών απο Ρωσία και Γερμανία που μελέτησαν το θέμα, ο περιορισμός βρίσκεται στο IOAHCIBlockStorage.kext το οποίο βρίσκεται πακεταρισμένο με το IOAHCIFamiliy.kext του built που φοράνε τα τελευταία Macbook Pro.
Οδηγίες για το πώς να ενεργοποιήσετε trim support μετά το break...

Πριν ξεκινήσουμε, θα χρειαστούμε 2 πράγματα, τους ACHI drivers του τελευταίου macbook pro, και έναν hex editor όπως ο 0xED. Προφανώς αν έχετε τελευταίο macbook pro early 2011 δε θα χρειαστεί να κατεβάσετε το ACHI driver και να το εγκαταστήσετε, απλά θα κάνετε τις αλλαγές με το hexeditor, αφού πρώτα κρατήσετε ένα backup το αρχείο, και ταυτόχρονα ένα ακόμα αντίγραφο του αρχείου στο οποίο θα δουλέψετε, αφού δεν έχετε permissions να το χρησιμοποιήσετε αλλιώς.

Αφού λοιπόν κατεβάσουμε τα απαραίτητα αρχεία θα κάνουμε τις αλλαγές στο IOACHIFamily.kext. Ανοίγουμε το 0xED, και από το menu bar επιλέγουμε:
File -->Open
κάνουμε drag 'n drop το IOAHCIFamily.kext μέσα στο open file dialog, και πλοηγούμαστε στο:
Contents -> Plugins -> IOAHCIBlockStorage.kext -> Contents -> MacOS
τέλος ανοίγουμε το IOAHCIBlockStorage

0xedopenfile.png
Αφού ανοίξουμε το IOAHCIBlockStorage θα ψάξουμε να βρούμε το string "APPLE SSD", θα βρει δυο αποτελέσματα στα offsets 3B9D8
και EE45.
0xed.gif
Τα δύο αυτά strings θα τα αντικαταστήσουμε με τους πρώτους 9 χαρακτήρες του δικού μας ssd, παράδειγμα για "OCZ-VERTEX" θα δώσουμε "OCZ-VERTE", το όνομα του ssd μας μπορούμε να το εντοπίσουμε από το System Profiler, ή απο το Disk Utility.
ocz-verte.gif
Αφού τελειώσουμε, αποθηκεύουμε το αρχείο και στη συνέχεια θα προσπαθήσουμε να αντικαταστήσουμε το ήδη υπάρχον kext με αυτό. Εντοπίζουμε το IOAHCIFamily.kext στο directory:
/System/Library/Extensions/
και, αφού έχουμε κάνει ένα αντίγραφο ασφαλείας, το πετάμε στο Trash (θα ζητήσει admin pass), το Trash δε θα μας αφήσει να το σβήσουμε εντελώς αφού χρησιμοποιείται ακόμα. Έπειτα αντιγράφουμε το patchαρισμένο IOAHCIFamily.kext στο:
/System/Library/Extensions/
Καλό θα ήταν να κάνουμε ένα Get Info στο φάκελο Extensions και να βεβαιωθούμε ότι τα ownership rights είναι σωστά:
System : Read Write
wheel : Read only
everyone : Read only
Kαθώς και να κάνουμε ένα Apply to enclosed items...
permissions.png
Επίσης καλό θα ήταν να κάνουμε Repair Permissions, και τέλος πρέπει να σβήσουμε τα Caches. Τα Caches βρίσκονται σε τρία σημεία στο σύστημα:
/System/Library/Caches/
/Library/Caches/
~/Library/Caches/
Απλά πετάμε τα περιεχόμενά τους στο Trash.
Μετά από τα παραπάνω κάνουμε reboot και εάν όλα έχουν πάει καλά στο System Profiler θα δούμε οτι το trim είναι ενεργοποιημένο.

Μαρτυρίες υποστηρίζουν ότι ssd όπως οι agility οι vertex, οι x25 2nd gen, και οι silicon edge blue, λειτουργούν απροβλημάτιστα, ακόμα όμως είναι πολύ νωρίς για να πούμε με σιγουριά.
Το παραπάνω hack είναι πολύ πιθανό να σπάσει με τα επόμενα update του λειτουργικού, σίγουρα θα σπάσει εάν εφαρμόσουμε το combo update, οπότε και θα πρέπει να ξανακάνουμε τη διαδικασία.

Αν έχει γίνει κάποιο λάθος, και το σύστημα δε bootάρει, προσπαθήστε να κάνετε boot πατώντας παρατεταμένα το shift, με αυτό τον τρόπο ξεκινάτε σε safe mode, γίνονται flush τα Caches και εφόσον βρίσκεστε στο safe mode το σύστημα δε θα φορτώσει τα kexts, εκεί μπορείτε να αντικαταστήσετε πάλι το αρχικό kext που κρατήσατε ως backup, ή να ξαναδοκιμάσετε τη διαδικασία σε περίπτωση που νομίζετε ότι δε κάνατε κάτι σωστά.

Ένας από τους αναγνώστες του Hardmac, ο/η Cindori έφτιαξε ένα προγραμματάκι που κάνει όλη τη δουλειά για εσάς, οπότε πλέον είναι πιο εύκολο για όλους.
trimenabler.png
Το πρόγραμμα μπορείτε να το κατεβάσετε από εδώ
Να ευχαριστήσω τον Mirdin για το heads up, και να ξαναπώ ότι επιχειρώντας να ενεργοποιήσετε το trim support σε μηχανήματα που κανονικά δε το υποστηρίζουν μπορεί να βλάψει το ssd, η να επιφέρει απώλεια δεδομένων, ουδέ μια ευθύνη φέρουμε στη περίπτωση που κάτι πάει λάθος.