Estoy escribiendo un programa en C y quiero que tenga una opción que mantendrá despierta una laptop Mac incluso si la tapa está cerrada para que los procesos puedan continuar. Parece que hay muy poca información disponible sobre este tema, así que realmente no sé por dónde empezar. Si alguien sabe cómo lograr esto o dónde puedo encontrar más información, realmente agradecería (es decir, ¿tendré que trabajar con el BIOS para esto o hay funciones integradas?). Además, si es más fácil hacerlo en otro idioma, está bien ya que no estoy tercamente configurado usando C.¿Evita que el equipo portátil de Mac se quede dormido cuando está cerrado?
Respuesta
Necesita escribir una extensión de kernel para esto. El sistema operativo no lo admite de manera predeterminada porque las computadoras portátiles no están diseñadas para enfriarse adecuadamente con la tapa cerrada y la pantalla interna habilitada. SleepLess es una utilidad de $ 10 que hará lo que quieras, también. Si deforma la pantalla o algo así, es su propia culpa. :-).
Si quiere escribir algo usted mismo, LidSleep.kext parece un buen comienzo (hace lo contrario, es decir, duerme bien en la tapa) y viene con el código fuente.
(Es possible and supported despertar algunos ordenadores portátiles Mac con la pantalla cerrada mediante el uso de un dispositivo de entrada externa.)
Puede hacer esto usando el marco del Kit de E/S, vea QA1340 listando 2 para código de ejemplo usando IOPMAssertionCreateWithName
para prevenir temporalmente el sueño.
Como menciona Q & A, solo puede evitar el reposo inactivo con aserciones IOPM, no forzar el reposo (como en una tapa cerrada). –
@Nicholas: Ah, parece que me perdí esa nota. – Hasturkun
Si su portátil es un modelo bastante reciente, no es necesario añadir nada. Si estás ejecutando Lion, simplemente funciona. Si está ejecutando un sistema operativo anterior, debe activar la computadora portátil mediante el envío de una pulsación de tecla o un clic del mouse desde un teclado o mouse externo. Ver http://support.apple.com/kb/ht3131
No, esto no es para usar con un teclado o mouse externo. Esto es para que un programa no interactivo pueda continuar ejecutándose cuando se cierra la computadora portátil. –
El enlace a LidSleep.kext enumerados anteriormente no funciona, por lo que puedo informar que el autor de nosleep ha hecho que el código fuente está disponible aquí, para que pueda ver por sí mismo cómo se puede hacer:
- 1. ¿Cómo evitar programáticamente que una Mac se quede dormida?
- 2. ¿Qué evento se desencadena cuando Mac vuelve de estar dormido?
- 3. ¿Evita que las ventanas entren en suspensión cuando mi programa se está ejecutando?
- 4. Cómo obtener el tiempo de actividad del sistema iOS, que no se detiene cuando está dormido
- 5. Acceso a la red cuando el teléfono Android está dormido
- 6. Acción cuando el formulario está cerrado
- 7. ¿Trucos para evitar que el teléfono se quede dormido en el navegador web móvil usando JavaScript/HTML?
- 8. ¿Cómo detectar que JFrame está cerrado?
- 9. Actualizar página cuando está cerrado colorbox
- 10. La sesión de Omniauth caduca cuando el navegador está cerrado
- 11. C Sockets: evitar basura cuando el socket está cerrado
- 12. Making (Mac) Vim vuelve a abrir con los archivos abiertos cuando está cerrado
- 13. ¿Cómo elimino las cookies cuando el navegador está cerrado?
- 14. Excel VBA - email no Enviar Cuando el equipo está bloqueado
- 15. ¿Está CERRADO/FCLOSE en stdin se garantiza que es correcto?
- 16. ¿Cómo se evita que una información sobre herramientas jquery.qtip2 se oculte cuando el mouse está sobre la punta?
- 17. Evita temporalmente que se apague Linux
- 18. nmap dice que el puerto está cerrado mientras que nestat dice que está escuchando
- 19. ¿Evita que la pantalla se desplace hacia arriba cuando se muestra el teclado virtual en WP7?
- 20. ¿Se ejecuta PHP en segundo plano cuando el navegador está cerrado?
- 21. ¿Evita que ciertas propiedades se actualicen?
- 22. ADODB open recordset failed/"La operación no está permitida cuando el objeto está cerrado"
- 23. ¿El proyecto Flying Saucer está cerrado?
- 24. ¿Cómo se evita que las matrices de longitud variable se bloqueen cuando no hay suficiente memoria?
- 25. ¿Cómo se evita que la consola se cierre después de que el programa finalice en C?
- 26. Bloc de notas de cierre ++ cuando el último documento está cerrado
- 27. ¿Qué se entiende cuando se dice que un fragmento de código es portátil?
- 28. ListBox y Datasource: evita que se seleccione el primer elemento
- 29. ¿Cómo se evita que se repita al crear un registrador?
- 30. ResultSet no cerrado cuando se cierra la conexión?
Por cierto, solo debería ser posible evitar el reposo en vacío, sin que se evite la visualización de la suspensión. – Hasturkun
¡Gracias chicos! El código fuente de LidSleep fue muy útil. – ORL