Revivir equipos antiguos mediante OpenCore Legacy Patcher (OCLP) permite extender la vida útil de máquinas excelentes como la MacBook Air de 13 pulgadas (Early 2015, MacBookAir7,2), con procesador Intel Core i5 y 8 GB de RAM. Actualmente esta máquina corre macOS Sequoia 15.8.x de forma sólida, rápida y estable.
Sin embargo, al actualizar el almacenamiento original por un SSD NVMe de reemplazo genérico (en este caso una unidad OSC PCIe de 256 GB), surgió un problema crítico durante el arranque en frío que requirió investigar a fondo.
A continuación comparto el diagnóstico técnico, la causa raíz del fallo y un script en Bash (optimizarmacbook.sh) para aplicar automáticamente todas las optimizaciones del sistema sin sacrificar la estética de macOS.
1. El problema: Cuelgues en frío y sobrecalentamiento
El fallo se presentaba de forma intermitente, principalmente tras dejar el equipo apagado durante horas (arranque en frío):
- Al encender, la barra de progreso de la manzana se quedaba detenida a mitad de camino y no avanzaba.
- Mientras la pantalla permanecía congelada, el chasis de la MacBook Air comenzaba a calentarse notablemente.
- Obligaba a forzar el apagado manteniendo presionado el botón físico de encendido.
- Al reiniciar tras el apagado forzado, el sistema finalmente lograba arrancar pero mostrando el aviso de que el equipo se había reiniciado por un Kernel Panic.
En la configuración de OCLP (Settings > Extras) viene marcada por defecto la opción 3rd Party NVMe PM, la cual inyecta la extensión
NVMeFix.kext para forzar transiciones de ahorro energético (APST) en discos no originales.Los SSDs genéricos o económicos (con controladoras Silicon Motion sin DRAM, Realtek o Maxio) no toleran bien estas órdenes a nivel de chip. La controladora entra en timeout (
IONVMeController), el kernel queda esperando respuesta y los núcleos de la CPU caen en un bucle de espera activa (I/O stall / spin-lock), disparando la temperatura hasta que se corta la corriente.
2. La solución de hardware en OCLP
La solución definitiva no requiere cambiar de disco ni dar por perdida la máquina:
- Abrir OpenCore Legacy Patcher e ingresar en Settings > Extras.
- Desmarcar la casilla 3rd Party NVMe PM.
- Volver al menú principal y hacer clic en Build and Install OpenCore.
- Instalar en el disco interno (
disk0) y en su partición EFI (disk0s1).
Al desactivar esa opción, el kernel de macOS trata al SSD con la gestión estándar y la unidad arranca de inmediato sin congelar el bus PCIe.
3. El script de optimización: optimizarmacbook.sh
Para asegurar que el SSD no falle al cerrar la tapa (suspensión en RAM) y para exprimir la fluidez del procesador de 2 núcleos sin perder las transparencias ni la elegancia de macOS, preparé un script en Bash completamente portable (detecta automáticamente el usuario activo y pide contraseña de forma interactiva).
- pmset: Configura
hibernatemode 0,standby 0,autopoweroff 0ypowernap 0(suspensión rápida en memoria RAM sin desgastar el SSD). - Liberación de espacio: Elimina
/var/vm/sleepimagerecuperando gigabytes en disco. - Time Machine: Desactiva la creación de instantáneas locales automáticas que saturan el disco interno (manteniendo intactas las copias manuales a unidades externas).
- Aceleración de UI: Reduce el retardo de Mission Control (0.1s), acelera la apertura de diálogos de guardar/abrir y elimina el rebote de iconos en el Dock.
- Periféricos limpios: Bloquea la creación de archivos basura
.DS_Storeen pendrives USB y unidades de red.
Código del script (optimizarmacbook.sh):
#!/usr/bin/env bash
set -e
CURRENT_USER=$(id -un)
echo "=== Optimizando macOS para: ${CURRENT_USER} ==="
# Solicitar permisos interactivos de administrador
sudo -v
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
# 1. Gestion de energia para SSD NVMe
echo "[1/4] Ajustando gestion de energia (pmset)..."
sudo pmset -a hibernatemode 0 standby 0 autopoweroff 0 powernap 0
[ -f /var/vm/sleepimage ] && sudo rm -f /var/vm/sleepimage
# 2. Desactivar snapshots locales de Time Machine
echo "[2/4] Desactivando instantaneas locales automaticas..."
sudo tmutil disable 2>/dev/null || true
for d in $(tmutil listlocalsnapshotdates 2>/dev/null | grep -v 'Snapshot dates'); do
sudo tmutil deletelocalsnapshots "$d" 2>/dev/null || true
done
# 3. Aceleracion de interfaz sin perder estetica
echo "[3/4] Acelerando respuesta de ventanas y Dock..."
defaults write com.apple.dock expose-animation-duration -float 0.1
defaults write -g NSWindowResizeTime -float 0.001
defaults write com.apple.dock no-bouncing -bool true
defaults write -g QLPanelAnimationDuration -float 0.1
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
defaults write com.apple.CrashReporter DialogType none
# 4. Reiniciar servicios en caliente
echo "[4/4] Reiniciando Dock y Finder..."
killall Dock 2>/dev/null || true
killall Finder 2>/dev/null || true
echo "=== Optimizaciones aplicadas exitosamente ==="
4. Resultados tras semanas de uso continuo
Las pruebas de rendimiento y estabilidad en este MacBook Air 2015 con macOS Sequoia han sido concluyentes:
- Arranques en frío impecables: Encendido rápido en unos 25 a 30 segundos, chasis frío y sin bloqueos de barra.
- Cero Kernel Panics: Los registros de diagnóstico se mantienen completamente limpios tras semanas de uso.
- CPU desahogada: En reposo, la máquina alcanza picos de hasta un 90% de CPU inactiva (idle), manteniendo una media de 65% libre incluso con aplicaciones de trabajo abiertas.
- Preparado para el futuro: Guardando este script en iCloud Drive, toda la optimización se puede re-aplicar en 3 segundos tras cualquier actualización de sistema o al saltar en el futuro a macOS Tahoe con OCLP 3.x.
Prólogo mejorado con Inteligencia Artificial basado en el contexto humano.
No hay comentarios:
Publicar un comentario