Tengo un Macbook Pro de 17 pulgadas de mediados de 2009 (5,2), con MacOS Mojave 10.14 instalado. Quiero habilitar la hibernación (o standby, o deep sleep, o safe sleep) para poder apagar la RAM cuando esté en modo de reposo.
He intentado
sudo pmset -a hibernatemode 25
pero mi ordenador sigue despertando instantáneamente de la suspensión, lo que significa que no está hibernando en el disco.
He leído aquí que las opciones autopoweroff
y standby
son relevantes, pero pmset -g
no muestra esas opciones para mi ordenador:
System-wide power settings:
Currently in use:
womp 1
autorestart 0
halfdim 1
sms 1
hibernatefile /var/vm/sleepimage
gpuswitch 2
networkoversleep 0
disksleep 1
sleep 0
hibernatemode 25
ttyskeepawake 0
displaysleep 1
acwake 0
lidwake 0
man pmset
dice,
standby causes kernel power management to automatically hibernate a machine after it has slept for a specified time period. This saves power while asleep. This setting defaults to ON for supported hardware. The setting standby will be visible in pmset -g if the feature is supported on this machine.
y
autopoweroff is enabled by default on supported platforms as an implementation of Lot 6 to the European Energy-related Products Directive. After sleeping for <autopoweroffdelay> seconds, the system will write a hibernation image and go into a lower power chipset sleep. Wakeups from this state will take longer than wakeups from regular sleep.
Parece entonces que standby
no es compatible con mi modelo, por lo que debería ser irrelevante. También, autopoweroff
sólo se aplica a cuando la CA está conectada, pero tampoco puedo hibernar cuando está en la batería.
¿Por qué mi portátil no puede hibernar? Estoy seguro de que lo he tenido hibernando en versiones anteriores de macOS.
También he reiniciado mi SMC y NVRAM, y sigue el mismo problema.
Salida de pmset -g assertions
:
2018-09-25 22:17:33 -0700
Assertion status system-wide:
BackgroundTask 0
ApplePushServiceTask 0
UserIsActive 1
PreventUserIdleDisplaySleep 0
PreventSystemSleep 0
ExternalMedia 0
PreventUserIdleSystemSleep 0
NetworkClientActive 0
Listed by owning process:
pid 111(hidd): [0x0000030000098140] 00:00:00 UserIsActive named: "com.apple.iohideventsystem.queue.tickle.4294968067.3"
Timeout will fire in 120 secs Action=TimeoutActionRelease
No kernel assertions.
Idle sleep preventers: IODisplayWrangler
EDITAR 1:
Tengo una nueva sospecha sobre esto, que es que actualicé mi RAM en esta máquina de 2 cartuchos de RAM de 2GB a 2 cartuchos de RAM de 4GB, sin embargo, /var/vm/sleepimage
es de 4294967296 bytes, por lo que no puede contener todos los datos en mi RAM. Lo que he intentado con respecto a esto:
1 ) borrando /var/vm/sleepimage
, reiniciando, durmiendo. El sistema operativo lo recrea con el mismo tamaño.
2 ) corriendo mkfile 9G biggersleepimage
, situándolo en /var/vm/biggersleepimage
, corriendo chown root:wheel
y chmod +t biggersleepimage
, y luego correr pmset hibernatefile /var/vm/biggersleepimage
. En este caso, el archivo se redimensiona a 4294967296 bytes después del último comando.
3 ) rebuscando en los registros y leyendo man pmset
y buscar en Google un montón.
Resulta que tenía mis viejos cartuchos de RAM por ahí, así que los introduje para ver si se arreglaba, pero sigue sin hibernar. (Sin embargo, no intenté reiniciar la NVRAM y el SMC con la vieja RAM)
EDIT 2 (¿progreso?):
He movido el sleepimage
a mi disco secundario y se hibernó, pero luego no fue capaz de despertar. Tengo dos discos en este ordenador: un SSD conectado donde solía estar la unidad de DVD (Este es mi disco de sistema) y un HDD donde solía estar el disco de sistema original. Usando mkfile 4G /Volumes/Data/sleepimage; pmset hibernatefile /Volumes/Data/sleepimage
Luego, al pulsar el botón de reposo, el ordenador hibernó, pero al intentar reanudar la actividad, se quedó colgado en una pantalla gris hasta que me di por vencido y lo apagué y encendí.
EDIT 3: ¡Increíble! Cambié las ubicaciones de mi SSD y HDD y moví la imagen de hibernación de nuevo a la SSD y puse la vieja RAM en y ahora se hiberna con éxito y se reanuda! va a tratar ahora con la nueva RAM
EDITAR 4: Con 8GB de RAM y 5GB utilizados antes de decirle al ordenador que se duerma, y ls -l /var/vm/sleepimage
todavía muestra 4294967296 bytes, ¡puedo hibernar y reanudar con éxito! Parece que el problema era que mi unidad de sistema estaba en la bahía equivocada.