Jump to content

(SOLUCIONADO) Indicador de bateria no funciona (Dell N4050)


hydra1ysk
 Share

36 posts in this topic

Recommended Posts

Si te da KP con la DSDT y el AppleACPIBatteryManager.kext entonces hay un error en la DSDT que el driver no reconoce relacionado con el código modificado de la batería. Al mismo tiempo dicho código se encuentra entro del dispositivo KBC (Keyboard o teclado), es decir que el medidor de la batería depende del teclado, según tu DSDT. En fin, puedes hacer varias pruebas por separado (una a la vez):

 

1) Prueba cambiando el método B1B4, quita el de RehabMan y coloca el original del topico de Zprood (NO generará errores de compilación):

Method (B1B4, 4, NotSerialized) 
{
  Or (ShiftLeft(Arg1,0x08), Arg0, Local0)
  Or (ShiftLeft(Arg2,0x10), Local0, Local0)
  Or (ShiftLeft(Arg3,0x18), Local0, Local0)
  Return (Local0)
} //for 32bit

2) Otra prueba, cambiando la estructura de la tercera parte, que todas las declaraciones queden así:

                            If (LEqual (Arg0, 0x03))
                            {
                                Store (ShiftRight (Arg1, 0x18), MZ34)
                                Store (ShiftRight (Arg1, 0x10), MZ33)
                                Store (ShiftRight (Arg1, 0x08), MZ32)
                                Store (Arg1, MZ31)
                            }

3) Intentar un recurso de ensayo y error modificando la tercera parte, que todas las declaraciones queden similar a la segunda:

                            If (LEqual (Arg0, 0x03))
                            {
                                Store (B1B4 (MZ31, MZ32, MZ33, MZ34), Arg1)
                            }

Como información adicional, dentro del metodo ECG9 encuentras los métodos que suministran los datos de la batería (EGB0, EGB1, EGB2 y EGB3):

            Store (EGB0 (BC00, BC04, BC08), Index (Arg1, 0x09))
            Store (EGB1 (BBI3), Index (Arg1, 0x0A))
            Store (EGB2 (BBI4), Index (Arg1, 0x0B))
            Store (EGB3 (BBI3), Index (Arg1, 0x0C))
Edited by juanerson
agregado el metodo B1B4 de Zprood que esta en la pagina 1
Link to comment
Share on other sites

2) Otra prueba, cambiando la estructura de la tercera parte, que todas las declaraciones queden así

 

Fue lo primero que hice. También me da KP

 

3) Intentar un recurso de ensayo y error modificando la tercera parte, que todas las declaraciones queden similar a la segunda:

 

Lo segundo que intente, pero también me arroja KP.

 

1) Prueba cambiando el método B1B4, quita el de RehabMan y coloca el original del topico de Zprood.

 

Aun no lo he hecho, mi duda es que si lo hago, todas las referencias al método B1B4 que existe en el método ECRB generaran errores al compilar el DSDT. Mi duda es, ¿que hago?. Lo otro, no entiendo mucho como que es exactamente el código que debo reemplazar del metodo de zprood, ¿va en la raíz o en algún método?

 

EDIT: Ya lo hice, y sigue con KP.... Pero mira el post que escribí abajo de este ;)

Link to comment
Share on other sites

EDIT: Como te comente, tengo otro DSDT de este mismo modelo, pensando que el mío podría tener algo malo, realice el mismo procedimiento que me enseñaste con este nuevo DSDT y logre iniciar sesión sin ningún problema. Veo el icono de la batería y en información del sistema me aparece la info de la batería.

 

Te adjunto el IOreg para que lo puedas hechar un vistazo. También te adjunto las fotos de la batería y del icono de notificación.

 

Lo unico malo es que con este DSDT he perdido la función de las hotkeys y el poder suspender el equipo cuando cierro la tapa del notebook. Bueno me imagino que esto puede tener solución.

 

Lo otro que te quería preguntar es como puedo obtener este tipo de notificación en la batería?? Aparece en el post de zprood

 

post-459659-1321807346.png

IOreg.zip

post-511544-0-15907300-1398020093_thumb.png

post-511544-0-17202400-1398020118_thumb.png

Link to comment
Share on other sites

Por favor sube esa DSDT con tus ajustes para compararla con la de tu propia máquina. Las hotkeys provienen del dispositivo AWM0. Ademas hay que ajustar los OperationRegion, que son las direcciones de memoria y procesador para la administración de energía (speedstep, sleep, etc.)

 

Por cierto, el .ioreg esta corrupto, te agradecería que lo volvieras a generar y súbelo por favor. Saludos.

Link to comment
Share on other sites

Creo que encontré el "error" cometido en el código de la bateria, en realidad fue un detalle que se pasó por alto. Y debe solucionar el problema.

 

Fíjate en la captura de pantalla, buscando diferencias con TextWrangler (ambos archivos en formato .DSL), a la derecha el que subiste en el comentario 21 que da KP, a la izquierda el que subiste en el comentario 30 que carga correctamente:

Captura de pantalla 2014-04-22 a la(s) 00.20.41.png

Nota: NO hay diferencias significativas entre ambos DSDTs, me refiero exclusivamente al CODIGO ORIGINAL O DE FABRICA. Sin embargo es mejor y altamente recomendable que utilices el del comentario 21 (una vez que lo corrijas) porque está más optimizado para OS X.

 

PD. Por favor súbeme un .ioreg que sirva... jejeje. Te adjunto la aplicación IORegistryExplorer.app que uso para visualizar y guardar. Y para finalizar podemos dar este tópico como SOLUCIONADO. Saludos.

 

PD2. Tu bateria parece que esta en las últimas, lo mismo te indica desde Windows? Si no es así, puedes calibrarla desde OS X para ver si mejora.

 

PD3. Del tópico de Zprood, si instalas AppleSmartBatteryManager en lugar de AppleACPIBatteryManager, obtendrás lecturas desde aplicaciones nativas de Mac OS X, por ejemplo con CoconutBattery.app, esto aparece en mi portátil VIT (muy cercanos en windows), aunque NO es perfecto:

Captura de pantalla 2014-04-22 a la(s) 00.52.57.png

IORegistryExplorer.app.zip

Link to comment
Share on other sites

 

Creo que encontré el "error" cometido en el código de la bateria, en realidad fue un detalle que se pasó por alto. Y debe solucionar el problema.

 

Fíjate en la captura de pantalla, buscando diferencias con TextWrangler (ambos archivos en formato .DSL), a la derecha el que subiste en el comentario 21 que da KP, a la izquierda el que subiste en el comentario 30 que carga correctamente:

 

Cuando me puse a revisar un poco el DSDT original me di cuenta de ese error y lo arregle. Reinicie la maquina y me dio KP lamentablemente. Fue por eso que decidí utilizar el DSDT que encontre en la web de mi maquina.

 

 

 

PD. Por favor súbeme un .ioreg que sirva... jejeje. Te adjunto la aplicación IORegistryExplorer.app que uso para visualizar y guardar. 

 

Nose que pasara que no te llegan mis ioregs en buen estado. Baje tu versión y te la adjunto al presente posteo

 

 

PD2. Tu bateria parece que esta en las últimas, lo mismo te indica desde Windows? Si no es así, puedes calibrarla desde OS X para ver si mejora.

 

Lamentablemente es así, pero ya encargue otra batería que debería llegar en poco tiempo.

 

 

 

PD3. Del tópico de Zprood, si instalas AppleSmartBatteryManager en lugar de AppleACPIBatteryManager, obtendrás lecturas desde aplicaciones nativas de Mac OS X, por ejemplo con CoconutBattery.app, esto aparece en mi portátil VIT (muy cercanos en windows), aunque NO es perfecto:

 

Lo hice, con coconutbattery me dio información de mi batería. Lo raro es que cuando esta cargada me dice que el nivel de carga es de 226% :/

 

Gracias maestro por tu continua ayuda. Un saludo desde mis tierras

 

 

 

 

MacBook Pro de Sebastian.ioreg.zip

Link to comment
Share on other sites

Mi ultimo esfuerzo, y NO tiene mucho sentido que siga arrojando KP relacionado con la batería, ya que TODO el código involucrado es exactamente igual.

 

En general, a la DSDT le quite cosas innecesarias y agregué otras tomadas de tu último .ioreg: DSDT.zip

 

Damos el tema por SOLUCIONADO. Suerte y Saludos.

Link to comment
Share on other sites

Mi ultimo esfuerzo, y NO tiene mucho sentido que siga arrojando KP relacionado con la batería, ya que TODO el código involucrado es exactamente igual.

 

En general, a la DSDT le quite cosas innecesarias y agregué otras tomadas de tu último .ioreg: attachicon.gifDSDT.zip

 

Damos el tema por SOLUCIONADO. Suerte y Saludos.

 

FUNCIONO!! Alfin :)

 

Me imagino que dentro de las cosas innecesarias que sacaste, estaba la parte que hacia conflicto con el AppleSmartBattery

 

En verdad mas que para escribir que funciono, lo hago para agradecer tu esfuerzo y ayuda conmigo. Se agradece que en este foro existan personas como tu que ayuden sin pedir mucho a cambio. Ahora manejo un poco mejor las estructuras DSDT gracias a ti y tus acciones.

 

Muchas gracias por todo juanerson. Cualquier cosa me imagino que puedo escribir por este medio.

 

Hydra1ysk!

Link to comment
Share on other sites

Enhorabuena. Por favor súbeme un .ioreg para ver los resultados. Siempre a la orden en lo que podamos ayudar. Saludos.

 

PD. Por favor recuerda lo de las citas seguidas, debe entenderse que el uso incorrecto de las citas no aporta nada en las soluciones.

Link to comment
Share on other sites

 Share

×
×
  • Create New...