9 votos

MacBook Pro con batería disparada, ¿es posible evitar el estrangulamiento de la CPU?

Tengo un MacBook Pro 15" de finales de 2013 que aún tiene la batería original. Está en 1.144 ciclos de carga, y hace unos días la salud de la batería estaba en torno al 50%, aunque desde entonces se desplomó al 4%.

La salida de pmset -g batt :

Now drawing from 'AC Power'
 -InternalBattery-0 (id=xxxxxxx)    100%; charged; 0:00 remaining (Poor/Good)
    failure: "Permanent Battery Failure" present: true

(Ayer mismo, la salida era la misma excepto por failure: "Fuse Blown" .)

La salida de Información del Sistema:

Battery Information:

  Model Information:
  Serial Number:    [redacted]
  Manufacturer: SMP
  Device Name:  bq20z451
  Pack Lot Code:    0
  PCB Lot Code: 0
  Firmware Version: 702
  Hardware Revision:    1
  Cell Revision:    1206
  Charge Information:
  Charge Remaining (mAh):   308
  Fully Charged:    Yes
  Charging: No
  Full Charge Capacity (mAh):   319
  Health Information:
  Cycle Count:  1144
  Condition:    Replace Now
  Battery Installed:    Yes
  Amperage (mA):    0
  Voltage (mV): 11090

El icono de la batería/energía en la barra de menús también indica Condition: Replace Now .

Según una serie de otras publicaciones ( 1 , 2 , 3 , 4 , 5 ), cuando se detecta que la batería está agotada o se retira, la CPU se regula a su velocidad más lenta posible. Esto es lo que me pasó hace dos días: después de un reinicio (debido a sacar el adaptador de corriente unos segundos antes de cerrar la tapa), el ordenador funcionaba muy muy lentamente y los menús de iStat mostraban siempre una velocidad de reloj de la CPU de 800 MHz.

Ahora bien, entiendo que la batería está estropeada y hay que cambiarla, y he pedido una nueva, pero no llegará de un día para otro. Mientras tanto, tengo que seguir utilizando el portátil, ya que es el único ordenador que tengo. Es realmente doloroso trabajar con la CPU permanentemente estrangulada a 800 MHz, y estoy buscando una solución temporal.

Según entendí en otras respuestas, esto podría ser imposible, pero curiosamente, ayer estuve jugueteando con esto, y en un momento dado, el ordenador volvió a funcionar de repente (esto ocurrió más o menos al mismo tiempo que estaba usando pmset para cambiar hibernatemode de 3 a 25, pero probablemente no esté relacionado). Comprobando los menús de iStat, la CPU ya no estaba siendo estrangulada. Esto es exactamente lo que necesitaba para aguantar el periodo hasta que llegue la batería.

Por desgracia, esta mañana el portátil se ha vuelto a reiniciar. Esto a pesar de que cerré la tapa del ordenador, esperé hasta que los ventiladores se detuvieran, y sólo entonces saqué el adaptador de corriente, pero aún así, cuando conecté el adaptador de corriente de nuevo y abrí la tapa, se había reiniciado. Ahora la CPU vuelve a estar atascada en 800 MHz y el ordenador vuelve a estar inservible.

Mi pregunta es: ya que salió de la aceleración una vez (aunque no estoy seguro de lo que pasó, o lo que hice, que fue responsable), ¿hay algo que pueda hacer para que salga de la aceleración de nuevo?

3voto

hey Puntos 21

Posible solución 1: La solución propuesta por Henry Gross-Hellsen es la más común. A mí no me ha funcionado, pero hay bastantes personas que responden que les ha funcionado.

He eliminado todo el IOPlatformPlugin.kext, pero todavía la CPU se reporta como 0,80Ghz (800Mhz). Confirmado el kext eliminado, y en la reconstrucción de kext sudo kextcache -i / se quejó de que había desaparecido.

Mi único razonamiento para esto es que importa en qué dispositivo estás probando esto. Las personas que informan de que ha trabajado para ellos son en Macbook Air o MacBook ~ que son mucho más antiguos que el mío (el mío es 2015). O no mencionan cuál es su dispositivo en absoluto, por lo que es difícil decir que va a trabajar en macs "más nuevos".

Enlace relevante: https://eclecticlight.co/2019/02/25/playing-with-fire-dealing-with-slow-hot-macs/ Eso no se ha publicado mucho. Pero explica que la mayoría de los kext que se están eliminando son para máquinas de 2013 y anteriores. Lo que podría explicar por qué no hizo una diferencia para mí en mi 2015 MacBook Pro.

Posible solución 2: Lo que sí me funciona, y lo has tocado, es que si dejo que mi Mac entre en la configuración predeterminada de ahorro de energía de forma natural, vuelvo a tener velocidad. Esto es 100% reproducible para mí.

El único problema que tengo es que no puedo imitar esto a través de pmset . Todavía tengo el kext eliminado de la 'Solución 1' de arriba, no estoy seguro de si tiene un impacto en por qué esto funciona.

No voy a investigar esto más a fondo para conseguir el derecho pmset para desencadenar esto manualmente y luego tener inicio script porque como todas las personas que tienen esta pregunta, rápidamente obtener un reemplazo y seguir adelante. Pero espero que esta información sea útil para otros que necesitan una solución rápida sin sentir demasiada urgencia en conseguir una nueva batería / ordenador.

\=======================

Otro hallazgo interesante es https://volta.garymathews.com/ que es una aplicación (probablemente carga un kext) que está haciendo lo contrario de lo que estamos tratando de lograr (undervolting o underclocking de la CPU para ahorrar energía). Pero es interesante ya que si esto es posible, entonces evitarlo también debería ser posible.

En el sitio web se lee:

Sólo compatible con los procesadores Haswell y Broadwell (Macbooks de 2013 a 2015). Esta funcionalidad se ha evitado en las generaciones posteriores.

No lo hemos probado porque no intentamos ahorrar energía, sino que usamos más de 800Mhz.

2voto

Tenga en cuenta que esto puede dañar su dispositivo está advertido. Continúe bajo su propio riesgo

En resumen, IOPlatformPlugin es la gestión de la energía, el escalado de la CPU, la frecuencia de inactividad (y otros). Cuánto ayuda lo siguiente es discutible.

  1. Desactivar SIP en la recuperación (CMD+R en el arranque), abrir el terminal (CMD+3 i creo), csrutil disable
  2. Reinicie en MacOS, mueva /Sistema/Biblioteca/Extensiones/IOPlatformPlugin.kext a / o a algún otro lugar si no sudo mv /System/Library/Extensions/IOPlatformPlugin.kext / (terminal)
  3. Reconstruir la caché sudo kextcache -i / , reiniciar
  4. Volver a habilitar el SIP en la recuperación csrutil enable

0voto

sflee Puntos 101

Esto me ha funcionado. Sin embargo, el Macbook Air arranca y funciona con el ventilador a tope TODO EL TIEMPO. Pierde la capacidad de detectar la temperatura de la CPU (y aplicaciones como Mac Fan Control no pueden detectar el ventilador).

  • Vaya a Sistema > Biblioteca > Extensiones. A continuación, desplázate hacia abajo y busca un archivo de texto llamado IOPlatformPluginFamily.kext.
  • Haga clic con el botón derecho del ratón en el archivo y diríjase a Mostrar contenido del paquete > Recursos > Plugins.
  • En la nueva lista, haga clic con el botón derecho en ACPI_SMC_PlatformPlugin.kext y vaya a Mostrar contenido del paquete > Contenido > Recursos.
  • Por último, localice el archivo PLIST que corresponde a su número de modelo de Mac anotado anteriormente y elimínelo.

Luego tuve que reiniciar tres veces. Bueno, ¡me di cuenta de que empezó a funcionar después de reiniciar unas cuantas veces! enter image description here

0voto

BBHeeMAA Puntos 106

En un Macbook Air de principios de 2015, me las arreglé para conseguirlo escribiendo en el IA32_PERF_CTL MSR directamente. He explicado los pasos exactos en otra respuesta aquí .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X