Reposo del PC en Snow Leopard (parte 3)

miliuco

Activo
Recuperando el reposo (sleep) después de instalar el controlador USB3 en Snow Leopard

En un
Entrar or Registrarse para completar la lectura
anterior se comenta la manera de habilitar los puertos USB3 en la placa P55-USB3 con SL mediante el controlador de LaCie modificado por modbin.
También interesa recordar el
Entrar or Registrarse para completar la lectura
del blog en que se propone una manera de tener sleep en el Hackintosh con SL mediante un script de KWS.

El inconveniente observado al instalar el controlador USB3 es que se pierde el modo de reposo conseguido gracias al script de KWS. La causa está en que mientras esté cargado en memoria el controlador USB3 PXHCD.kext el PC no entra bien en reposo pero descargando la extensión con el comando kextunload sí lo hace correctamente.

Es necesario algún método que permita descargar PXHCD.kext al entrar en reposo y volver a cargarlo al despertar. Este método es sleepwatcher.

Sleepwatcher es una utilidad de línea de comandos que funciona como proceso de fondo (daemon) vigilando la inactividad del Mac y los procesos de reposo y despertar. Su utilidad radica en la posibilidad de ejecutar un comando Unix al detectar que el Mac va entrar o sale del reposo. Se descarga desde la web del autor Bernhard Baehr.

Se instala de esta manera:

- copia la carpeta sleepwatcher_2.1 al Escritorio para que los siguientes comandos funcionen desde la ruta ~/Desktop/sleepwatcher_2.1

- copia el ejecutable y la página de ayuda:
Código:
$ sudo cp ~/Desktop/sleepwatcher_2.1/sleepwatcher /usr/local/sbin
$ sudo cp ~/Desktop/sleepwatcher_2.1/sleepwatcher.8 /usr/local/share/man/man8

- copia a la carpeta /Library/LaunchDaemons la configuración de autoarranque de sleepwatcher:
Código:
$ sudo cp ~/Desktop/sleepwatcher_2.1/config/de.bernhard-baehr.sleepwatcher-20compatibility.plist /Library/LaunchDaemons/de.bernhard-baehr.sleepwatcher.plist

- copia a la carpeta /etc los archivos que se leen al entrar o salir del reposo, se trata de 2 scripts, rc.sleep y rc.wakeup:
Código:
$ sudo cp ~/Desktop/sleepwatcher_2.1/config/rc.* /etc

- lanza el agente sleepwatcher como proceso de fondo:
Código:
$ sudo launchctl load /Library/LaunchDaemons/de.bernhard-baehr.sleepwatcher.plist

- con esta configuración en marcha, podemos crear en nuestra carpeta de usuario los archivos .sleep y .wakeup con los comandos que deseamos ejecutar al entrar (.sleep) o al salir (.wakeup) del reposo

- el archivo .sleep ha de tener este contenido:
Código:
#! /bin/sh
kextunload /System/Library/Extensions/PXHCD.kext/

- el archivo .wakeup ha de tener este contenido:
Código:
#! /bin/sh
kextload /System/Library/Extensions/PXHCD.kext/

- para dirigir los posibles errores que surjan al ejecutar esos comandos hacia el registro del sistema podemos modificar los archivos anteriores de esta forma
Código:
#! /bin/sh
kextunload /System/Library/Extensions/PXHCD.kext/ >> /var/log/system.log
#! /bin/sh
kextload /System/Library/Extensions/PXHCD.kext/ >> /var/log/system.log
Si tenemos algún dispositivo USB3 montado en el Escritorio en el momento de entrar en reposo el proceso se detendrá con un mensaje sobre la expulsión del dispositivo que requerirá acción del usuario (pulsar Aceptar). Es conveniente tenerlo desmontado.
 
Arriba