Jump to content

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


hydra1ysk
 Share

36 posts in this topic

Recommended Posts

Estimados

 

Nuevamente saludos a todos. He estado por mi cuenta y leyendo varios posteos del foro para arreglar varios problemas de mi equipo. A la fecha aun quedan algunos por resolver pero de a poco se optimiza mi  hackintosh.

 

Les escribo para comentar el problema que estoy tratando de resolver actualmente que es el indicador de bateria. Cuando recien instale mavericks, utilize el kext AppleBatterySmartmonitor y en verdad el indicador funcionaba sin ningún problema. Pero cuando instale el DSDT en la carpeta extra, me dio un KP y tuve que eliminarlo.

 

He intentado varias versiones del AppleBatterySmartmonitor así como de AppleACPIBatteryManager sin ningún resultado. Algunos me dan KP, otros muestran la bateria pero con indicador 0 todo el rato.

 

¿Que se les ocurre que podría ser? Les adjunto el DSDT por si alguien quiere mirarlo.

 

Gracias de antemano

DSDT.aml.zip

Link to comment
Share on other sites

tente usar ACPIBatteryManager. aqui funcionou sem nenhum path para DSDT.

 

Gracias por tu respuesta. Baje la ultima version desde el sitio de rehabman (la version 2014-0207) Sin embargo cuando reinicio, el icono no aparece. En la consola de registro al filtrar, me sale estos mensajes con alusion al kext

01-04-14 8:38:50,231 com.apple.kextd[12]: WARNING - Invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext "/System/Library/Extensions/ACPIBatteryManager.kext"
01-04-14 8:38:51,369 com.apple.kextd[12]: Can't load /System/Library/Extensions/ACPIBatteryManager.kext - authentication problems.
01-04-14 8:38:51,373 com.apple.kextd[12]: Load org.rehabman.driver.AppleSmartBatteryManager failed; removing personalities from kernel.

Que podra ser? Problema del DSDT?

 

Cualquier ayuda se agradece de antemano, gracias

Link to comment
Share on other sites

 

Gracias por tu respuesta. Tengo una consulta, para mi computador (dell N4050) que patch utilizo de esos en el DSDT?

 

El kext no me sirvio, me arrojo KP

 

Gracias por toda su ayuda

Link to comment
Share on other sites

hola

 

basico 

 

http://www.insanelymac.com/forum/topic/272459-appleacpibatterymanagerapplesmartbatterymanager-for-lion/

 

para lo dsdt

 

de rehab tienes de testar, se no tiene tu 4050

 

En primer lugar, muchas gracias por tu ayuda

 

Intente Parchear el DSDT pero tengo errores al compilar y me esta dando KP al reiniciar. Estoy ocupando el maciASL para el patch. Quizas lo estoy haciendo mal, seguire intentandolo

Link to comment
Share on other sites

hydra1ysk, Hermano por favor ten en cuenta que NO es necesario que cites los comentarios inmediatamente anteriores al tuyo. Ya que se sobreentiende que estas respondiendo a dicho comentario, y así evitamos que el tópico se llene de más de lo mismo. Es decir, hagamos un uso adecuado de las citas. Gracias.

 

Por cierto, para corregir el medidor de batería usando el AppleACPIPlatform.kext vanilla (de cualquier versión de OS X), desde la aparición de la especificación ACPI 4.0a (2010) implementada por Apple a partir de Lion (incluyendo a Snow 10.6.8), se tienen que ajustar en la DSDT todos los registros a 8-bit, es decir que ningún registro por ejemplo en dispositivos como la batería y las zonas térmicas por encima de 8-bit serán reconocidos sin ese ajuste en la DSDT. Saludos.

Link to comment
Share on other sites

Bueno haz un esfuerzo para ajustar el código de la batería. Si no obtienes resultados te puedo ayudar. Ya tienes una base limpia de errores para trabajar. Estamos a la orden.

 

En lo que tenga un tiempito libre escribo una guía referencial sobre el tema. Porque material hay de sobra en ingles. Solo hay que recopilarlo, organizarlo y redactarlo en nuestro idioma. Saludos.

Link to comment
Share on other sites

Gracias a ambos por su ayuda y mejorar un poco mi DSDT.

 

Voy a intentar lo que me dices Juanerson. Voy a seguir esta guia que me dices

 

http://www.insanelymac.com/forum/topic/272459-appleacpibatterymanagerapplesmartbatterymanager-for-lion/

 

Tengo una consulta, en la guia de arriba aparte de los cambios en el DSDT, hay unos kexts....  debo tambien instalarlos? Ahora me pongo a trabajar en ello

 

EDIT: estoy editando el DSDT y no encuentro los registros de 16 bits para cambiarlos a 8. He vistos otros DSDT arreglados que si los trae. Mi consulta, puedo copiarlos y pegarlos dentro del DSDT? (obviamente en el lugar que corresponde)

Link to comment
Share on other sites

Te doy una pista: Para convertir los registros de 16-bit(+) y llevarlos a registros de 8-bit debes seguir la secuencia que te llevará a la raíz del problema.

 

En síntesis, el metodo clave en tu DSDT relacionado con el Status (_BST) y la Información (_BIF) de la Batería... se llama Method ECRB. Por que?

 

Porque _BST depende de ECG6, y _BIF depende de ECG9. Y éstos dos últimos (ECG6 y ECG9) a su vez dependen de ECRB. Es una secuencia lógica.

 

Espero que entiendas porque lo que tienes que hacer es adaptar estos registros de 32-bit (ocho en total) en cuartetos de 8-bit cada uno (4 x 8):

            OperationRegion (MMBX, SystemMemory, 0xFE800000, 0x2000)
            Field (MMBX, AnyAcc, Lock, Preserve)
            {
                Offset (0x1000), 
                MZ00,   8, 
                MZ01,   8, 
                MZ02,   8, 
                MZ03,   32, /* este 1*/
                MZ04,   32, /* este 2*/ 
                MZ05,   32,  /* este 3*/
                MZ06,   32,  /* este 4*/
                MZ07,   32,  /* este 5*/
                MZ08,   32,  /* este 6*/
                Offset (0x104B), 
                MZ09,   32,  /* este 7*/
                MZ10,   32 /* este 8*/
            }
1) Es decir, que vas a convertir los ocho (8) registros de 32-bit actuales en treinta y dos (32) registros de 8-bit finales. Esa es la idea para hacer que los registros superiores a 8-bit sean compatibles con la especificación ACPI 4.0a (2010).
 
Nota: Ten presente que tienes que asignar nombres únicos e irrepetibles a los 32 nuevos registros, es decir que dichos nombres no estén siendo usados por otros registros. Es algo tedioso, pero se logra con concentración, tomando nota, todo en orden, registro a registro.
 
2) Y no olvides la parte más importante, que es modificar TODAS (repito: TODAS) las declaraciones donde aparezcan MZ03, MZ04, MZ05, etc... con la ayuda del método B1B4 (que corresponde a registros de 32-bit) para no obtener errores de compilación. Cada uno será un cuarteto. Cita del método:
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
Link to comment
Share on other sites

Gracias por tu ayuda. No había tenido tiempo de escribir

 

He estado leyendo mucho y he aprendido algo de como configurar los DSDT, sin embargo aun me falta para conseguir el funcionamiento de la batería.

 

Me podrías enviar tu DSDT para ver como tienes configurado el metodo MMBX o como lo tengas puesto?

Link to comment
Share on other sites

No hermano mi dsdt no tiene esa complicación como el tuyo, he visto muchos que si, ten en cuenta que solo estoy orientandote para que corrijas el tuyo. Creeme que no es difícil, subeme tu dsdt actual y te hago la corrección de MZ03 y tu haces los demás, te fijas como lo hice y podemos ir viendo progresos y aclarando tus dudas. Es trabajoso porque es una correccion detallada pero no difícil. Saludos.

Link to comment
Share on other sites

Te dejare el archivo que estoy usando..... En verdad me enredo ya que veo otros DSDT y su configuración es diferente entonces no se como asilimar la información del metodo que debo modificar.

 

Estare atento, quiero aprovechar el findesemana largo para dedicarme a arreglar este problema. 

 

Muchas, pero muchísimas gracias amigo

DSDT.aml.zip

Link to comment
Share on other sites

Te adjunto la DSDT tanto para editar (.dsl) como también el resultante (.aml). Tiene corregido totalmente el registro MZ03 que ahora esta dividido y sus partes se llaman MZ31, MZ32, MZ33 y MZ34, por supuesto todos de 8-bit cada uno. Puedes ver los comentarios en el archivo base.dsl buscando la palabra "correccion" sin acento y sin comillas. Luego tienes la información que necesitas para hacer el resto de manera sencilla. El arreglo consta de 3 partes:

 

1) Donde se encuentran los registros, en estos momentos quedan así:

Primera Captura de pantalla 2014-04-18 a la(s) 18.48.19.png

 

2) En el metodo ECRB, aparece la primera declaración de MZ03 que vamos a ajustar de manera automática gracias al metodo B1B4:

Segunda Captura de pantalla 2014-04-18 a la(s) 18.50.11.png

 

3) En el metodo ECWB, se hace un ajuste MANUAL (sin utilizar B1B4) para lograr el cambio a 8-bit. Son cuatro lineas por registro:

Tercera Captura de pantalla 2014-04-18 a la(s) 18.51.27.png

 

Nota: Como se darán cuenta, cuando no se puede utilizar el método B1B4 por encontrarse de segundo (a la derecha) dentro del Store, la presentación o formula del ajuste manual para vincular cuatro partes de 8-bit cada una (4x8) es: (cortesía de RehabMan)

Store(ShiftRight(Y,24), X3)
Store(ShiftRight(Y,16), X2)
Store(ShiftRight(Y,8), X1)
Store(Y, X0)

Y por supuesto, al final de la DSDT está agregado el nuevo metodo B1B4 compatible con registros de 32-bit, cortesia de RehabMan:

    Method (B1B4, 4, NotSerialized)
    {
        Store (Arg3, Local0)
        Or (Arg2, ShiftLeft (Local0, 0x08), Local0)
        Or (Arg1, ShiftLeft (Local0, 0x08), Local0)
        Or (Arg0, ShiftLeft (Local0, 0x08), Local0)
        Return (Local0)
    }

Para finalizar, de la misma manera se hace con los restantes siete registros MZ04, MZ05, MZ06, ... etc.

 

Esperemos que funcione. Cualquier duda estamos a la orden. Saludos.

DSDT.zip

Link to comment
Share on other sites

Gracias maestro!!

 

Mira ya cambie los registros de todas las variables sin error alguno, me costo mucho por el tema que habían variables que tuve que darle otros nombres...... Igual en ese sentido, tengo una duda, en el metodo ECWB solo encuentro referencias a 3 de las 7 variables (MZ03, MZ04 y MZ10)  que estoy cambiando. Yo cambie las que había, mi duda es, debo agregar las que no están?

 

Te dejo el dsl para que le heches un vistazo. Si todo esta bien, que debería hacer ahora???

dsdt.zip

Link to comment
Share on other sites

Se ve bien. Agregar que? Codigo es codigo amigo, si el metodo ECWB viene así es por algo y hay que dejarlo quieto. Entonces, ya probaste el resultante dsdt.aml (desde /Extra)+ el AppleACPIBatteryManager.kext (instalado con KextUtilty la ultima version) en /S/L/E ?? Cuando tengas eso listo en el proximo reinicio del sistema por favor súbeme un .ioreg (guardado con IORegistryExplorer) para ver si el driver reconoce el medidor de la batería. Saludos.

Link to comment
Share on other sites

Para descartar que sea un problema de la DSDT inicia con "DSDT=No"

 

También sirve cargar una DSDT funcional que desees probar desde una ubicación alternativa o nombre alternativo, por ejemplo:

"DSDT=/Extra/dsdtprueba.aml"

otro ejemplo: "DSDT=/PruebasDSDT/dsdt.aml"

De esa manera descartamos que haya un error en la DSDT.

 

Por cierto, ningún flag se coloca con comillas, se separan con espacios entre uno y otro flag. Por si acaso.

 

Estas usando el AppleACPIPlatform.kext vanilla de Mavericks?

 

Fíjate en la imagen, también parece un conflicto de AppleACPIBatteryManager con el kext del teclado / touchpad que usas actualmente.

Prueba con este: VoodooPS2Controller.kext.zip

 

Siempre reconstruye caché con KextUtility (la ultima version compatible con 10.9) y repara permisos con la Utilidad de Discos.

Link to comment
Share on other sites

Fíjate en la imagen, también parece un conflicto de AppleACPIBatteryManager con el kext del teclado / touchpad que usas actualmente.

Prueba con este: attachicon.gif VoodooPS2Controller.kext.zip

 

Realice esto en primer lugar, y me sigue dando KP. Regrese a la versión que tenia ya que es la que mejor me va.

 

También sirve cargar una DSDT funcional que desees probar desde una ubicación alternativa o nombre alternativo, por ejemplo:

"DSDT=/Extra/dsdtprueba.aml"

otro ejemplo: "DSDT=/PruebasDSDT/dsdt.aml"

De esa manera descartamos que haya un error en la DSDT.

 

Lo segundo fue probar con otro DSDT de un N4050 que encontré aquí y que no me funciona tan bien como el que tengo actualmente (pierdo hotkeys, sleep lid y VGA). También me da KP.

 

Estas usando el AppleACPIPlatform.kext vanilla de Mavericks?

 

No sabria responderte, como podría averiguar eso?

 

Para descartar que sea un problema de la DSDT inicia con "DSDT=No"

 

Fue lo ultimo que intente, ya que presentía que por aquí iba el problema. Efectivamente cuando reinicio con este flag , el sistema logra iniciarse no arrojando el KP que me aqueja, así que por ahora el problema esta en el DSDT, debe haber algo malo que me debe estar fallando. Que podría ser???

 

Gracias estimado por ayudarme

Link to comment
Share on other sites

 Share

×
×
  • Create New...