Pourtant aucun changement dans l'Open Firmware n'a été fait dans les derniers PowerBook. SafeSleep ne fait que modifier les paramètres de Boot de l'OF et créer un fichier d'hibernation.
Pour ceux qui ne savent pas SafeSleep est une fonctionnalité présente depuis 10.4.3 permettant au PowerBook de ne pas tout perdre en cas de rupture complète d'énergie. En gros c'est la même chose que le mode "Hibernation" des PC sous Windows. La seule différence, c'est que sur les Mac, on ne choisis pas entre Veille et Hibernation. C'est les deux à la fois. Si on met en veille la machine, elle sauvegarde la mémoire et se met en veille, comme ça, si pas de coupure d'alimentation, on sort de la veille de la manière habituelle. Si il y a coupure d'alimentation, le système reprend sur la version enregistré sur le disque. L'opération est relativement rapide (quelques secondes, c-à-d largement moins qu'un reboot de la machine).
Pourtant apple ne propose ça QUE pour les powerbook de dernière générations

Cependant, SafeSleep n'est activé (comme le dualhead) que si une certaine variable est présente et activé dans le path de l'Open Firmware.
Heureusement, pour les posseseur d'iBook (pour les autres l'intérêt me semble largement moindre) et surement aussi pour les pocesseur d'ancien PowerBook, tout comme avec le Dual Head, on peu quand meme forcer/faire croire à Mac OS que cette option fait partit des caractéristiques de la machine

Grace aux scripts shell suivants :
#!/bin/sh echo Enabling safe sleep and iBook dual head mode... echo "You may have to enter your password" # the "msh" is arbitrary. sudo nvram nvramrc='" /" select-dev 00000000 " graphic-options" get-my-property 2drop ! " msh" encode-string " has-safe-sleep" property unselect ' sudo nvram "use-nvramrc?"=true echo done.
pour activer le Dual Head ET SafeSleep
#!/bin/sh echo Enabling safe sleep... echo "You may have to enter your password" # the "msh" is arbitrary sudo nvram nvramrc='" /" select-dev " msh" encode-string " has-safe-sleep" property unselect ' sudo nvram "use-nvramrc?"=true echo done.
Pour n'activer QUE SafeSleep
Une fois le script executé, il faut encore creer le fichier d'hibernation :
sudo pmset -a hibernatemode 3
(plus d'info la dessus) (ça doit prendre en gros TailleRam+750Mo sur le disque)
Apres, il faut redémarrez la machine, et ouvrez la Console (/Application/Utilities/Console.app) et surveillez le fichier "system.log"
Mettez votre machine en veille, et sortez-en la. Normalement une référence a SafeSleep devrait y apparaitre
Nov 7 14:13:16 iBookG4 kernel[0]: System SafeSleep Nov 7 14:13:16 iBookG4 kernel[0]: sleep
Si c'est le cas, bravo ! Le patch est appliqué, et SafeSleep est fonctionel. Pour le tester, mettez votre machine en veille, et enlevez toutes alimentation (bloc d'alim, batterie etc..)
Quand vous rebranchez, appuyez sur le bouton d'alim, et admirez

(dans System.log il devrait y apparaitre des infos tel que :
Nov 7 00:23:33 iBookG4 kernel[0]: System SafeSleep Nov 7 00:23:34 iBookG4 kernel[0]: System SafeSleep Wake Nov 7 00:24:41 iBookG4 kernel[0]: hibernate image path: /var/vm/sleepimage Nov 7 00:24:41 iBookG4 kernel[0]: Opened file /var/vm/sleepimage, size 805306368, partition base 0x8000, maxio 100000)
Et voila

.
Je ne garantit pas le bon fonctionnement de ce patch sur toutes les machines. Il marche tres bien chez moi, mais on ne sais jamais.
Pour les fichiers de script, recopiez les TEL QUEL sinon cela ne marchera pas
Pour plus d'infos :http://matt.ucc.asn.au/apple/machibernate.html